From 43ff3a4644b4c6e37eeaf2d10f77e7ab5994af9d Mon Sep 17 00:00:00 2001 From: glifocat Date: Fri, 15 May 2026 18:02:29 +0200 Subject: [PATCH] docs(skills): consolidate project-root reminder into prose lead-ins Replace inline `# run from your NanoClaw project root` annotations on `source setup/lib/install-slug.sh` lines with one standalone prose lead-in per code block. Also drop parenthetical "(run from the project root...)" mentions where the same convention is already obvious. --- .claude/skills/add-atomic-chat-tool/SKILL.md | 4 +++- .claude/skills/add-dashboard/SKILL.md | 4 +++- .claude/skills/add-deltachat/REMOVE.md | 4 +++- .claude/skills/add-deltachat/SKILL.md | 4 +++- .claude/skills/add-emacs/SKILL.md | 10 +++++++--- .claude/skills/add-github/SKILL.md | 4 ++-- .claude/skills/add-karpathy-llm-wiki/SKILL.md | 4 +++- .claude/skills/add-linear/SKILL.md | 4 ++-- .claude/skills/add-mnemon/SKILL.md | 4 +++- .claude/skills/add-ollama-provider/SKILL.md | 4 +++- .claude/skills/add-ollama-tool/SKILL.md | 4 +++- .claude/skills/add-parallel/SKILL.md | 6 +++--- .claude/skills/add-signal/SKILL.md | 10 +++++++--- .claude/skills/add-wechat/REMOVE.md | 4 +++- .claude/skills/add-wechat/SKILL.md | 4 ++-- .claude/skills/add-whatsapp/SKILL.md | 6 +++--- .../skills/convert-to-apple-container/SKILL.md | 4 +++- .claude/skills/customize/SKILL.md | 4 ++-- .claude/skills/init-first-agent/SKILL.md | 2 +- .claude/skills/init-onecli/SKILL.md | 2 +- .claude/skills/manage-mounts/SKILL.md | 4 ++-- .claude/skills/update-nanoclaw/SKILL.md | 2 +- .../skills/use-native-credential-proxy/SKILL.md | 2 +- .claude/skills/x-integration/SKILL.md | 16 +++++++++++----- 24 files changed, 75 insertions(+), 41 deletions(-) diff --git a/.claude/skills/add-atomic-chat-tool/SKILL.md b/.claude/skills/add-atomic-chat-tool/SKILL.md index 0782f2048..24fcf9613 100644 --- a/.claude/skills/add-atomic-chat-tool/SKILL.md +++ b/.claude/skills/add-atomic-chat-tool/SKILL.md @@ -182,8 +182,10 @@ ATOMIC_CHAT_API_KEY=sk-... ### Restart the service +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # Linux: systemctl --user restart $(systemd_unit) ``` diff --git a/.claude/skills/add-dashboard/SKILL.md b/.claude/skills/add-dashboard/SKILL.md index 38630f6e1..6f3ea7e07 100644 --- a/.claude/skills/add-dashboard/SKILL.md +++ b/.claude/skills/add-dashboard/SKILL.md @@ -93,9 +93,11 @@ Generate the secret: `node -e "console.log('nc-' + require('crypto').randomBytes ### 6. Build and restart +Run from your NanoClaw project root: + ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh systemctl --user restart $(systemd_unit) # Linux # or: launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS ``` diff --git a/.claude/skills/add-deltachat/REMOVE.md b/.claude/skills/add-deltachat/REMOVE.md index 64ffecc47..7765cb698 100644 --- a/.claude/skills/add-deltachat/REMOVE.md +++ b/.claude/skills/add-deltachat/REMOVE.md @@ -23,9 +23,11 @@ DC_SMTP_PORT ## 3. Rebuild and restart +Run from your NanoClaw project root: + ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh # Linux systemctl --user restart $(systemd_unit) diff --git a/.claude/skills/add-deltachat/SKILL.md b/.claude/skills/add-deltachat/SKILL.md index 8d879ac02..9f06e07fe 100644 --- a/.claude/skills/add-deltachat/SKILL.md +++ b/.claude/skills/add-deltachat/SKILL.md @@ -98,8 +98,10 @@ The `/set-avatar` command (send an image with that caption) is the easiest way t ### Restart +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh # Linux systemctl --user restart $(systemd_unit) diff --git a/.claude/skills/add-emacs/SKILL.md b/.claude/skills/add-emacs/SKILL.md index d7850e2e5..1a64a5cd6 100644 --- a/.claude/skills/add-emacs/SKILL.md +++ b/.claude/skills/add-emacs/SKILL.md @@ -162,9 +162,11 @@ If you changed `EMACS_CHANNEL_PORT` from the default: ## Restart NanoClaw +Run from your NanoClaw project root: + ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # systemctl --user restart $(systemd_unit) # Linux ``` @@ -241,7 +243,7 @@ grep -q "import './emacs.js'" src/channels/index.ts && echo "imported" || echo " ### No response from agent -1. NanoClaw running: `launchctl list | grep "$(. setup/lib/install-slug.sh && launchd_label)"` (macOS) / `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (Linux) — run from the project root so the slug helper resolves +1. NanoClaw running: `launchctl list | grep "$(. setup/lib/install-slug.sh && launchd_label)"` (macOS) / `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (Linux) 2. Messaging group wired: `pnpm exec tsx scripts/q.ts data/v2.db "SELECT mg.platform_id, ag.folder FROM messaging_groups mg JOIN messaging_group_agents mga ON mg.id = mga.messaging_group_id JOIN agent_groups ag ON ag.id = mga.agent_group_id WHERE mg.channel_type = 'emacs'"` 3. Logs show inbound: `grep 'channel_type=emacs\|Emacs' logs/nanoclaw.log | tail -20` @@ -283,12 +285,14 @@ If an agent outputs org-mode directly, markers get double-converted and render i ## Removal +Run from your NanoClaw project root: + ```bash rm src/channels/emacs.ts src/channels/emacs.test.ts emacs/nanoclaw.el # Remove the `import './emacs.js';` line from src/channels/index.ts # Remove EMACS_* lines from .env pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # systemctl --user restart $(systemd_unit) # Linux diff --git a/.claude/skills/add-github/SKILL.md b/.claude/skills/add-github/SKILL.md index 6a3a20e3d..2d8a805e6 100644 --- a/.claude/skills/add-github/SKILL.md +++ b/.claude/skills/add-github/SKILL.md @@ -136,10 +136,10 @@ Use `per-thread` session mode so each PR/issue gets its own agent session. If you're in the middle of `/setup`, return to the setup flow now. -Otherwise, restart the service to pick up the new channel: +Otherwise, restart the service to pick up the new channel — run from your NanoClaw project root: ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS systemctl --user restart $(systemd_unit) # Linux ``` diff --git a/.claude/skills/add-karpathy-llm-wiki/SKILL.md b/.claude/skills/add-karpathy-llm-wiki/SKILL.md index ac0e5d2b9..304a091c5 100644 --- a/.claude/skills/add-karpathy-llm-wiki/SKILL.md +++ b/.claude/skills/add-karpathy-llm-wiki/SKILL.md @@ -75,8 +75,10 @@ If yes, ask the agent to schedule the lint task using the `schedule_task` MCP to ## Step 6: Restart +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS systemctl --user restart $(systemd_unit) # Linux ``` diff --git a/.claude/skills/add-linear/SKILL.md b/.claude/skills/add-linear/SKILL.md index a8d6df491..1609652e3 100644 --- a/.claude/skills/add-linear/SKILL.md +++ b/.claude/skills/add-linear/SKILL.md @@ -156,10 +156,10 @@ The `platform_id` must be `linear:` matching the `LINEAR_TEAM_KEY` env If you're in the middle of `/setup`, return to the setup flow now. -Otherwise, restart the service to pick up the new channel: +Otherwise, restart the service to pick up the new channel — run from your NanoClaw project root: ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS systemctl --user restart $(systemd_unit) # Linux ``` diff --git a/.claude/skills/add-mnemon/SKILL.md b/.claude/skills/add-mnemon/SKILL.md index 964add919..f6ab05582 100644 --- a/.claude/skills/add-mnemon/SKILL.md +++ b/.claude/skills/add-mnemon/SKILL.md @@ -89,8 +89,10 @@ docker run --rm --entrypoint mnemon nanoclaw-agent:latest --version ### Restart the service +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh systemctl --user restart $(systemd_unit) # Linux # launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS ``` diff --git a/.claude/skills/add-ollama-provider/SKILL.md b/.claude/skills/add-ollama-provider/SKILL.md index 9fc4a79df..740818b2e 100644 --- a/.claude/skills/add-ollama-provider/SKILL.md +++ b/.claude/skills/add-ollama-provider/SKILL.md @@ -130,10 +130,12 @@ file, not from env vars. This file is bind-mounted into the container as `~/.cla ## 5. Build and restart +Run from your NanoClaw project root: + ```bash export PATH="/opt/homebrew/bin:$PATH" pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl unload ~/Library/LaunchAgents/$(launchd_label).plist launchctl load ~/Library/LaunchAgents/$(launchd_label).plist # Linux: systemctl --user restart $(systemd_unit) diff --git a/.claude/skills/add-ollama-tool/SKILL.md b/.claude/skills/add-ollama-tool/SKILL.md index 41ad9249d..0c0baeae3 100644 --- a/.claude/skills/add-ollama-tool/SKILL.md +++ b/.claude/skills/add-ollama-tool/SKILL.md @@ -122,8 +122,10 @@ OLLAMA_HOST=http://your-ollama-host:11434 ### Restart the service +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS systemctl --user restart $(systemd_unit) # Linux ``` diff --git a/.claude/skills/add-parallel/SKILL.md b/.claude/skills/add-parallel/SKILL.md index 23c898b28..aaa171570 100644 --- a/.claude/skills/add-parallel/SKILL.md +++ b/.claude/skills/add-parallel/SKILL.md @@ -229,16 +229,16 @@ echo '{}' | docker run -i --entrypoint /bin/echo nanoclaw-agent:latest "Containe ### 7. Restart Service -Rebuild the main app and restart: +Rebuild the main app and restart, from your NanoClaw project root: ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # Linux: systemctl --user restart $(systemd_unit) ``` -Wait 3 seconds for service to start, then verify (run from the project root so the slug helper resolves): +Wait 3 seconds for service to start, then verify: ```bash sleep 3 launchctl list | grep "$(. setup/lib/install-slug.sh && launchd_label)" # macOS diff --git a/.claude/skills/add-signal/SKILL.md b/.claude/skills/add-signal/SKILL.md index b545b2074..73f84b768 100644 --- a/.claude/skills/add-signal/SKILL.md +++ b/.claude/skills/add-signal/SKILL.md @@ -90,8 +90,10 @@ No output = success. > ⚠ Stop NanoClaw before running signal-cli commands — the daemon holds an exclusive lock on its data directory while running. +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh # macOS launchctl unload ~/Library/LaunchAgents/$(launchd_label).plist @@ -187,8 +189,10 @@ Sync to container: `mkdir -p data/env && cp .env data/env/env` ### Restart +Run from your NanoClaw project root: + ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh # macOS launchctl kickstart -k gui/$(id -u)/$(launchd_label) @@ -287,7 +291,7 @@ If you see `Signal daemon not reachable at 127.0.0.1:7583` and `SIGNAL_MANAGE_DA 1. Channel initialized: `grep "Signal channel connected" logs/nanoclaw.log | tail -1` 2. Channel wired: `pnpm exec tsx scripts/q.ts data/v2.db "SELECT mg.platform_id, mg.name FROM messaging_groups mg JOIN messaging_group_agents mga ON mg.id = mga.messaging_group_id WHERE mg.channel_type='signal'"` -3. Service running: `launchctl print gui/$(id -u)/"$(. setup/lib/install-slug.sh && launchd_label)"` (macOS) / `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (Linux) — run from the project root so the slug helper resolves +3. Service running: `launchctl print gui/$(id -u)/"$(. setup/lib/install-slug.sh && launchd_label)"` (macOS) / `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (Linux) 4. **Check for duplicate service instances** — if `logs/nanoclaw.error.log` shows `No adapter for channel type channelType="signal"` despite the adapter starting, two NanoClaw processes are racing. See the `/debug` skill section "No adapter for channel type / Messages silently lost" for the full fix. ### Messages delivered but never arrive (null platformMsgId) diff --git a/.claude/skills/add-wechat/REMOVE.md b/.claude/skills/add-wechat/REMOVE.md index 4d4ed8ec3..07367c097 100644 --- a/.claude/skills/add-wechat/REMOVE.md +++ b/.claude/skills/add-wechat/REMOVE.md @@ -41,9 +41,11 @@ DELETE FROM messaging_groups WHERE channel_type = 'wechat'; ### 6. Rebuild and restart +Run from your NanoClaw project root: + ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh systemctl --user restart $(systemd_unit) # Linux # or launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS diff --git a/.claude/skills/add-wechat/SKILL.md b/.claude/skills/add-wechat/SKILL.md index 5bbb2d640..64faed813 100644 --- a/.claude/skills/add-wechat/SKILL.md +++ b/.claude/skills/add-wechat/SKILL.md @@ -82,10 +82,10 @@ Sync to container: `mkdir -p data/env && cp .env data/env/env` ### 2. Start the service and scan the QR -Restart NanoClaw: +Restart NanoClaw — run from your NanoClaw project root: ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh systemctl --user restart $(systemd_unit) # Linux # or launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS diff --git a/.claude/skills/add-whatsapp/SKILL.md b/.claude/skills/add-whatsapp/SKILL.md index a5205b9eb..fb9de418b 100644 --- a/.claude/skills/add-whatsapp/SKILL.md +++ b/.claude/skills/add-whatsapp/SKILL.md @@ -244,10 +244,10 @@ rm -rf store/auth/ && pnpm exec tsx setup/index.ts --step whatsapp-auth -- --met ### "waiting for this message" on reactions -Signal sessions corrupted from rapid restarts. Clear sessions: +Signal sessions corrupted from rapid restarts. Clear sessions — run from your NanoClaw project root: ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh systemctl --user stop $(systemd_unit) rm store/auth/session-*.json systemctl --user start $(systemd_unit) @@ -258,7 +258,7 @@ systemctl --user start $(systemd_unit) 1. Auth exists: `test -f store/auth/creds.json` 2. Connected: `grep "Connected to WhatsApp" logs/nanoclaw.log | tail -1` 3. Channel wired: `pnpm exec tsx scripts/q.ts data/v2.db "SELECT mg.platform_id, mg.name FROM messaging_groups mg JOIN messaging_group_agents mga ON mg.id=mga.messaging_group_id WHERE mg.channel_type='whatsapp'"` -4. Service running: `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (run from the project root so the slug helper resolves) +4. Service running: `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` ### "conflict" disconnection diff --git a/.claude/skills/convert-to-apple-container/SKILL.md b/.claude/skills/convert-to-apple-container/SKILL.md index 6d808b74f..16c166712 100644 --- a/.claude/skills/convert-to-apple-container/SKILL.md +++ b/.claude/skills/convert-to-apple-container/SKILL.md @@ -171,9 +171,11 @@ Expected: Both operations succeed. ### Full integration test +Run from your NanoClaw project root: + ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) ``` diff --git a/.claude/skills/customize/SKILL.md b/.claude/skills/customize/SKILL.md index 9e7001f70..1e83f9eac 100644 --- a/.claude/skills/customize/SKILL.md +++ b/.claude/skills/customize/SKILL.md @@ -88,11 +88,11 @@ Implementation: ## After Changes -Always tell the user: +Always tell the user — run from your NanoClaw project root: ```bash # Rebuild and restart pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh # macOS: launchctl unload ~/Library/LaunchAgents/$(launchd_label).plist launchctl load ~/Library/LaunchAgents/$(launchd_label).plist diff --git a/.claude/skills/init-first-agent/SKILL.md b/.claude/skills/init-first-agent/SKILL.md index 0575762e4..6a671b0ad 100644 --- a/.claude/skills/init-first-agent/SKILL.md +++ b/.claude/skills/init-first-agent/SKILL.md @@ -9,7 +9,7 @@ Stand up the first NanoClaw agent for a channel and verify end-to-end delivery b ## Prerequisites -- **Service running.** Check: `launchctl list | grep "$(. setup/lib/install-slug.sh && launchd_label)"` (macOS) or `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (Linux). Run from the project root so the slug helper resolves. If stopped, tell the user to run `/setup` first. +- **Service running.** Check: `launchctl list | grep "$(. setup/lib/install-slug.sh && launchd_label)"` (macOS) or `systemctl --user status "$(. setup/lib/install-slug.sh && systemd_unit)"` (Linux). If stopped, tell the user to run `/setup` first. - **Target channel installed.** At least one `/add-` skill has run, credentials are in `.env`, and the adapter is uncommented in `src/channels/index.ts`. - **Adapter connected.** Tail `logs/nanoclaw.log` — look for a recent `channel setup` / `adapter connected` line for the target channel. diff --git a/.claude/skills/init-onecli/SKILL.md b/.claude/skills/init-onecli/SKILL.md index 92c533faf..344a01b02 100644 --- a/.claude/skills/init-onecli/SKILL.md +++ b/.claude/skills/init-onecli/SKILL.md @@ -236,7 +236,7 @@ pnpm run build If build fails, diagnose and fix. Common issue: `@onecli-sh/sdk` not installed — run `pnpm install` first. -Restart the service (run from your NanoClaw project root so the slug helper resolves): +Restart the service, from your NanoClaw project root: - macOS (launchd): `launchctl kickstart -k gui/$(id -u)/"$(. setup/lib/install-slug.sh && launchd_label)"` - Linux (systemd): `systemctl --user restart "$(. setup/lib/install-slug.sh && systemd_unit)"` - WSL/manual: stop and re-run `bash start-nanoclaw.sh` diff --git a/.claude/skills/manage-mounts/SKILL.md b/.claude/skills/manage-mounts/SKILL.md index 747bfe57c..f0cac8835 100644 --- a/.claude/skills/manage-mounts/SKILL.md +++ b/.claude/skills/manage-mounts/SKILL.md @@ -41,10 +41,10 @@ npx tsx setup/index.ts --step mounts --force -- --empty ## After Changes -Restart the service so containers pick up the new config (the unit/label names are per-install — see `setup/lib/install-slug.sh`): +Restart the service so containers pick up the new config (the unit/label names are per-install — see `setup/lib/install-slug.sh`). Run from your NanoClaw project root: ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS systemctl --user restart $(systemd_unit) # Linux ``` diff --git a/.claude/skills/update-nanoclaw/SKILL.md b/.claude/skills/update-nanoclaw/SKILL.md index d0168ba14..8797374a0 100644 --- a/.claude/skills/update-nanoclaw/SKILL.md +++ b/.claude/skills/update-nanoclaw/SKILL.md @@ -270,7 +270,7 @@ Show: Tell the user: - To rollback: `git reset --hard ` - Backup branch also exists: `backup/pre-update--` -- Restart the service to apply changes (run from your NanoClaw project root so the slug helper resolves). The unit/label names are per-install — derive them with `setup/lib/install-slug.sh`: +- Restart the service to apply changes, from your NanoClaw project root. The unit/label names are per-install — derive them with `setup/lib/install-slug.sh`: - **macOS (Darwin)**: `source setup/lib/install-slug.sh && launchctl kickstart -k gui/$(id -u)/$(launchd_label)` - **Linux**: `source setup/lib/install-slug.sh && systemctl --user restart $(systemd_unit)` (or, if you want to confirm the unit name first: `systemctl --user list-units --type=service | grep "$(. setup/lib/install-slug.sh && systemd_unit)"`) - **Manual** (no service found): restart `pnpm run dev` diff --git a/.claude/skills/use-native-credential-proxy/SKILL.md b/.claude/skills/use-native-credential-proxy/SKILL.md index 20547f7cd..52a0240fe 100644 --- a/.claude/skills/use-native-credential-proxy/SKILL.md +++ b/.claude/skills/use-native-credential-proxy/SKILL.md @@ -128,7 +128,7 @@ echo 'ANTHROPIC_API_KEY=' >> .env pnpm run build ``` -Then restart the service (run from your NanoClaw project root so the slug helper resolves): +Then restart the service, from your NanoClaw project root: - macOS: `launchctl kickstart -k gui/$(id -u)/"$(. setup/lib/install-slug.sh && launchd_label)"` - Linux: `systemctl --user restart "$(. setup/lib/install-slug.sh && systemd_unit)"` - WSL/manual: stop and re-run `bash start-nanoclaw.sh` diff --git a/.claude/skills/x-integration/SKILL.md b/.claude/skills/x-integration/SKILL.md index 0c97be060..59179f7a2 100644 --- a/.claude/skills/x-integration/SKILL.md +++ b/.claude/skills/x-integration/SKILL.md @@ -38,6 +38,8 @@ Before using this skill, ensure: ## Quick Start +Run from your NanoClaw project root: + ```bash # 1. Setup authentication (interactive) pnpm exec dotenv -e .env -- pnpm exec tsx .claude/skills/x-integration/scripts/setup.ts @@ -49,7 +51,7 @@ pnpm exec dotenv -e .env -- pnpm exec tsx .claude/skills/x-integration/scripts/s # 3. Rebuild host and restart service pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # Linux: systemctl --user restart $(systemd_unit) # Verify: launchctl list | grep "$(launchd_label)" (macOS) or systemctl --user status $(systemd_unit) (Linux) @@ -271,16 +273,18 @@ cat data/x-auth.json # Should show {"authenticated": true, ...} ### 4. Restart Service +Run from your NanoClaw project root: + ```bash pnpm run build -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # Linux: systemctl --user restart $(systemd_unit) ``` -**Verify success:** +**Verify success** — from your NanoClaw project root: ```bash -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl list | grep "$(launchd_label)" # macOS — should show PID and exit code 0 or - # Linux: systemctl --user status $(systemd_unit) ``` @@ -346,9 +350,11 @@ echo '{"content":"Test"}' | pnpm exec tsx .claude/skills/x-integration/scripts/p ### Authentication Expired +Run from your NanoClaw project root: + ```bash pnpm exec dotenv -e .env -- pnpm exec tsx .claude/skills/x-integration/scripts/setup.ts -source setup/lib/install-slug.sh # run from your NanoClaw project root +source setup/lib/install-slug.sh launchctl kickstart -k gui/$(id -u)/$(launchd_label) # macOS # Linux: systemctl --user restart $(systemd_unit) ```