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.
How 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.
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.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.
npx claudepluginhub janfabian/claude-whatsapp --plugin whatsapp