Skip to content

hexbee/wechat-claw-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wechat-claw-cli

基于 https://ilinkai.weixin.qq.com 的 Python 3.10+ 文本链路 CLI。

项目现在使用 uv 管理,推荐所有命令都通过 uv run 执行。

默认状态目录:

~/.wechat-claw-cli/

里面会保存:

  • account.json
  • cursor.txt

环境准备

安装 uv 后,在项目目录执行:

uv python install 3.10
uv sync

查看帮助:

uv run wechat-claw-cli --help

也可以:

uv run python -m wechat_claw_cli --help

兼容旧入口

仓库仍然保留了原来的脚本入口,下面这种方式依然可用:

python wechat_claw_cli.py --help

前提是你当前环境本身已经满足 Python 3.10+。

常用命令

获取二维码:

uv run wechat-claw-cli login

默认会把二维码直接渲染到终端,并立即进入等待确认;扫码失败时仍会同时打印链接备用。

等待扫码确认:

uv run wechat-claw-cli wait-login

只有在 login 已经拿到二维码、但你中途退出或超时后,才需要单独再跑 wait-login

看当前状态:

uv run wechat-claw-cli whoami

拉一次消息:

uv run wechat-claw-cli poll --once

持续拉消息:

uv run wechat-claw-cli poll

查看单条消息原始 JSON:

uv run wechat-claw-cli poll --once --format message-json

查看整次响应 JSON:

uv run wechat-claw-cli poll --once --format response-json

发文本:

uv run wechat-claw-cli send-text --text "hello"

context_token 回复:

uv run wechat-claw-cli reply-text --context-token "<token>" --text "received"

typing_ticket

uv run wechat-claw-cli get-config

发“正在输入”:

uv run wechat-claw-cli send-typing --fetch-ticket --context-token "<token>"

实测注意点

  • poll 返回的入站消息里会带 context_token,回复时要用它。
  • send-textreply-textget-configsend-typing 不传用户 ID 时,默认会使用登录后保存的 user_id
  • get-configsend-typing 实测更稳的方式,是对真实入站消息的 from_user_id 搭配 context_token 一起调用。
  • 只拿登录后的 user_id 直接调用 get-config,实测可能会返回 ret=-4
  • wait-login --json 现在只会把最终 JSON 写到 stdout;中间进度信息会写到 stderr
  • login 和二维码刷新默认会在文本模式下直接打印终端二维码;--json 仍只保证机器可读输出。

ACP 微信桥接

这个仓库包含一个 acp-bridge 子命令,可以把微信文本消息转给 Claude Agent ACP,再把结果回到微信。

前置条件:

  • 已完成 loginwait-login
  • 已安装 npm install -g @zed-industries/claude-agent-acp
  • 本机可以运行 claude-agent-acp
  • Claude Code 已登录:claude auth status

注意:

  • 这个仓库现在只支持 @zed-industries/claude-agent-acp
  • @zed-industries/claude-code-acp 已弃用且不再兼容;如果你还装着它,请改装 @zed-industries/claude-agent-acp
  • 当前 bridge 配置默认面向完全私有、单人自用场景,默认信任本机 Claude/ACP 的文件系统和终端能力
  • 如果不再是单人自用,请显式加上 --allow-user-id

启动示例:

uv run wechat-claw-cli acp-bridge \
  --cwd . \
  --command-prefix "/claude" \
  --allow-user-id "<from_user_id>"

如果你想显式指定模型,也可以传:

uv run wechat-claw-cli acp-bridge \
  --cwd . \
  --command-prefix "/claude" \
  --model-id "xiaomi/mimo-v2-pro:free" \
  --allow-user-id "<from_user_id>"

微信里可直接发送:

  • /claude hello
  • /claude status
  • /claude reset

行为说明:

  • 每个 from_user_id 会单独维护一个 Claude 会话
  • 只处理带命令前缀的文本消息,普通聊天会忽略
  • 回复时会自动带上原消息的 context_token
  • 默认会发送 typing 状态,可用 --no-send-typing 关闭
  • 不传 --model-id 时,会沿用 ~/.claude/settings.json 里的默认模型
  • 不传 --allow-user-id 时,默认只允许登录后保存的 user_id 触发
  • 如果你在 Git Bash 里启动,/claude 这种参数可能会被改写成 Windows 路径;新版本已经会自动纠正,老进程需要重启

测试

uv run python -m unittest -q

About

微信 CLI 工具 - 基于 openclaw-weixin 的命令行工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages