Skip to content

Conn-Ho/wechat-claude-code

Repository files navigation

wechat-claude-code

通过微信远程控制 Claude Code。扫码登录后,直接在微信里给 Claude 发任务、审批操作、中断执行、接收完成通知。


功能

基础功能

  • 微信对话:直接在微信里给 Claude 发消息,Claude 在本地执行后把结果发回微信
  • 图片 / 文件传输:发图片给 Claude 让它分析,Claude 生成的文件也能回传微信
  • 语音消息:自动提取转写文字后转发给 Claude

权限审批

开启后,Claude 每次执行 Bash 命令、写文件、编辑文件前,会先发微信问你是否允许:

⚠️ Claude 请求执行操作
工具: Bash
命令: rm -rf dist/

回复 y 允许,n 拒绝
(ID: a1b2c3d4)

回复 y 放行,回复 n 拒绝。默认关闭,需手动开启。

审批白名单

为常见操作设置自动允许/拒绝规则,无需每次手动确认:

/allow Bash:npm*    # 自动允许所有 npm 开头的命令
/deny Bash:rm -rf*  # 自动拒绝危险命令
/whitelist          # 查看所有规则

任务完成通知

Claude 完成任务后自动推送微信通知,无需盯着终端等。

流式进度推送

任务执行超过 30 秒,每隔 30 秒推送一次心跳消息,告知当前已用时。

中断控制

在微信发 /stop,立即中断 Claude 正在执行的任务。

多项目管理

管理多个代码仓库,随时切换:

/project add myapp ~/code/myapp  # 添加项目
/projects                         # 列出所有项目
/switch myapp                     # 切换到 myapp 项目

任务历史

查看最近 20 条任务记录,支持重发:

/history      # 查看历史
/retry        # 重发最新任务
/redo 3       # 重发第 3 条历史

定时任务

定时或周期性执行任务:

/schedule 09:00 "检查并推送今日代码"        # 每天 9 点执行
/schedule 2026-04-01 10:00 "部署生产环境"  # 指定日期执行
/cron "0 9 * * 1" "周报生成"               # Cron 表达式
/jobs           # 查看所有任务
/cancel abc123  # 取消任务

用量统计

/usage    # 查看今日消息数和 Token 估算

用户访问控制

控制哪些微信账号可以操控 Claude(默认所有人均可):

/trust <微信ID> <备注>  # 添加信任用户
/untrust <微信ID>       # 移除
/users                  # 查看列表

文件请求

从服务器获取文件内容:

/get ~/code/myapp/src/index.ts   # 获取文件(小文本直接显示,大文件作附件发送)

环境要求

  • Claude Code v2.1.80+
  • Node.js >= 22
  • 微信(iOS / Android / macOS / Windows)

安装

git clone https://github.com/Conn-Ho/wechat-claude-code.git
cd wechat-claude-code

无需编译,dist/ 已包含在仓库中。


使用步骤

第一步:注册 MCP + 扫码登录

node dist/cli.js install

终端会显示二维码,用微信扫码登录。登录成功后账号信息保存在 ~/.claude/channels/wechat/

第二步:Patch Claude Code

Claude Code 默认关闭 Channels 功能,需要打补丁启用:

node dist/cli.js patch

恢复原始版本:

node dist/cli.js unpatch

第三步:启动

/opt/homebrew/bin/claude --dangerously-load-development-channels server:wechat-channel

启动后在微信给登录的账号发消息,即可开始使用。


微信命令

命令 说明
y 允许最新的待审批操作
n 拒绝最新的待审批操作
y <id> 允许指定 ID 的操作(如 y a1b2c3d4
n <id> 拒绝指定 ID 的操作
/stop 中断 Claude 当前任务
/status 查看运行状态和待审批列表
/allow <工具>:<模式> 添加自动允许规则
/deny <工具>:<模式> 添加自动拒绝规则
/whitelist 查看审批白名单
/whitelist remove <id> 删除规则
/project add <名> <路径> 添加项目
/projects 列出所有项目
/switch <名> 切换当前项目
/history 查看任务历史
/retry 重发最新任务
/redo <n> 重发第 n 条历史
/schedule <时间> "<任务>" 添加定时任务
/cron "<表达式>" "<任务>" 添加周期任务
/jobs 查看定时任务
/cancel <id> 取消定时任务
/usage 用量统计
/trust <ID> 添加信任用户
/untrust <ID> 移除信任用户
/users 查看用户列表
/get <路径> 请求文件内容
/help 显示帮助

其他任何消息都会直接发给 Claude 执行。


可选:开启权限审批

第一步:安装 hooks

node dist/cli.js install-hooks

这会在 ~/.claude/settings.json 里注册 PreToolUseStop 两个 hook。

第二步:开启审批模式

touch ~/.claude/channels/wechat/approval-mode

开启后,Claude 执行 Bash / Write / Edit / MultiEdit 前都会发微信等待审批。

关闭审批模式(恢复无拦截):

rm ~/.claude/channels/wechat/approval-mode

审批超时(2分钟)后自动放行,不会卡死。

移除 hooks:

node dist/cli.js remove-hooks

所有 CLI 命令

node dist/cli.js install         # 注册 MCP server + 扫码登录
node dist/cli.js login           # 重新扫码登录(session 过期时使用)
node dist/cli.js patch           # 为 Claude Code 打补丁启用 Channels
node dist/cli.js unpatch         # 恢复原始 Claude Code
node dist/cli.js install-hooks   # 安装 hooks(审批拦截 + 完成通知)
node dist/cli.js remove-hooks    # 移除已安装的 hooks
node dist/cli.js status          # 查看当前登录状态
node dist/cli.js help            # 显示帮助

工作原理

消息流

微信消息
  → 腾讯 iLink Bot API(云端长轮询)
  → 本地 MCP Server(接收消息)
  → Claude Code(执行任务)
  → MCP Server(调用 reply tool)
  → iLink API sendmessage
  → 微信

权限审批流程

Claude 调用工具(Bash / Write / Edit)
  → PreToolUse hook 触发(仅 approval-mode 开启时)
  → 检查审批白名单 → 自动放行/拒绝(命中规则时)
  → 写入 /tmp/wcc-approval-{id}.pending
  → MCP Server 检测到文件 → 发微信审批请求
  → 用户回复 y/n
  → MCP Server 写入 /tmp/wcc-approval-{id}.result
  → hook 读取结果:exit 0(允许)/ exit 2(拒绝)

任务完成通知

Stop hook 在 Claude 完成响应后触发,读取 ~/.claude/channels/wechat/last-user.json 中保存的用户上下文,调用 iLink API 发送通知。

中断控制

/stop 命令触发后,MCP Server 执行 process.kill(process.ppid, 'SIGINT'),向父进程 Claude Code 发送中断信号。

定时任务

MCP Server 内置调度循环,每分钟检查 ~/.claude/channels/wechat/jobs.json,到期任务通过 channel notification 转发给 Claude 执行。


注意事项

  • 单账号限制(iLink Bot API 限制)
  • 用户需先发一条消息,Claude 才能回复(context_token 按消息签发)
  • Session 会过期,过期后重新扫码:node dist/cli.js login
  • patch 仅对 npm 全局安装的 Claude Code(cli.js)有效,原生二进制版本自动识别并跳转

License

Apache 2.0

About

Control Claude Code remotely via WeChat — permission approval, push notifications, interrupt control

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors