Help us improve
Share bugs, ideas, or general feedback.
From whatsapp
Render the WhatsApp pairing QR code in this session so the user can scan it with their phone. Use when the user asks to log in, pair a phone, scan a QR, or set up the bridge for the first time.
npx claudepluginhub janfabian/claude-whatsapp --plugin whatsappHow this skill is triggered — by the user, by Claude, or both
Slash command
/whatsapp:loginThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The bridge logs in as a WhatsApp Web companion device. On first run (and after the ~20-day session expiry) it writes the pairing string to `~/.claude/channels/whatsapp/qr.txt`. This skill renders it as a QR code in your terminal.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
The bridge logs in as a WhatsApp Web companion device. On first run (and after the ~20-day session expiry) it writes the pairing string to ~/.claude/channels/whatsapp/qr.txt. This skill renders it as a QR code in your terminal.
Arguments passed: $ARGUMENTS
Critical: WhatsApp's pairing QR rotates every ~30 seconds. A stale QR (>30s old) will silently fail to link — the phone scans and nothing happens. So first verify the bridge is alive and the QR is fresh, then render it.
curl -s --max-time 2 http://127.0.0.1:8080/api/health. Expect a JSON body like {"connected":true,"logged_in":false}. If the curl fails or returns non-zero, the bridge isn't running — tell the user: "The bridge isn't running. Make sure Claude Code is launched with --channels plugin:whatsapp@claude-whatsapp and that bun is in PATH. Check claude --debug output for spawn errors." Stop here.~/.claude/channels/whatsapp/qr.txt.
ls -la ~/.claude/channels/whatsapp/store/whatsapp.db) or the bridge gave up waiting (3-minute timeout). Tell the user: "No QR pending. If you expected one, restart the channel-mode session: exit Claude, then claude --channels plugin:whatsapp@claude-whatsapp."stat -c %Y qr.txt shows it's more than ~25 seconds old → it's likely stale. Tell the user: "That QR is N seconds old; WhatsApp will probably reject it. Restart the channel session to force a fresh one." Don't bother rendering.qrencode -t UTF8 -m 1 < ~/.claude/channels/whatsapp/qr.txt via Bash. If that succeeds, print the QR.qrencode isn't installed, fall back: tell the user "qrencode not installed (apt install qrencode / brew install qrencode). Run tail -n 50 ~/.claude/channels/whatsapp/bridge.log — the bridge printed the QR there in ASCII art. Make sure your terminal is at least ~70 cols wide."tail — show recent bridge logtail -n 40 ~/.claude/channels/whatsapp/bridge.log. Useful to see whether pairing succeeded.
reset — wipe the WhatsApp sessionSame as /whatsapp:configure clear-session. Confirm with the user first — this unlinks the device from WhatsApp.
qr.txt as new codes arrive. If the displayed QR was already stale, just re-run the skill.~/.claude/channels/whatsapp/store/whatsapp.db — it contains private device keys.WHATSAPP_STATE_DIR pointing to a different directory.