scope diagnostics to setup and update-nanoclaw only
Remove diagnostics appendage from all other skills. Only /setup and /update-nanoclaw need telemetry — these are the two points where we can detect regressions and track improvements across the user base. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -133,8 +133,3 @@ npm test
|
|||||||
- **"Session commands require admin access"**: Only the device owner (`is_from_me`) or main-group senders can use `/compact`. Other users are denied.
|
- **"Session commands require admin access"**: Only the device owner (`is_from_me`) or main-group senders can use `/compact`. Other users are denied.
|
||||||
- **No compact_boundary in logs**: The SDK may not emit this event in all versions. Check the agent-runner logs for the warning message. Compaction may still have succeeded.
|
- **No compact_boundary in logs**: The SDK may not emit this event in all versions. Check the agent-runner logs for the warning message. Compaction may still have succeeded.
|
||||||
- **Pre-compact failure**: If messages before `/compact` fail to process, the error message says "Failed to process messages before /compact." The cursor advances past sent output to prevent duplicates; `/compact` remains pending for the next attempt.
|
- **Pre-compact failure**: If messages before `/compact` fail to process, the error message says "Failed to process messages before /compact." The cursor advances past sent output to prevent duplicates; `/compact` remains pending for the next attempt.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -201,8 +201,3 @@ The Discord bot supports:
|
|||||||
- @mention translation (Discord `<@botId>` → NanoClaw trigger format)
|
- @mention translation (Discord `<@botId>` → NanoClaw trigger format)
|
||||||
- Message splitting for responses over 2000 characters
|
- Message splitting for responses over 2000 characters
|
||||||
- Typing indicators while the agent processes
|
- Typing indicators while the agent processes
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -218,8 +218,3 @@ npx -y @gongrzhe/server-gmail-autoauth-mcp
|
|||||||
6. Rebuild and restart
|
6. Rebuild and restart
|
||||||
7. Clear stale agent-runner copies: `rm -r data/sessions/*/agent-runner-src 2>/dev/null || true`
|
7. Clear stale agent-runner copies: `rm -r data/sessions/*/agent-runner-src 2>/dev/null || true`
|
||||||
8. Rebuild: `cd container && ./build.sh && cd .. && npm run build && launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `systemctl --user restart nanoclaw` (Linux)
|
8. Rebuild: `cd container && ./build.sh && cd .. && npm run build && launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `systemctl --user restart nanoclaw` (Linux)
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -92,8 +92,3 @@ All tests must pass and build must be clean before proceeding.
|
|||||||
- **"Image - download failed"**: Check WhatsApp connection stability. The download may timeout on slow connections.
|
- **"Image - download failed"**: Check WhatsApp connection stability. The download may timeout on slow connections.
|
||||||
- **"Image - processing failed"**: Sharp may not be installed correctly. Run `npm ls sharp` to verify.
|
- **"Image - processing failed"**: Sharp may not be installed correctly. Run `npm ls sharp` to verify.
|
||||||
- **Agent doesn't mention image content**: Check container logs for "Loaded image" messages. If missing, ensure agent-runner source was synced to group caches.
|
- **Agent doesn't mention image content**: Check container logs for "Loaded image" messages. If missing, ensure agent-runner source was synced to group caches.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -151,8 +151,3 @@ The agent is trying to run `ollama` CLI inside the container instead of using th
|
|||||||
### Agent doesn't use Ollama tools
|
### Agent doesn't use Ollama tools
|
||||||
|
|
||||||
The agent may not know about the tools. Try being explicit: "use the ollama_generate tool with gemma3:1b to answer: ..."
|
The agent may not know about the tools. Try being explicit: "use the ollama_generate tool with gemma3:1b to answer: ..."
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -288,8 +288,3 @@ To remove Parallel AI integration:
|
|||||||
3. Remove Web Research Tools section from groups/main/CLAUDE.md
|
3. Remove Web Research Tools section from groups/main/CLAUDE.md
|
||||||
4. Rebuild: `./container/build.sh && npm run build`
|
4. Rebuild: `./container/build.sh && npm run build`
|
||||||
5. Restart: `launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `systemctl --user restart nanoclaw` (Linux)
|
5. Restart: `launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `systemctl --user restart nanoclaw` (Linux)
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -102,8 +102,3 @@ The PDF may be scanned (image-based). pdftotext only handles text-based PDFs. Co
|
|||||||
### WhatsApp PDF not detected
|
### WhatsApp PDF not detected
|
||||||
|
|
||||||
Verify the message has `documentMessage` with `mimetype: application/pdf`. Some file-sharing apps send PDFs as generic files without the correct mimetype.
|
Verify the message has `documentMessage` with `mimetype: application/pdf`. Some file-sharing apps send PDFs as generic files without the correct mimetype.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -115,8 +115,3 @@ Ask the agent to react to a message via the `react_to_message` MCP tool. Check y
|
|||||||
|
|
||||||
- Check IPC logs for `Unauthorized IPC reaction attempt blocked` — the agent can only react in its own group's chat
|
- Check IPC logs for `Unauthorized IPC reaction attempt blocked` — the agent can only react in its own group's chat
|
||||||
- Verify WhatsApp is connected: check logs for connection status
|
- Verify WhatsApp is connected: check logs for connection status
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -205,8 +205,3 @@ The Slack channel supports:
|
|||||||
- **No file/image handling** — The bot only processes text content. File uploads, images, and rich message blocks are not forwarded to the agent.
|
- **No file/image handling** — The bot only processes text content. File uploads, images, and rich message blocks are not forwarded to the agent.
|
||||||
- **Channel metadata sync is unbounded** — `syncChannelMetadata()` paginates through all channels the bot is a member of, but has no upper bound or timeout. Workspaces with thousands of channels may experience slow startup.
|
- **Channel metadata sync is unbounded** — `syncChannelMetadata()` paginates through all channels the bot is a member of, but has no upper bound or timeout. Workspaces with thousands of channels may experience slow startup.
|
||||||
- **Workspace admin policies not detected** — If the Slack workspace restricts bot app installation, the setup will fail at the "Install to Workspace" step with no programmatic detection or guidance. See SLACK_SETUP.md troubleshooting section.
|
- **Workspace admin policies not detected** — If the Slack workspace restricts bot app installation, the setup will fail at the "Install to Workspace" step with no programmatic detection or guidance. See SLACK_SETUP.md troubleshooting section.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -382,8 +382,3 @@ To remove Agent Swarm support while keeping basic Telegram:
|
|||||||
6. Remove Agent Teams section from group CLAUDE.md files
|
6. Remove Agent Teams section from group CLAUDE.md files
|
||||||
7. Remove `TELEGRAM_BOT_POOL` from `.env`, `data/env/env`, and launchd plist/systemd unit
|
7. Remove `TELEGRAM_BOT_POOL` from `.env`, `data/env/env`, and launchd plist/systemd unit
|
||||||
8. Rebuild: `npm run build && ./container/build.sh && launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist && launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist` (macOS) or `npm run build && ./container/build.sh && systemctl --user restart nanoclaw` (Linux)
|
8. Rebuild: `npm run build && ./container/build.sh && launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist && launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist` (macOS) or `npm run build && ./container/build.sh && systemctl --user restart nanoclaw` (Linux)
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -220,8 +220,3 @@ To remove Telegram integration:
|
|||||||
4. Remove Telegram registrations from SQLite: `sqlite3 store/messages.db "DELETE FROM registered_groups WHERE jid LIKE 'tg:%'"`
|
4. Remove Telegram registrations from SQLite: `sqlite3 store/messages.db "DELETE FROM registered_groups WHERE jid LIKE 'tg:%'"`
|
||||||
5. Uninstall: `npm uninstall grammy`
|
5. Uninstall: `npm uninstall grammy`
|
||||||
6. Rebuild: `npm run build && launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `npm run build && systemctl --user restart nanoclaw` (Linux)
|
6. Rebuild: `npm run build && launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `npm run build && systemctl --user restart nanoclaw` (Linux)
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -146,8 +146,3 @@ Check logs for the specific error. Common causes:
|
|||||||
### Agent doesn't respond to voice notes
|
### Agent doesn't respond to voice notes
|
||||||
|
|
||||||
Verify the chat is registered and the agent is running. Voice transcription only runs for registered groups.
|
Verify the chat is registered and the agent is running. Voice transcription only runs for registered groups.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -370,8 +370,3 @@ To remove WhatsApp integration:
|
|||||||
2. Remove WhatsApp registrations: `sqlite3 store/messages.db "DELETE FROM registered_groups WHERE jid LIKE '%@g.us' OR jid LIKE '%@s.whatsapp.net'"`
|
2. Remove WhatsApp registrations: `sqlite3 store/messages.db "DELETE FROM registered_groups WHERE jid LIKE '%@g.us' OR jid LIKE '%@s.whatsapp.net'"`
|
||||||
3. Sync env: `mkdir -p data/env && cp .env data/env/env`
|
3. Sync env: `mkdir -p data/env && cp .env data/env/env`
|
||||||
4. Rebuild and restart: `npm run build && launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `npm run build && systemctl --user restart nanoclaw` (Linux)
|
4. Rebuild and restart: `npm run build && launchctl kickstart -k gui/$(id -u)/com.nanoclaw` (macOS) or `npm run build && systemctl --user restart nanoclaw` (Linux)
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
131
.claude/skills/claw/SKILL.md
Normal file
131
.claude/skills/claw/SKILL.md
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
---
|
||||||
|
name: claw
|
||||||
|
description: Install the claw CLI tool — run NanoClaw agent containers from the command line without opening a chat app.
|
||||||
|
---
|
||||||
|
|
||||||
|
# claw — NanoClaw CLI
|
||||||
|
|
||||||
|
`claw` is a Python CLI that sends prompts directly to a NanoClaw agent container from the terminal. It reads registered groups from the NanoClaw database, picks up secrets from `.env`, and pipes a JSON payload into a container run — no chat app required.
|
||||||
|
|
||||||
|
## What it does
|
||||||
|
|
||||||
|
- Send a prompt to any registered group by name, folder, or JID
|
||||||
|
- Default target is the main group (no `-g` needed for most use)
|
||||||
|
- Resume a previous session with `-s <session-id>`
|
||||||
|
- Read prompts from stdin (`--pipe`) for scripting and piping
|
||||||
|
- List all registered groups with `--list-groups`
|
||||||
|
- Auto-detects `container` or `docker` runtime (or override with `--runtime`)
|
||||||
|
- Prints the agent's response to stdout; session ID to stderr
|
||||||
|
- Verbose mode (`-v`) shows the command, redacted payload, and exit code
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Python 3.8 or later
|
||||||
|
- NanoClaw installed with a built and tagged container image (`nanoclaw-agent:latest`)
|
||||||
|
- Either `container` (Apple Container, macOS 15+) or `docker` available in `PATH`
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Run this skill from within the NanoClaw directory. The script auto-detects its location, so the symlink always points to the right place.
|
||||||
|
|
||||||
|
### 1. Copy the script
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p scripts
|
||||||
|
cp "${CLAUDE_SKILL_DIR}/scripts/claw" scripts/claw
|
||||||
|
chmod +x scripts/claw
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Symlink into PATH
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/bin
|
||||||
|
ln -sf "$(pwd)/scripts/claw" ~/bin/claw
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure `~/bin` is in `PATH`. Add this to `~/.zshrc` or `~/.bashrc` if needed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export PATH="$HOME/bin:$PATH"
|
||||||
|
```
|
||||||
|
|
||||||
|
Then reload the shell:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source ~/.zshrc # or ~/.bashrc
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Verify
|
||||||
|
|
||||||
|
```bash
|
||||||
|
claw --list-groups
|
||||||
|
```
|
||||||
|
|
||||||
|
You should see registered groups. If NanoClaw isn't running or the database doesn't exist yet, the list will be empty — that's fine.
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Send a prompt to the main group
|
||||||
|
claw "What's on my calendar today?"
|
||||||
|
|
||||||
|
# Send to a specific group by name (fuzzy match)
|
||||||
|
claw -g "family" "Remind everyone about dinner at 7"
|
||||||
|
|
||||||
|
# Send to a group by exact JID
|
||||||
|
claw -j "120363336345536173@g.us" "Hello"
|
||||||
|
|
||||||
|
# Resume a previous session
|
||||||
|
claw -s abc123 "Continue where we left off"
|
||||||
|
|
||||||
|
# Read prompt from stdin
|
||||||
|
echo "Summarize this" | claw --pipe -g dev
|
||||||
|
|
||||||
|
# Pipe a file
|
||||||
|
cat report.txt | claw --pipe "Summarize this report"
|
||||||
|
|
||||||
|
# List all registered groups
|
||||||
|
claw --list-groups
|
||||||
|
|
||||||
|
# Force a specific runtime
|
||||||
|
claw --runtime docker "Hello"
|
||||||
|
|
||||||
|
# Use a custom image tag (e.g. after rebuilding with a new tag)
|
||||||
|
claw --image nanoclaw-agent:dev "Hello"
|
||||||
|
|
||||||
|
# Verbose mode (debug info, secrets redacted)
|
||||||
|
claw -v "Hello"
|
||||||
|
|
||||||
|
# Custom timeout for long-running tasks
|
||||||
|
claw --timeout 600 "Run the full analysis"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### "neither 'container' nor 'docker' found"
|
||||||
|
|
||||||
|
Install Docker Desktop or Apple Container (macOS 15+), or pass `--runtime` explicitly.
|
||||||
|
|
||||||
|
### "no secrets found in .env"
|
||||||
|
|
||||||
|
The script auto-detects your NanoClaw directory and reads `.env` from it. Check that the file exists and contains at least one of: `CLAUDE_CODE_OAUTH_TOKEN`, `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`.
|
||||||
|
|
||||||
|
### Container times out
|
||||||
|
|
||||||
|
The default timeout is 300 seconds. For longer tasks, pass `--timeout 600` (or higher). If the container consistently hangs, check that your `nanoclaw-agent:latest` image is up to date by running `./container/build.sh`.
|
||||||
|
|
||||||
|
### "group not found"
|
||||||
|
|
||||||
|
Run `claw --list-groups` to see what's registered. Group lookup does a fuzzy partial match on name and folder — if your query matches multiple groups, you'll get an error listing the ambiguous matches.
|
||||||
|
|
||||||
|
### Container crashes mid-stream
|
||||||
|
|
||||||
|
Containers run with `--rm` so they are automatically removed. If the agent crashes before emitting the output sentinel, `claw` falls back to printing raw stdout. Use `-v` to see what the container produced. Rebuild the image with `./container/build.sh` if crashes are consistent.
|
||||||
|
|
||||||
|
### Override the NanoClaw directory
|
||||||
|
|
||||||
|
If `claw` can't find your database or `.env`, set the `NANOCLAW_DIR` environment variable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export NANOCLAW_DIR=/path/to/your/nanoclaw
|
||||||
|
```
|
||||||
@@ -173,8 +173,3 @@ Check directory permissions on the host. The container runs as uid 1000.
|
|||||||
| `src/container-runner.ts` | .env shadow mount removed, main containers start as root with privilege drop |
|
| `src/container-runner.ts` | .env shadow mount removed, main containers start as root with privilege drop |
|
||||||
| `container/Dockerfile` | Entrypoint: `mount --bind` for .env shadowing, `setpriv` privilege drop |
|
| `container/Dockerfile` | Entrypoint: `mount --bind` for .env shadowing, `setpriv` privilege drop |
|
||||||
| `container/build.sh` | Default runtime: `docker` → `container` |
|
| `container/build.sh` | Default runtime: `docker` → `container` |
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -108,8 +108,3 @@ User: "Add Telegram as an input channel"
|
|||||||
3. Create `src/channels/telegram.ts` implementing the `Channel` interface (see `src/channels/whatsapp.ts`)
|
3. Create `src/channels/telegram.ts` implementing the `Channel` interface (see `src/channels/whatsapp.ts`)
|
||||||
4. Add the channel to `main()` in `src/index.ts`
|
4. Add the channel to `main()` in `src/index.ts`
|
||||||
5. Tell user how to authenticate and test
|
5. Tell user how to authenticate and test
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -347,8 +347,3 @@ echo -e "\n8. Session continuity working?"
|
|||||||
SESSIONS=$(grep "Session initialized" logs/nanoclaw.log 2>/dev/null | tail -5 | awk '{print $NF}' | sort -u | wc -l)
|
SESSIONS=$(grep "Session initialized" logs/nanoclaw.log 2>/dev/null | tail -5 | awk '{print $NF}' | sort -u | wc -l)
|
||||||
[ "$SESSIONS" -le 2 ] && echo "OK (recent sessions reusing IDs)" || echo "CHECK - multiple different session IDs, may indicate resumption issues"
|
[ "$SESSIONS" -le 2 ] && echo "OK (recent sessions reusing IDs)" || echo "CHECK - multiple different session IDs, may indicate resumption issues"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -120,8 +120,3 @@ See `~/.qodo/config.json` for API key setup. Set `QODO_ENVIRONMENT_NAME` env var
|
|||||||
- **Not in git repo** - Inform the user that a git repository is required and exit gracefully; do not attempt code generation
|
- **Not in git repo** - Inform the user that a git repository is required and exit gracefully; do not attempt code generation
|
||||||
- **No API key** - Inform the user with setup instructions; set `QODO_API_KEY` or create `~/.qodo/config.json`
|
- **No API key** - Inform the user with setup instructions; set `QODO_API_KEY` or create `~/.qodo/config.json`
|
||||||
- **No rules found** - Inform the user; set up rules at app.qodo.ai
|
- **No rules found** - Inform the user; set up rules at app.qodo.ai
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -324,8 +324,3 @@ Use the inline comment ID preserved during deduplication (Step 3b) to reply dire
|
|||||||
See [providers.md § Reply to Inline Comments](./resources/providers.md#reply-to-inline-comments) for provider-specific commands and reply format.
|
See [providers.md § Reply to Inline Comments](./resources/providers.md#reply-to-inline-comments) for provider-specific commands and reply format.
|
||||||
|
|
||||||
Keep replies short (one line). If a reply fails, log it and continue.
|
Keep replies short (one line). If a reply fails, log it and continue.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -128,8 +128,3 @@ Show:
|
|||||||
- Any conflicts that were resolved (list files)
|
- Any conflicts that were resolved (list files)
|
||||||
|
|
||||||
If the service is running, remind the user to restart it to pick up changes.
|
If the service is running, remind the user to restart it to pick up changes.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -150,8 +150,3 @@ whisper-cli -m data/models/ggml-base.bin -f /tmp/test.wav --no-timestamps -nt
|
|||||||
**Slow transcription**: The base model processes ~30s of audio in <1s on M1+. If slower, check CPU usage — another process may be competing.
|
**Slow transcription**: The base model processes ~30s of audio in <1s on M1+. If slower, check CPU usage — another process may be competing.
|
||||||
|
|
||||||
**Wrong language**: whisper.cpp auto-detects language. To force a language, you can set `WHISPER_LANG` and modify `src/transcription.ts` to pass `-l $WHISPER_LANG`.
|
**Wrong language**: whisper.cpp auto-detects language. To force a language, you can set `WHISPER_LANG` and modify `src/transcription.ts` to pass `-l $WHISPER_LANG`.
|
||||||
|
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
@@ -415,7 +415,3 @@ docker run nanoclaw-agent ls -la /app/src/skills/
|
|||||||
- `data/x-auth.json` - Auth state marker (in `.gitignore`)
|
- `data/x-auth.json` - Auth state marker (in `.gitignore`)
|
||||||
- Only main group can use X tools (enforced in `agent.ts` and `host.ts`)
|
- Only main group can use X tools (enforced in `agent.ts` and `host.ts`)
|
||||||
- Scripts run as subprocesses with limited environment
|
- Scripts run as subprocesses with limited environment
|
||||||
|
|
||||||
## Diagnostics (Optional)
|
|
||||||
|
|
||||||
After completing all steps above, read and follow `.claude/skills/_shared/diagnostics.md`.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user