一键导入
add-whatsapp
Add WhatsApp as a channel. Can replace other channels entirely or run alongside them. Uses QR code or pairing code for authentication.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Add WhatsApp as a channel. Can replace other channels entirely or run alongside them. Uses QR code or pairing code for authentication.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.
How to make authenticated API calls to external services. Covers api.sh, cred-exec, auth patterns, available credentials, cloning repos, SSH forwarding, and troubleshooting 401s. Read this before calling any external API or using a CLI tool that needs auth.
Rich content blocks for the ClawDad web UI. Use when responding to web channels (folder starts with "web_") to emit structured blocks — code, cards, tables, stats, progress bars, diffs, alerts, action buttons, files, forms — alongside standard markdown.
Create and manage agent groups and multi-agent teams. Use when the user wants to create a new group, create a team, list groups, delete a group, add/remove agents from a team, or troubleshoot group configuration.
File a forward-looking GitHub issue (enhancement, design debt, follow-up) against dfederspiel/clawdad with the established structured-proposal template. Use when work surfaces a follow-up that isn't a confirmed bug — proposed redesigns, deferred cleanup, dependent issues, capability gaps. NOT for filing bugs (use /report-bug) or for filing without context. Triggers on "file followup", "file a followup", "/file-followup", or "file as an issue" when the topic is forward-looking rather than a defect.
Audit the context layers for a group or agent. Reports which CLAUDE.md files are in play, lists loaded skills with line counts, and flags any skill over the ~150-line compaction threshold where content may be silently truncated. Use when debugging agent drift, before shipping a new skill, or when an agent seems to ignore rules you thought were loaded. Triggers on "context audit", "audit context", "check compaction", "why is the agent ignoring X", or "/context-audit".
| name | add-whatsapp |
| description | Add WhatsApp as a channel. Can replace other channels entirely or run alongside them. Uses QR code or pairing code for authentication. |
This skill adds WhatsApp support to NanoClaw. It installs the WhatsApp channel code, dependencies, and guides through authentication, registration, and configuration.
Check if WhatsApp is already configured. If store/auth/ exists with credential files, skip to Phase 4 (Registration) or Phase 5 (Verify).
ls store/auth/creds.json 2>/dev/null && echo "WhatsApp auth exists" || echo "No WhatsApp auth"
Check whether the environment is headless (no display server):
[[ -z "$DISPLAY" && -z "$WAYLAND_DISPLAY" && "$OSTYPE" != darwin* ]] && echo "IS_HEADLESS=true" || echo "IS_HEADLESS=false"
Use AskUserQuestion to collect configuration. Adapt auth options based on environment:
If IS_HEADLESS=true AND not WSL → AskUserQuestion: How do you want to authenticate WhatsApp?
Otherwise (macOS, desktop Linux, or WSL) → AskUserQuestion: How do you want to authenticate WhatsApp?
If they chose pairing code:
AskUserQuestion: What is your phone number? (Digits only — country code followed by your 10-digit number, no + prefix, spaces, or dashes. Example: 14155551234 where 1 is the US country code and 4155551234 is the phone number.)
Check if src/channels/whatsapp.ts already exists. If it does, skip to Phase 3 (Authentication).
git remote -v
If whatsapp is missing, add it:
git remote add whatsapp https://github.com/qwibitai/nanoclaw-whatsapp.git
git fetch whatsapp main
git merge whatsapp/main || {
git checkout --theirs package-lock.json
git add package-lock.json
git merge --continue
}
This merges in:
src/channels/whatsapp.ts (WhatsAppChannel class with self-registration via registerChannel)src/channels/whatsapp.test.ts (41 unit tests)src/whatsapp-auth.ts (standalone WhatsApp authentication script)setup/whatsapp-auth.ts (WhatsApp auth setup step)import './whatsapp.js' appended to the channel barrel file src/channels/index.ts'whatsapp-auth' step added to setup/index.ts@whiskeysockets/baileys, qrcode, qrcode-terminal npm dependencies in package.jsonASSISTANT_HAS_OWN_NUMBER in .env.exampleIf the merge reports conflicts, resolve them by reading the conflicted files and understanding the intent of both sides.
npm install
npm run build
npx vitest run src/channels/whatsapp.test.ts
All tests must pass and build must be clean before proceeding.
Read ${CLAUDE_SKILL_DIR}/references/authentication.md for the full auth flow (QR browser, QR terminal, pairing code with polling, failure handling, verify, and environment configuration).
Read ${CLAUDE_SKILL_DIR}/references/registration.md for trigger/channel type configuration, JID discovery for each chat type, and register commands.
Read ${CLAUDE_SKILL_DIR}/references/troubleshooting.md for build/restart, connection testing, and troubleshooting (QR expired, pairing code, conflict disconnection, bot not responding, group names, after setup, removal).