English | 中文
A Claude Code Skill that bridges personal WeChat to your local Claude Code. Chat with Claude from your phone via WeChat — text, images, permission approvals, slash commands, all supported.
- Real-time progress updates — see Claude's tool calls (🔧 Bash, 📖 Read, 🔍 Glob…) as they happen
- Thinking preview — get a 💭 preview of Claude's reasoning before each tool call
- Interrupt support — send a new message mid-query to abort and redirect Claude
- System prompt — set a persistent prompt via
/prompt(e.g. "Reply in Chinese") - Text conversation with Claude Code through WeChat
- Image recognition — send photos for Claude to analyze
- Permission approval — reply
y/nin WeChat to approve Claude's tool use - Slash commands —
/help,/clear,/model,/prompt,/status,/skills, and more - Launch any installed Claude Code skill from WeChat
- Cross-platform — macOS (launchd), Linux (systemd + nohup fallback)
- Session persistence — resume conversations across messages
- Rate-limit safe — automatic exponential backoff on WeChat API throttling
- Node.js >= 18
- macOS or Linux
- Personal WeChat account (QR code binding required)
- Claude Code with
@anthropic-ai/claude-agent-sdkinstalledNote: The SDK supports third-party API providers (e.g. OpenRouter, AWS Bedrock, custom OpenAI-compatible endpoints) — set
ANTHROPIC_BASE_URLandANTHROPIC_API_KEYaccordingly.
Clone into your Claude Code skills directory:
git clone https://github.com/Wechat-ggGitHub/wechat-claude-code.git ~/.claude/skills/wechat-claude-code
cd ~/.claude/skills/wechat-claude-code
npm installpostinstall automatically compiles TypeScript via tsc.
Scan QR code to bind your WeChat account:
cd ~/.claude/skills/wechat-claude-code
npm run setupA QR code image will open — scan it with WeChat. Then configure your working directory.
npm run daemon -- start- macOS: registers a launchd agent for auto-start and auto-restart
- Linux: uses systemd user service (falls back to nohup if systemd unavailable)
Send any message in WeChat to start chatting with Claude Code.
npm run daemon -- status # Check if running
npm run daemon -- stop # Stop the daemon
npm run daemon -- restart # Restart (after code updates)
npm run daemon -- logs # View recent logs| Command | Description |
|---|---|
/help |
Show available commands |
/clear |
Clear current session (start fresh) |
/reset |
Full reset including working directory |
/model <name> |
Switch Claude model |
/permission <mode> |
Switch permission mode |
/prompt [text] |
View or set a system prompt appended to every query |
/status |
View current session state |
/cwd [path] |
View or switch working directory |
/skills |
List installed Claude Code skills |
/history [n] |
View last N chat messages |
/compact |
Start a new SDK session (clear token context) |
/undo [n] |
Remove last N messages from history |
/<skill> [args] |
Trigger any installed skill |
When Claude requests to execute a tool, you'll receive a permission request in WeChat:
- Reply
yoryesto allow - Reply
nornoto deny - No response within 120 seconds = auto-deny
You can switch permission mode with /permission <mode>:
| Mode | Description |
|---|---|
default |
Manual approval for each tool use |
acceptEdits |
Auto-approve file edits, other tools need approval |
plan |
Read-only mode, no tools allowed |
auto |
Auto-approve all tools (dangerous mode) |
WeChat (phone) ←→ ilink bot API ←→ Node.js daemon ←→ Claude Code SDK (local)
- The daemon long-polls WeChat's ilink bot API for new messages
- Messages are forwarded to Claude Code via
@anthropic-ai/claude-agent-sdk - Tool calls and thinking previews are streamed back as Claude works
- Responses are sent back to WeChat with automatic rate-limit retry
- Platform-native service management keeps the daemon running (launchd on macOS, systemd/nohup on Linux)
All data is stored in ~/.wechat-claude-code/:
~/.wechat-claude-code/
├── accounts/ # WeChat account credentials (one JSON per account)
├── config.env # Global config (working directory, model, permission mode, system prompt)
├── sessions/ # Session data (one JSON per account)
├── get_updates_buf # Message polling sync buffer
└── logs/ # Rotating logs (daily, 30-day retention)
npm run dev # Watch mode — auto-compile on TypeScript changes
npm run build # Compile TypeScript