Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

WeChatBot

微信 iLink Bot SDK for OpenClaw / AI Agent
模块化、生产级、多语言微信 iLink Bot SDK

npm License Stars


English

5 分钟让任何 Agent 接入微信。灵感来自 openclaw-weixin

📦 SDK 一览

SDK安装状态
Node.jsnpm install @wechatbot/wechatbot✅ 生产就绪
Pythonpip install wechatbot-sdk✅ 生产就绪
Gogo get github.com/corespeed-io/wechatbot/golang✅ 生产就绪
Rustcargo add wechatbot✅ 生产就绪

⚡ 快速开始

Node.js

import { WeChatBot } from '@wechatbot/wechatbot'

const bot = new WeChatBot()
await bot.login()                             // 扫码登录
bot.onMessage(async (msg) => {
  await bot.reply(msg, `Echo: ${msg.text}`)   // 自动回复
})
await bot.start()

Python

from wechatbot import WeChatBot

bot = WeChatBot()

@bot.on_message
async def handle(msg):
    await bot.reply(msg, f"Echo: {msg.text}")

bot.run()  # 扫码登录 + 开始监听

Go

bot := wechatbot.New()
bot.Login(ctx, false)
bot.OnMessage(func(msg *wechatbot.IncomingMessage) {
    bot.Reply(ctx, msg, fmt.Sprintf("Echo: %s", msg.Text))
})
bot.Run(ctx)

Rust

let bot = WeChatBot::new(BotOptions::default());
bot.login(false).await?;
bot.on_message(Box::new(|msg| {
    println!("{}: {}", msg.user_id, msg.text);
})).await;
bot.run().await?;

✨ 核心功能

所有 SDK 共享以下能力:

功能说明
🔐 扫码登录凭证持久化,存储于 ~/.wechatbot/
📨 长轮询消息可靠消息接收,自动游标管理
💬 富媒体支持图片、文件、语音、视频(上传 + 下载)
🔗 context_token自动生命周期管理,跨重启持久化
⌨️ 输入状态"对方正在输入中",含 ticket 缓存
🔒 CDN 加密AES-128-ECB,支持双密钥格式
♻️ 会话恢复会话过期(-14)自动重新登录
📝 智能分片按自然边界拆分文本(段落 → 行 → 空格)

Node.js 独有功能

功能说明
🧩 中间件管道Express/Koa 风格可组合中间件
📦 可插拔存储文件、内存,或自定义(Redis、SQLite…)
🎯 类型化事件完整 IntelliSense 生命周期监控
📝 结构化日志分级、上下文感知、可插拔传输
🏗️ 消息构建器.text().image().file().build() 链式 API

👥 多租户 / 多账号

每个 Bot 实例完全隔离(独立 HTTP 客户端、事件、消息轮询器),无全局状态、不占本地端口——一个后端进程可以同时运行多个微信账号。二维码通过回调返回,可推给 Web 前端让每个用户在自己的页面上扫码:

// 每个租户一个实例,凭证按租户隔离
const bot = new WeChatBot({
  storage: new PostgresStorage(pool, tenantId),  // 或 { storageDir: `/data/${tenantId}` }
})

await bot.login({
  callbacks: {
    onQrUrl: (url) => pushQrToWebUI(tenantId, url),  // 推给该用户的页面扫码
    onScanned: () => notify(tenantId, '已扫码,等待确认'),
    onExpired: () => refreshQr(tenantId),
  },
})
await bot.start()

三条注意事项:

  1. 存储隔离 — 每个账号必须有独立的 storageDir 或存储命名空间,共用会互相覆盖凭证。
  2. 单账号单实例 — 同一账号在全集群只能有一个实例轮询消息,否则游标互相覆盖;多机部署用 advisory lock 或租约表选主。
  3. 重启免扫码 — 凭证已持久化,重启后 login() 自动恢复会话。

完整示例(含 PostgreSQL 自定义存储)见 Node.js SDK 文档

🏗 架构

graph TD
    A["🤖 你的 Bot 代码"] --> B["Bot Client(核心调度器)"]
    B --> C["Poller"]
    B --> D["Sender"]
    B --> E["Typing"]
    B --> F["Media"]
    C --> G["Context Store(Token 缓存)"]
    D --> G
    E --> G
    F --> G
    G --> H["Protocol / API(HTTP 调用)"]
    H --> I["Storage(凭证 & 状态持久化)"]

📖 文档

文档说明
docs/protocol.mdiLink Bot API 协议参考
docs/architecture.md架构设计 & SDK 对比
nodejs/README.mdNode.js SDK 文档
python/README.mdPython SDK 文档
golang/README.mdGo SDK 文档
rust/README.mdRust SDK 文档
pi-agent/README.mdPi 扩展文档(微信 ↔ Pi 桥接)

🌐 网站

双语文档网站已移至独立仓库:jiweiyuan/wechatbot-landing

🤖 Pi Agent 扩展

在微信中直接与 Pi 编程助手 对话 — 扫码即连。详见 pi-agent/README.md

pi install npm:@wechatbot/pi-agent
/wechat          # 显示二维码 → 微信扫码 → 连接成功!

🔧 预编译 Echo Bot

不想写代码?可以直接下载预编译的 Echo Bot 体验。详见 GitHub Releases

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/corespeed-io/wechatbot/main/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/corespeed-io/wechatbot/main/install.ps1 | iex

📁 项目结构

wechatbot/
├── nodejs/                # Node.js SDK(TypeScript)
│   ├── src/               #   11 个模块
│   ├── tests/             #   8 个测试文件
│   └── examples/          #   4 个示例 Bot
├── python/                # Python SDK(async/aiohttp)
│   ├── wechatbot/         #   6 个模块
│   └── tests/             #   2 个测试文件
├── golang/                # Go SDK(纯标准库)
│   ├── bot.go             #   Bot 客户端
│   ├── types.go           #   类型定义
│   └── internal/          #   protocol, auth, crypto
├── rust/                  # Rust SDK
│   └── src/               #   6 个模块
├── pi-agent/              # Pi 扩展(微信 ↔ Pi 桥接)
│   └── src/               #   扩展入口 & 微信客户端
└── docs/                  # 共享文档
    ├── protocol.md        #   iLink API 协议规范
    └── architecture.md    #   架构 & SDK 对比

⭐ Star History

Star History Chart

📄 License

MIT

关于 About

微信 iLink Bot SDK for OpenClaw/AI Agent
ai-agentsweixin

语言 Languages

TypeScript42.5%
Rust23.2%
Go17.2%
Python15.4%
Shell0.9%
PowerShell0.8%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
95
Total Commits
峰值: 48次/周
Less
More

核心贡献者 Contributors