bchewy/whatsapp-agent-plugin/whatsapp
Claude Code and agent skill by bchewy/whatsapp-agent-plugin
- community
Checking that the SKILL.md file is still in the repository.
Use when the user wants Codex to search WhatsApp chats, read WhatsApp messages, inspect contacts, download WhatsApp media, send WhatsApp messages/media, create WhatsApp groups, or add participants to WhatsApp groups through this plugin.
Install
npx vskill@latest install bchewy/whatsapp-agent-plugin/whatsappSKILL.md
WhatsApp MCP Workflow
This plugin wraps lharries/whatsapp-mcp, which has two moving parts:
- A Go WhatsApp bridge in
build/vendor/whatsapp-mcp/whatsapp-bridge. - A Python stdio MCP server in
build/vendor/whatsapp-mcp/whatsapp-mcp-server.
The MCP server depends on the bridge listening at http://127.0.0.1:8080/api.
Before Using Tools
- Run
scripts/check-health.shfrom the plugin root when setup is uncertain. - The MCP startup script tries to auto-start the bridge in the background when
WHATSAPP_BRIDGE_AUTO_START is not 0. If setup is uncertain or the user needs to see the QR code, ask them to start it in a terminal with:
``bash bash scripts/start-bridge.sh ``
- On first run, the user must scan the QR code from WhatsApp:
Settings > Linked Devices > Link a Device.
- For always-on background sync on macOS, use:
``bash bash scripts/bridge-service.sh install ``
Then check it with:
``bash bash scripts/bridge-service.sh status ``
- Keep one bridge process running while using WhatsApp MCP tools.
If this plugin is installed from a local marketplace, Codex may run the cached installed copy under ~/.codex/plugins/cache/.... Prefer helper scripts from the same installed plugin copy so the Go bridge version matches the Python MCP server version. Runtime auth, message indexes, and media live in the shared external store under ${XDG_DATA_HOME:-$HOME/.local/share}/codex-whatsapp-plugin/store/.
Tool Use
Prefer read-only discovery before write actions:
search_contacts: find a person or phone number.list_chats: inspect available chats.get_chat: inspect one chat by JID.list_messages: search or page through messages.list_events: search or page through native WhatsApp event cards captured by the bridge.backfill_events: request on-demand history sync for a chat so older event cards can be indexed.list_desktop_events: macOS fallback that reads the currently open WhatsApp Desktop group event drawer.get_message_context: inspect context around a message.download_media: download media for a message when the user asks for it.
For sends:
- Use
get_direct_chat_by_contactorsearch_contactsfirst when the recipient is ambiguous. - Confirm the exact recipient and message/media path before using
send_message,send_file, orsend_audio_message; setconfirm_send=trueonly after that confirmation. - For group sends, use the group JID ending in
@g.us. - For voice messages, prefer
.oggOpus. If the file is not.ogg,ffmpegmust be installed or the tool may fail.
For group participant changes:
- Use
list_chats,get_chat, or prior context to verify the exact group JID ending in@g.us. - Use
search_contactsfirst when participant phone numbers/JIDs are ambiguous. - Confirm the exact group name and participant list before using
create_group; setconfirm_create=trueonly after that confirmation. - Confirm the exact group JID and participant list before using
add_group_participants; setconfirm_add=trueonly after that confirmation. Direct adds by raw phone number requireconfirm_risky_phone_number_add=truebecause WhatsApp participant-level403errors can log out the linked device. - For raw phone numbers, prefer
get_group_invite_linkand ask the user to share the link manually. Treat invite links as sensitive; setconfirm_get=trueonly after confirming the exact group, and setconfirm_reset=trueonly after confirming link rotation. - To invite people when direct adds fail, use
add_or_invite_group_participants. Setconfirm_add=trueonly after confirming the exact group and participants. Setconfirm_invite_message=trueonly after confirming fallback DMs should be sent; raw-phone fallback DMs additionally requireconfirm_risky_phone_invite_dm=true. - If WhatsApp rejects a direct add because of permissions or privacy settings, ask the user to use or share a group invite link instead.
Privacy And Failure Modes
- WhatsApp auth, message indexes, downloaded media, and the local bridge token are stored locally under
${XDG_DATA_HOME:-$HOME/.local/share}/codex-whatsapp-plugin/store/(override withWHATSAPP_MCP_STORE_DIR). - Do not commit, upload, or summarize private message history beyond what the user asked for.
- If messages look stale, ask the user to leave the bridge running for sync to catch up.
- Native WhatsApp event cards are captured only when WhatsApp sends event payloads to the bridge. If older events are missing, use
backfill_eventsfor the chat, then re-runlist_events. If the events still only appear in WhatsApp Desktop's drawer, ask the user to open WhatsApp Desktop > target group > Group Info > Events, then uselist_desktop_events. - If auth is broken or the linked device expired, use
scripts/reset-session.shonly after explicit user confirmation.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingwhatsapp/skills/whatsapp/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/bchewy/whatsapp-agent-plugin/whatsapp)