【开源】WeiLink — 微信 iLink Bot API 的 Python SDK
- 内容介绍
- 文章标签
- 相关推荐
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
ClawBot 开放后看到佬友们和 GitHub 上搞了不少 Node.js 和 Go 的封装,正好家里人也有相关需求想尝鲜,我自己写 Python 比较多,没找到这个定位的现成 Python 库,自己也感兴趣,就动手做了一个。
GitHub:GitHub - Oaklight/weilink: Lightweight Python SDK for WeChat iLink Bot protocol | 微信 iLink Bot 协议轻量 Python SDK · GitHub
PyPI:pip install weilink
详细文档:https://weilink.readthedocs.io
这个库不带 bot 逻辑,只做消息收发这一件事(login / recv / send)。所以方便各位按照自己的需求接入框架、各种程序、甚至传统的消息推送也是可以的。
核心包没有运行时依赖,只用标准库。当下的发布版本为 0.3.0,支持了微信的各种消息类型(文本、图片、语音、文件、视频),算是基本可用了。
from weilink import WeiLink
wl = WeiLink()
wl.login() # 终端弹 QR 码
messages = wl.recv()
for msg in messages:
wl.send(msg.from_user, "收到!")
MCP Server 和 OpenAPI Server 做成了可选依赖(pip install weilink[server]),不装的话核心包不会多出东西。也提供了 Docker 镜像,不想折腾环境可以直接跑。另外附了个 Web 管理面板方便扫码登录和看会话状态。
图片1280×800 24.4 KB
iLink 协议本身有些限制:不能主动发起对话(用户必须先发消息)、24 小时不活跃后消息会被丢弃、腾讯随时可能调整协议。
pip install weilink # 核心包,零依赖 + 管理面板
pip install weilink[server] # 基础版本上,添加MCP + OpenAPI封装
Python 3.10+,MIT。具体的配置和用法写在文档里了,这里就不展开了。有问题欢迎讨论。
网友解答:--【壹】--:
感谢大佬。
--【贰】--:
我确认过了,目前clawbot的插件启动的对话项目无法在转发列表中进行显示,也就无法转发公众号、名片、小程序之类的东西,这是腾讯那边的限制了。
--【叁】--:
0.4.0有一个migrate功能,上面给你的回复里面贴了相关文档,如果方便的话可以测测看
另外,顶号了其实问题不大,你手机上的记录不会因为顶号而消失,目前默认只会有一个bot的消息记录。
--【肆】--:
我目前对于ilink以及微信端的机制的理解是,如果是想要:多个agent/llm/应用,同时用一个通道给同一个微信发消息,是可以的。
而且我现在也是这么用的,vscode + claude code + 我自己的一些agent框架都能通过weilink接入。用的是本地同一份token.json。context id的有效性也做了持久化,不同端发送消息的时候能知道距离失效还剩多少次。
在这个基础上,每个接入端可以自行添加消息内容表征来源是何处。
不过如果是这么用的话,有一个潜在的问题,因为消息获取的时候实际上是一个生产者,多个消费者,消费者之间会产生竞态关系,比如应该给A的消息被B获取。有一个正在考虑的方案是通过ref message进行回复,来进行消费者引导。或者是在微信回信的时候明确收信角色。
但如果你说的是其他什么情况的话我就不太清楚了,可能还要你具体描述一下场景。
--【伍】--:
就是在openclaw扫码登录过了,如果再扫码登录就会顶号
--【陆】--:
可以拿到openclaw的登录状态而不用再登录吗?
--【柒】--:
好问题,我测试的时候还没有考虑过这几种,我今天研究一下看看能否能支持上。方便的话帮我开个github issue
--【捌】--:
所以我是想 能不能实现 多端同时接入
--【玖】--:
weilink migrate - CLI 参考 - WeiLink
weilink 命令提供部署、服务器管理和凭证迁移等子命令: | 轻量级微信 iLink Bot 协议 Python SDK
做了一个迁移命令出来,你试试看好0.4.0b1的migrate命令好用否。
--【拾】--:
感谢分享
--【拾壹】--:
链接卡片、小程序这些消息类型能发吗
--【拾贰】--:
不知道您说的openclaw登录状态是指什么?我对openclaw本身不是很熟悉,用其他的工具相对更多一些。可否详细一些?
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
ClawBot 开放后看到佬友们和 GitHub 上搞了不少 Node.js 和 Go 的封装,正好家里人也有相关需求想尝鲜,我自己写 Python 比较多,没找到这个定位的现成 Python 库,自己也感兴趣,就动手做了一个。
GitHub:GitHub - Oaklight/weilink: Lightweight Python SDK for WeChat iLink Bot protocol | 微信 iLink Bot 协议轻量 Python SDK · GitHub
PyPI:pip install weilink
详细文档:https://weilink.readthedocs.io
这个库不带 bot 逻辑,只做消息收发这一件事(login / recv / send)。所以方便各位按照自己的需求接入框架、各种程序、甚至传统的消息推送也是可以的。
核心包没有运行时依赖,只用标准库。当下的发布版本为 0.3.0,支持了微信的各种消息类型(文本、图片、语音、文件、视频),算是基本可用了。
from weilink import WeiLink
wl = WeiLink()
wl.login() # 终端弹 QR 码
messages = wl.recv()
for msg in messages:
wl.send(msg.from_user, "收到!")
MCP Server 和 OpenAPI Server 做成了可选依赖(pip install weilink[server]),不装的话核心包不会多出东西。也提供了 Docker 镜像,不想折腾环境可以直接跑。另外附了个 Web 管理面板方便扫码登录和看会话状态。
图片1280×800 24.4 KB
iLink 协议本身有些限制:不能主动发起对话(用户必须先发消息)、24 小时不活跃后消息会被丢弃、腾讯随时可能调整协议。
pip install weilink # 核心包,零依赖 + 管理面板
pip install weilink[server] # 基础版本上,添加MCP + OpenAPI封装
Python 3.10+,MIT。具体的配置和用法写在文档里了,这里就不展开了。有问题欢迎讨论。
网友解答:--【壹】--:
感谢大佬。
--【贰】--:
我确认过了,目前clawbot的插件启动的对话项目无法在转发列表中进行显示,也就无法转发公众号、名片、小程序之类的东西,这是腾讯那边的限制了。
--【叁】--:
0.4.0有一个migrate功能,上面给你的回复里面贴了相关文档,如果方便的话可以测测看
另外,顶号了其实问题不大,你手机上的记录不会因为顶号而消失,目前默认只会有一个bot的消息记录。
--【肆】--:
我目前对于ilink以及微信端的机制的理解是,如果是想要:多个agent/llm/应用,同时用一个通道给同一个微信发消息,是可以的。
而且我现在也是这么用的,vscode + claude code + 我自己的一些agent框架都能通过weilink接入。用的是本地同一份token.json。context id的有效性也做了持久化,不同端发送消息的时候能知道距离失效还剩多少次。
在这个基础上,每个接入端可以自行添加消息内容表征来源是何处。
不过如果是这么用的话,有一个潜在的问题,因为消息获取的时候实际上是一个生产者,多个消费者,消费者之间会产生竞态关系,比如应该给A的消息被B获取。有一个正在考虑的方案是通过ref message进行回复,来进行消费者引导。或者是在微信回信的时候明确收信角色。
但如果你说的是其他什么情况的话我就不太清楚了,可能还要你具体描述一下场景。
--【伍】--:
就是在openclaw扫码登录过了,如果再扫码登录就会顶号
--【陆】--:
可以拿到openclaw的登录状态而不用再登录吗?
--【柒】--:
好问题,我测试的时候还没有考虑过这几种,我今天研究一下看看能否能支持上。方便的话帮我开个github issue
--【捌】--:
所以我是想 能不能实现 多端同时接入
--【玖】--:
weilink migrate - CLI 参考 - WeiLink
weilink 命令提供部署、服务器管理和凭证迁移等子命令: | 轻量级微信 iLink Bot 协议 Python SDK
做了一个迁移命令出来,你试试看好0.4.0b1的migrate命令好用否。
--【拾】--:
感谢分享
--【拾壹】--:
链接卡片、小程序这些消息类型能发吗
--【拾贰】--:
不知道您说的openclaw登录状态是指什么?我对openclaw本身不是很熟悉,用其他的工具相对更多一些。可否详细一些?

