By uetuluk
WeChat channel for Claude Code — two-way messaging via iLink bot API with permission relay
npx claudepluginhub uetuluk/cc-wechatA Claude Code channel that bridges your personal WeChat account to a Claude Code session via Tencent's iLink bot API. Two-way messaging with permission relay support.
Add the marketplace and install:
# Add the marketplace
/plugin marketplace add uetuluk/cc-wechat
# Install the plugin
/plugin install cc-wechat@cc-wechat
Then start Claude Code with the channel enabled:
claude --channels plugin:cc-wechat@cc-wechat
Note: During the research preview, custom channels require the development flag:
claude --dangerously-load-development-channels plugin:cc-wechat@cc-wechat
git clone https://github.com/uetuluk/cc-wechat.git
cd cc-wechat
bun install
claude --plugin-dir . --dangerously-load-development-channels server:wechat
npm install -g @uetuluk/cc-wechat
On first run, a QR code dialog appears in Claude Code — scan it with WeChat to log in. Credentials are saved locally for subsequent sessions.
WeChat App <-> iLink API (ilinkai.weixin.qq.com) <-> This channel (local) <-> Claude Code (stdio)
The channel runs as an MCP server spawned by Claude Code. It polls WeChat's iLink long-polling endpoint for inbound messages and uses the MCP notification system to forward them to Claude.
<channel source="wechat" from_user_id="..."> tagswechat_reply toolyes <id> or no <id>Edit access.json to restrict which WeChat users can message Claude:
{
"allowed_senders": ["user123@im.wechat"]
}
An empty list allows all senders (useful during initial setup to discover your user ID from the channel tags).
| File | Purpose |
|---|---|
.mcp.json | MCP server config (command + args) |
credentials.json | Saved bot token (auto-created on login) |
access.json | Sender allowlist |
.context-tokens.json | Persisted context tokens for replies |
.poller-state.json | Polling cursor (survives restarts) |
src/
wechat-channel.ts # Entry point: MCP server + orchestration
ilink-client.ts # iLink HTTP client (login, poll, send)
poller.ts # Long-poll loop with cursor management
types.ts # TypeScript types for iLink API
bun install
bun test
bun run typecheck
MIT
Memory compression system for Claude Code - persist context across sessions
Admin access level
Server config contains admin-level keywords
Persistent memory system for Claude Code - seamlessly preserve context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Fast and streamable Excalidraw MCP App