← 返回目录
W

WhatsApp Channel for Claude Code

社区
通过 WhatsApp 直接驱动你的 Claude Code 会话
GitHub 源仓库 ↗
★ 87 Stars 分类 · 团队协作 热门
64FMRS · C

这是一个由社区开发、经 Anthropic 审核并发布到官方插件市场的 WhatsApp channel 插件(仓库自述为第一个被 Anthropic 审核发布的社区 WhatsApp channel 插件),以关联设备方式连接个人 WhatsApp 账号,无需 API key、Docker 或 WhatsApp Business API。它在 Claude Code 中体验最完整:入站消息可作为 channel 通知唤醒会话;在其他 MCP 客户端中退化为轮询模式。适合愿意在终端完成配置、重视本地隐私的个人开发者;不适合需要官方托管、多实例或合规级企业通道的用户。使用时需注意一个账号只能有一个关联会话,以及审批命令刻意保留在终端以保证安全。

可靠性
10/20
安全与权限
12/20
维护活跃度
12/20
文档质量
16/20
安装易用性
14/20
查看 FMRS 评分方法 →

WhatsApp Channel for Claude Code 是一个以「关联设备」(与 WhatsApp Web 相同协议,基于 Baileys)方式连接 WhatsApp 的 MCP 服务器,将 WhatsApp 作为 Claude Code 的 channel 暴露出来。收到的消息会实时进入会话,Claude 用你自己的号码回复,收件人看到的是一段正常聊天。全部在本机运行,消息在 WhatsApp 与你自己的会话之间直接传递,中间没有第三方服务器。配对后即使手机关机也能继续工作,只需保持 Claude Code 会话开启,重新连接无需再次配对。它是一个普通的 stdio MCP 服务器,任何 MCP 客户端都可以运行;但入站消息推送依赖 Claude Code 的 notifications/claude/channel 扩展,其他客户端只能轮询。

工具能力

reply
向聊天发送消息,可分块并支持 @ 提及。
react
对消息添加表情回应(也用于权限批准/拒绝)。
edit_message
编辑已发送的消息。
download_attachment
下载收到的媒体附件。
status
查看服务器与连接状态。
unreplied
列出尚未回复的消息数量与内容。
catch_up
重启后重放各聊天的近期双向对话、未回复计数与未完成任务。
list_groups
列出可用的群组。
wait_for_messages
轮询等待下一条消息,最长约 40 秒。
whatsapp_unavailable
当连接被另一个进程占用时返回的唯一工具,并指明占用的进程。

安装接入

方式一(Claude Code 插件):依次执行 claude plugin marketplace add Rich627/whatsapp-claude-plugin、claude plugin install whatsapp-channel@whatsapp-claude-plugin,再以 claude --dangerously-load-development-channels plugin:whatsapp-channel@whatsapp-claude-plugin 启动(该标志会把插件注册为 channel,未加时工具仍可加载,但新消息不会唤醒会话)。会话内执行 /whatsapp-channel:configure <phone>(国家码+号码,不带 +),首次启动会打印配对码;手机端进入 WhatsApp → 设置 → 已关联的设备 → 关联设备 → 改用电话号码关联 → 输入配对码。方式二(其他 MCP 客户端):用绝对路径注册 stdio 服务器,例如 Codex CLI 的 ~/.codex/config.toml、Gemini CLI 的 ~/.gemini/settings.json 或 Cursor 的 mcp.json,命令为 bun run --cwd /absolute/path/to/whatsapp-channel start,并将超时调大(如 startup_timeout_sec 30、tool_timeout_sec 120)。

claude_desktop_config.json
{
  "mcpServers": {
    "whatsapp": {
      "type": "stdio",
      "command": "bun",
      "args": ["run", "--cwd", "/absolute/path/to/whatsapp-channel", "start"]
    }
  }
}

选型与风险

适合谁

  • 希望用个人 WhatsApp 号码与 Claude 交互的个人用户
  • 愿意在终端完成配置、能接受 Claude Code 开发标志的开发者
  • 需要在手机端远程审批工具调用的自动化场景

不适合谁

  • 需要官方 WhatsApp Business API 或 Meta 开发者账号的合规场景
  • 需要官方托管、多租户或云端多实例部署的团队
  • 无法保证同一时间只运行一个客户端实例的环境
  • 不愿自行搭建 mlx-whisper 却期望语音转写的用户

所需权限

  • 读取与发送 WhatsApp 消息(以你个人号码身份)
  • 访问本机运行时状态目录 ~/.whatsapp-channel/(认证、允许列表、群组配置、收件箱)
  • 读写仓库内的本地文件与运行脚本(如 bun scripts/access.ts、scripts/watchdog.sh)
  • 可选的本地语音转写(ffmpeg 与 mlx-whisper 环境)

风险与副作用

  • Claude 发送的消息会以你自己的号码出现,收件人无法区分
  • 同一个 WhatsApp 账号只允许一个关联设备会话,同时运行两个服务器会互相踢下线
  • 访问控制命令刻意不暴露为 MCP 工具(仅终端执行),若误开放给消息侧可能被提示注入利用
  • 入站消息的唤醒依赖 Claude Code 的 channel 扩展,其他客户端不会收到推送
  • 已知的 Claude Code 客户端缺陷(#37933)可能导致消息不到达,属于客户端侧问题
  • 使用 --dangerously-load-development-channels 标志启动存在风险,需自行确认来源可信

常见排障

  1. 配对码没有显示:先执行 /whatsapp-channel:configure <phone> 再重新启动
  2. 出现 440 断开错误:同一认证状态只允许一个连接,用 pkill -f "whatsapp.*server" 清理残留进程
  3. 新消息不唤醒会话:多半是启动时漏了 --dangerously-load-development-channels plugin:whatsapp-channel@whatsapp-claude-plugin,检查 MCP 调试日志中的 Channel notifications skipped
  4. 消息不到达:可能与 Claude Code 客户端缺陷 #37933 有关,服务端正常
  5. 回复能发出但收不到:先发一条私聊再发群消息;查看 ~/.whatsapp-channel/diag.log 中的 inbound upsert 行,并设 WHATSAPP_DIAG_DEBUG=1 获取 Baileys 完整调试输出
  6. 认证过期:执行 /whatsapp-channel:configure reset-auth 后重新配对
  7. 其他客户端没有推送:改用 wait_for_messages、catch_up 或 unreplied 轮询

使用场景

从 WhatsApp 用自然语言驱动 Claude Code 会话
把语音消息自动转写为文本后交给 Claude 处理
在手机上用表情回应批准或拒绝 Claude 的工具调用
为不同群组配置各自的性格与对话记忆
在群组 config.md 中安排周期性定时任务
用配对码与允许列表严格控制谁能联系到会话

支持客户端

Claude Code完整支持
Codex CLI部分支持
Gemini CLI部分支持
Cursor部分支持