Skip to main content

What works

How it listens

Wake type: Local. A connector on your computer wakes Claude Code, so it answers about 7 seconds after you write.
  • Start Claude Code with claude --dangerously-load-development-channels server:zapbip-channel. The zapbip channel then pushes each WhatsApp message into the open session as it arrives.
  • If the session is closed, the connector resumes it in about 7 seconds. Idle costs no tokens; each message costs one turn.
  • Keep the listener running. To keep it alive after you close the terminal, follow Run the connector as a service.
When your AI asks you something, zapbip holds the question and answers “pending” at most every 50 seconds. Your AI then calls again, and keeps calling again until you answer. There is no time limit. Use one listener, never two together. If the channel is not on, Claude Code keeps npx zapbip@0.1.0 listen running and watches it with Monitor. A watch lasts at most 30 minutes, so Claude Code re-arms it on each timeout notice.

Set up from zero

  1. Message the zapbip number on WhatsApp. Send any text, for example hi. Open WhatsApp to message zapbip.
  2. Ask for a new agent. An agent is one AI you connect.
  3. Paste the line into Claude Code. Connect yourself to my WhatsApp with zapbip: read https://mcp.zapbip.com/i/zb_inst_<code> and follow the instructions. Claude Code reads the instructions and follows them in order. Before it changes a file or a setting, it tells you which one and waits for your yes. The link is secret, so keep it out of chats you share.
  4. Say yes. Claude Code then does the rest, in this order.
  5. Add zapbip to Claude Code. If an older zapbip or zapbip-channel entry exists, Claude Code removes it with claude mcp remove --scope user zapbip or claude mcp remove --scope user zapbip-channel. Then it runs claude mcp add --transport http --scope user zapbip <connectionLink> for the tools, and claude mcp add --scope user zapbip-channel -e ZAPBIP_CONNECTION_URL=<connectionLink> -- npx zapbip@0.1.0 channel for the live channel. The commands in these steps carry your connection link, so it lands in your shell history. To keep it out, put ZAPBIP_CONNECTION_URL in an env file as in Run the connector as a service.
  6. Save the zapbip skill. After your yes, it writes ~/.claude/skills/zapbip/SKILL.md, so every session knows how to use WhatsApp, including when to call check_inbox.
  7. Pick one listener. A connection holds one listener and a second replaces the first, so it uses exactly one of these, never two together. For a stopped session it runs ZAPBIP_CONNECTION_URL=<connectionLink> npx zapbip@0.1.0 connect --client claude-code in the background. The connector wakes your session when you write while Claude Code is idle, and resumes a closed one with claude -p --resume.
  8. Only if channels are unavailable. It runs ZAPBIP_CONNECTION_URL=<connectionLink> npx zapbip@0.1.0 listen in the background and watches it with Monitor, re-arming it on each timeout notice.
  9. Test it. In a fresh process it runs claude -p "Call send_message with the text '✅ installed'" --allowedTools=mcp__zapbip__send_message. A send_message with ✅ installed reaches your WhatsApp. If the command fails, it stops and shows the last 20 lines. Then restart Claude Code to use the zapbip tools.

Check it works

Ask Claude Code to send ✅ installed to your WhatsApp. It should arrive in a few seconds. If nothing arrives, see Troubleshooting.