V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dcatfly
V2EX  ›  分享创造

微信支持了 ClawBot,我修改了下让它能支持 Claude Code

  •  
  •   dcatfly · 4 天前 · 1790 次点击

    喜大普奔,微信终于给机器人开了个口子。

    官方插件

    我对 openclaw 不是很感兴趣,因为感觉 claude code 更适合我,但微信支持 clawbot 意味着终于给机器人开了个小口,虽然还有限制,但总算不用担心封号了。

    官方库没有 github 链接,但 npm 的包 中就是源码,整体实现非常简洁:

    1. 扫码登录 —— 调用 iLink Bot API 获取二维码,用户微信扫码确认后拿到 bot_token
    2. 收消息 —— Long-poll 轮询 getUpdates 接口,有新消息就返回;媒体通过 CDN 下载后 AES-128-ECB 解密
    3. 发消息 —— 文本直接调 sendMessage;媒体则先加密上传 CDN ,再把引用发出去
    4. 会话令牌 —— 每条消息带一个 contextToken,回复时必须原样回传

    整条链路都是调接口,全靠 iLink Bot API 做中转。

    我基于官方的代码改了一版,通过 claude code 的 channel 功能,让微信的 clawbot 可以支持 claude code 接入,需要的老哥自取: https://github.com/Dcatfly/weixin_claude_code ,也欢迎大家提 pr 和 issue 。

    交互效果
    12 条回复    2026-03-24 11:11:29 +08:00
    qingyun1988
        1
    qingyun1988  
       4 天前
    速度真快啊!我特别好奇,它的接口不是传入腾讯的服务器么?那怎么能跟 claude 通讯呢。我大概明白了,腾讯服务器通讯是跟配置了 ibo 的本地电脑通讯,只要让 claude 和本地那个微服务上就可以了。
    git00ll
        2
    git00ll  
       4 天前
    哇这个是不是可以包装成微信机器人了,以后消息推送不用企微了
    dcatfly
        3
    dcatfly  
    OP
       4 天前
    @qingyun1988 是的,相当于微信开了一个中转通道,在本地轮询可以拿到用户发送的消息,再通过发送消息的接口把 claude code 的消息发送给用户。实现其实简单,只是微信以前不支持 bot
    dcatfly
        4
    dcatfly  
    OP
       4 天前
    @git00ll 自己用是这样的,方便很多。现在比较大的限制是微信开的口子同一时间只接受一个绑定,如果你有多个项目要推送消息,就还需要一个中间层做转发。
    tianhehechu
        5
    tianhehechu  
       4 天前
    @git00ll 你可别瞎搞,很多方便用户的接口,都是被你们这种人滥用给搞没的。有点职业道德吧。
    ooooo00000ooooo
        6
    ooooo00000ooooo  
       4 天前
    --dangerously-load-development-channels ignored (plugin:weixin-claude-code@dcatfly-plugins)
    Channels are not currently available
    back0893
        7
    back0893  
       4 天前
    终于还是开了口子 真的要感谢 claw 火爆
    dcatfly
        8
    dcatfly  
    OP
       4 天前
    @ooooo00000ooooo 是不是用的 api key?
    leadfast
        9
    leadfast  
       4 天前
    > 每条消息带一个 contextToken ,回复时必须原样回传

    就是屏蔽掉了主动发消息的可能了?
    dcatfly
        10
    dcatfly  
    OP
       4 天前
    @leadfast
    如果会话是空的,用户从来没有发送过消息,那么从代码上看 agent 侧是不能主动发消息的;
    但如果用户发过了消息,那么 contextToken 可以使用多次。即后续 agent 可以主动发消息,长消息分片也是这么做的,不过不确定微信内部是否有对 contextToken 有其他维度的限制
    ooooo00000ooooo
        11
    ooooo00000ooooo  
       3 天前
    @dcatfly 是,应该是这个原因不行的。
    dcatfly
        12
    dcatfly  
    OP
       3 天前
    @ooooo00000ooooo #11 channel 官方不支持 api key ,不过这个限制可以通过改 claude code 代码的方式去除,我看到隔壁有人写了脚本,需要的话可以试下: https://gist.github.com/Dcatfly/643b9c84ff24e27957ccf6ec981c956f
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1214 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:51 · PVG 07:51 · LAX 16:51 · JFK 19:51
    ♥ Do have faith in what you're doing.