在微信中与本地 Claude Code 对话,并获得更强大的会话管理能力
本项目基于 Wechat-ggGitHub/wechat-claude-code 的源代码进行增强。在保留原有全部功能的基础上,新增了历史对话恢复、原生上下文压缩、权限审批转发、选择题转发、模型别名、思考强度调节、Advisor 模型、目标驱动循环、定时任务、Workspace 配置、双向文件互传、语音输入、快捷指令等功能。
人在外面、手边只有手机时,也能用微信指挥本地的 Claude Code 干活。
⚠️ 本项目是 Claude Code CLI 的微信桥接工具,不是 Claude Desktop 的插件。
1. Node.js 18+
node --version # 需要 v18.0.0 或更高2. Claude Code CLI
npm install -g @anthropic-ai/claude-code
claude --version如果你只安装了 Claude Desktop(桌面客户端),本项目无法工作。需要的是命令行版本的 Claude Code。
macOS / Linux:
git clone https://github.com/UnknownJackMe/wechat-claude-code-enhanced.git ~/.claude/skills/wechat-claude-code
cd ~/.claude/skills/wechat-claude-code && npm installWindows PowerShell:
git clone -b windows_version https://github.com/UnknownJackMe/wechat-claude-code-enhanced.git $HOME\.claude\skills\wechat-claude-code
cd $HOME\.claude\skills\wechat-claude-code
npm install首次扫码绑定与 daemon 管理:
npm run setup # 首次扫码绑定微信
npm run daemon -- start # 启动守护进程(开机自启,崩溃自动重启)
npm run daemon -- status # 查看运行状态
npm run daemon -- restart # 重启(更新代码后用)
npm run daemon -- logs # 查看日志Windows 上 npm run daemon -- start 会自动创建计划任务并启动隐藏后台进程;stop 会同时停止进程并删除开机自启任务。
macOS(Apple Silicon):
pip install pilk
brew install ffmpeg
pip install mlx-whisperWindows / Linux:
pip install pilk faster-whisper
ffmpeg -version如果想直接在微信发语音让 Claude 听懂,需要本地转录工具链:
pilk:微信 SILK 语音编解码ffmpeg:音频封装mlx-whisper:macOS Apple Silicon 默认后端faster-whisper:Windows / Linux 默认后端
不装也不影响文字/图片/文件功能,只是发语音时会降级为“无法识别,请重发或直接打字”。
━━━ 会话管理 ━━━
/help 显示帮助
/status 查看当前会话状态
/clear 清除当前会话(保留目录/模型设置)
/reset 完全重置(恢复所有默认设置)
/stop 停止当前对话并清空排队消息
/compact 压缩上下文(保持 session ID)
/history [数量] 查看对话记录(默认 20 条)
/undo [数量] 撤销最近对话(默认 1 条)
━━━ 对话恢复 ━━━
/resume 列出当前目录的历史对话
/resume <编号> 恢复指定编号的历史对话
/resume <uuid> 通过 session ID 恢复
━━━ 模型与权限 ━━━
/model [别名/名称] 查看或切换模型(切换前自动验证可用性)
/model-config 列出所有模型别名
/model-config <别名> <完整ID> 添加/更新别名
/model-config del <别名> 删除别名
/mode [bypass|accept] 权限模式:全自动 / 逐个 y/n 确认
/effort [级别] 思考强度(low/medium/high/xhigh/max)
/advisor [模型] Advisor 模型(opus/sonnet/fable/off)
━━━ 任务控制 ━━━
/q 列出所有快捷指令
/q <名字> 执行快捷指令
/q set <名字> <内容> 添加/更新快捷指令
/q del <名字> 删除快捷指令
/goal [条件] 设置目标,Claude 持续工作直到完成
/goal clear 清除当前目标
/loop <间隔> <提示> 定时循环,例: /loop 5m 检查 CI
/loop 列出所有运行中的 loop
/loop stop <id> 停止指定 loop
/loop stop all 停止所有 loop
━━━ Workspace 配置 ━━━
/configs 列出所有 workspace 配置
/set-config <编号> 向导式创建/编辑配置
/switch-config <编号> 一键切换(目录+模型+session)
/delete-config <编号> 删除配置
━━━ 文件与工具 ━━━
/cwd [路径] 查看或切换工作目录
/prompt [内容] 查看或设置系统提示词
/send-me <路径> 发送本地文件给你(支持多路径、目录)
/send-you 开始接收你发来的文件/图片
/send-you-end [要求] 结束接收,将文件+图片发给 Claude
/send-you-cancel 取消文件接收
/skills [full] 列出已安装的 skill
/version 查看版本信息
此外,直接发文字/语音/图片/文件即可与 Claude Code 对话;Claude 提出的选择题和需要确认的操作也会自动推送到微信(见下文)。
直接在微信中浏览和恢复历史对话,无需手动查找 session ID。
/resume— 列出当前目录最近 15 条历史对话,显示自定义名称(/rename设置的)或首条用户消息/resume 2— 恢复列表中第 2 条对话/resume <uuid>— 通过完整 session ID 恢复
显示逻辑与 Claude Code 终端内的 /resume 选择器保持一致:优先显示 /rename 设置的自定义标题,其次是第一条真实用户消息。同时支持只有单个 session 的目录(原版会报"没有历史对话")。
原版 /compact 只是清除 session ID(等同于 /clear)。本增强版调用 claude -p /compact --resume <sessionId>,触发 Claude Code 的原生压缩机制:
- 对话在原 session 内被总结压缩,session ID 保持不变
- token 用量大幅下降(实测:177k → 7k tokens,减少约 96%)
- 压缩完成后推送到微信,显示压缩前后 token 数量
控制 Claude 执行工具(运行命令、改文件等)时是否需要你确认。守护进程始终以 --dangerously-skip-permissions 启动,由 /mode 在两种行为间切换:
/mode — 查看当前模式
/mode bypass — 全自动,不再询问(默认)
/mode accept — 每个操作推送到微信,回复 y 批准 / n 拒绝
accept 模式下,Claude 每次要用工具,会把工具名 + 命令/文件推送到微信,例如:
🔐 需要你确认操作
工具: Bash
命令:
git push origin main
回复 y 批准 / n 拒绝(30 秒内有效)
回复 y/n(或 是/否)即可。30 秒未回复自动拒绝;审批等待期间发 /stop 会中止当前操作。技术上通过 --permission-prompt-tool stdio 的 control_request/control_response 协议实现,CLI 在等待期间阻塞,不会误执行。
当 Claude 需要你在几个方案之间做选择时(调用 AskUserQuestion 工具),选项会自动推送到微信,例如:
🤔 需要你做个选择
用哪种语言构建这个项目?
1. Python — 适合数据处理、AI/ML
2. Go — 适合高性能服务、并发
3. TypeScript — 适合全栈 Web
回复选项编号即可(5 分钟内有效)。也可直接打字回答。
回复编号(2)、多选用逗号(1,3)、或直接打字回答都可以。这个功能在任意权限模式下都生效,无需额外开启。底层复用权限审批的 stdio 协议,把你的选择作为工具结果回传给 Claude。
/model <名称> 切换模型,切换前会用一个极短的探测请求实际验证模型可用性再提交。验证失败会告诉你具体原因——模型名无效、认证/欠费、网络不可达、限流等——并保持原模型不变。这避免了输入无效模型导致守护进程静默卡死。
每次输入完整 model ID 很麻烦,/model-config 让你绑定短别名:
/model-config — 列出所有别名
/model-config sonnet claude-sonnet-4-6-thinking[1m] — 添加/更新别名
/model-config del sonnet — 删除别名
/model-config sonnet — 查看单个别名
配置好后直接 /model sonnet 即可,切换时显示别名展开结果:
✅ 模型已切换为: claude-sonnet-4-6-thinking[1m]
(别名 "sonnet" → claude-sonnet-4-6-thinking[1m])
别名持久化存储在 ~/.wechat-claude-code/model-aliases.json,daemon 重启后保留。
调整 Claude 的推理深度,在速度与质量之间按需切换。
/effort— 查看当前级别和可选项/effort xhigh— 切换到指定级别- 支持:
low/medium/high/xhigh/max
为主模型配置一个更强的顾问模型,在关键决策点自动介入(需要 Claude Code v2.1.170+)。
/advisor opus— 启用 Opus 作为顾问/advisor off— 关闭- 支持:
opus/sonnet/fable/ 完整 model ID
让 Claude 持续工作直到满足指定条件。
/goal 所有单元测试通过且 lint 干净— 设置目标,Claude 自动循环/goal— 查看当前目标状态/goal clear— 提前终止
在 wechat bot 进程内实现定时任务,结果自动推送到微信。
/loop 5m 检查 CI 是否通过— 每 5 分钟执行一次/loop— 查看所有运行中的 loop/loop stop <id>— 停止指定 loop
支持间隔:30s(最小提升至 1 分钟)/ 5m / 2h / 1d。Loop 持久化,daemon 重启后自动恢复,7 天自动过期。
针对多项目场景,一键切换目录、模型、思考强度和历史对话。
/set-config 0— 向导式创建配置(分步输入名称、目录、模型、session ID)/configs— 列出所有配置/switch-config 0— 一键切换/delete-config 0— 删除配置
/status 会显示当前是否处于某个 workspace 配置中,所有字段分行清晰展示。
双向文件传输,支持多图片、多文件混合。
/send-me — Claude 发文件给你
/send-me ~/Documents/report.pdf— 推送单个文件到微信/send-me ./chart.png ./data.csv— 一次推送多个/send-me ~/Desktop/output/— 推送整个目录内的可发送文件
此外,Claude 在回复中提到的本地文件路径会被自动识别并推送到微信,无需手动 /send-me。
/send-you — 你发文件/图片给 Claude
/send-you— 进入接收模式- 接着发送任意数量的图片和文件(可分多条消息发送)
/send-you-end 这两张图有什么区别?— 结束接收,把所有文件连同要求一起交给 Claude/send-you-cancel— 取消本次接收
关键点:图片以 base64 图像块的形式直接传给 Claude,Claude 能真正"看到"图片内容(而非仅收到一个本地路径);文件则会被自动用 Read 工具读取。底层通过 claude -p --input-format stream-json 实现,修复了 -p 模式下 file:// markdown 图片不可见的问题。
直接在微信里发语音,自动转成文字交给 Claude。人在外面不方便打字时尤其好用。
- 收到语音 → 本地转录 → 先回显
🎤 识别为:...→ 再作为文字发给 Claude - 全程本地运行,语音内容不经过第三方云服务
技术实现:微信语音是腾讯 SILK v3 格式(ffmpeg 不支持),处理链路为
下载解密 → pilk 解码成 PCM → ffmpeg 封装 wav → whisper 后端转录。
macOS 默认用 mlx_whisper + mlx-community/whisper-large-v3-mlx;Windows / Linux 默认用 faster-whisper。所有外部程序都会先探测 PATH,再补常见安装路径,兼容 daemon 环境与交互式终端 PATH 不一致的情况。
依赖安装见上文「安装 → 可选:语音输入依赖」。
把常用需求存成短指令,一句话触发,省去重复打字。
/q — 列出所有快捷指令
/q set test 运行所有测试并报告结果 — 添加/更新
/q test — 执行(把存的内容作为 prompt 发给 Claude)
/q del test — 删除
支持附加参数:/q test --verbose 会把 --verbose 拼到指令内容后面。数据存储在 ~/.wechat-claude-code/quick-commands.json。
如果有任何问题、使用反馈,或者想和大家一起交流,欢迎扫码加我微信进群。
添加时请备注 wechat-claude code,方便我识别。
本项目基于 wechat-claude-code(MIT License)进行二次开发,感谢原作者的出色工作。
MIT
