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

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

  •  
  •   dcatfly · 16 小时 13 分钟前 · 1435 次点击

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

    官方插件

    我对 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 。

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

    就是屏蔽掉了主动发消息的可能了?
    dcatfly
        10
    dcatfly  
    OP
       8 小时 6 分钟前
    @leadfast
    如果会话是空的,用户从来没有发送过消息,那么从代码上看 agent 侧是不能主动发消息的;
    但如果用户发过了消息,那么 contextToken 可以使用多次。即后续 agent 可以主动发消息,长消息分片也是这么做的,不过不确定微信内部是否有对 contextToken 有其他维度的限制
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1353 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:20 · PVG 01:20 · LAX 10:20 · JFK 13:20
    ♥ Do have faith in what you're doing.