WeChat channel plugin for Claude Code
npx claudepluginhub yingwang/claude-code-weixinWeChat channel for Claude Code — messaging bridge with built-in access control. Manage pairing, allowlists, and policy via /weixin:access.
WeChat channel plugin for Claude Code — chat with Claude Code directly from WeChat.
Works just like the built-in Telegram channel: WeChat messages flow into your Claude Code session, and Claude replies back through WeChat.
WeChat User ←→ iLink Bot API ←→ [this plugin (MCP server)] ←→ Claude Code
(long-poll) stdio transport (your session)
This is a Claude Code channel plugin — an MCP server with the claude/channel capability. Claude Code spawns it as a subprocess and communicates via stdio. Inbound WeChat messages arrive as MCP notifications, and Claude uses MCP tools (reply) to respond.
npx claude-channel-weixin install
npx claude-channel-weixin login
claude --dangerously-load-development-channels plugin:weixin@claude-channel-weixin
claude plugin marketplace add https://github.com/yingwang/claude-code-weixin.git
claude plugin install weixin@claude-channel-weixin
npx claude-channel-weixin login
claude --dangerously-load-development-channels plugin:weixin@claude-channel-weixin
/weixin:access pair <code>After pairing, messages flow through automatically.
| Command | Description |
|---|---|
/weixin:configure | Show current config status |
/weixin:configure clear | Remove bot token |
/weixin:access pair <code> | Approve a pairing request |
/weixin:access allow <id> | Add user to allowlist |
/weixin:access remove <id> | Remove user from allowlist |
/weixin:access policy <mode> | Set DM policy (pairing/allowlist/disabled) |
/weixin:access list | Show allowed users |
Stored at ~/.claude/channels/weixin/:
| File | Purpose |
|---|---|
.env | WEIXIN_BOT_TOKEN=... (chmod 600) |
config.json | Channel settings (DM policy, API URL, etc.) |
allowlist.json | Approved sender IDs |
sync-buf.dat | Long-poll cursor (prevents duplicate messages) |
To connect multiple WeChat accounts, add additional tokens to .env:
WEIXIN_BOT_TOKEN=first-token
WEIXIN_BOT_TOKEN_2=second-token
Each token gets its own long-poll monitor. All messages feed into the same Claude Code session.
npm install
npm run build
npm run dev # watch mode
After code changes: npm run build, then kill the plugin process and /reload-plugins in Claude Code.
kill $(pgrep -f 'weixin.*server.js')
# then run /reload-plugins in Claude Code
Apache-2.0