wechat-binding — Claude Code skill: bind WeChat to your agent
A skill that walks the agent through WeChat binding: QR generation, scan, connect, reconnect and disconnect.
npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a claude-codeWhat wechat-binding does
Reach for this skill when the agent needs to push messages with send_to_wechat but the account isn't linked yet, or the link broke. The wechat tool itself is built in; SKILL.md is the reference for its actions: status, qrcode, qrcode_status, connect, disconnect, reconnect.
The flow runs in order. The agent calls wechat(action="qrcode"), gets an image plus a file path, you scan it in WeChat and confirm. Then the agent polls qrcode_status with the code id, picks up a bot_token, and hands it to connect or reconnect. Don't poll on a loop — every status call hits the upstream API, so the skill tells the agent to wait until you say the scan is done.
Where the QR shows up depends on your channel. On the web the file path goes into the reply and the frontend renders the image. In Telegram the image ships through send_to_telegram as a photo. Binding WeChat from inside WeChat won't work at all; you have to open the web app. Treat bot_token as a credential and keep it out of chat, and remember that disconnect kills the session with no undo — worth confirming before it runs.
What it helps with
- bind a WeChat account to the agent by scanning a QR code
- restore delivery after an ilink session expires
- check whether WeChat is already bound before reconnecting
- unlink WeChat once push messages are no longer wanted
- render the QR inline on web or send it as a photo in Telegram
Example prompts for the agent
- Connect WeChat: generate the QR code and show me the image
- I scanned the code, check the status and finish the binding
- WeChat stopped pushing messages — check the status and reconnect
How to install wechat-binding
1Skills CLI (Vercel)
npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a claude-code2Manually: put the files in place
~/.claude/skills/wechat-binding/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/wechat-binding/
1Skills CLI (Vercel)
npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a codex2Manually: put the files in place
.agents/skills/wechat-binding/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a cursor2Manually: put the files in place
.cursor/skills/wechat-binding/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Starchild-ai-agent/official-skills wechat-binding2Manually: put the files in place
.github/skills/wechat-binding/SKILL.md1Skills CLI (Vercel)
npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a gemini-cli2Platform CLI
gemini skills install https://github.com/Starchild-ai-agent/official-skills --path wechat-bindingManually: put the files in place
.devin/skills/wechat-binding/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about wechat-binding
How do I install wechat-binding in Claude?
Run npx skills add Starchild-ai-agent/official-skills --skill wechat-binding -a claude-code. The skill file then lands at ~/.claude/skills/wechat-binding/SKILL.md.
What does wechat-binding do?
It documents the whole WeChat binding cycle: generating a QR code, waiting for the scan, retrieving the bot_token, connecting, reconnecting and disconnecting. The agent follows it to avoid mixing up connect and reconnect.
What is the difference between connect and reconnect?
connect is the first binding for an account that was never linked before. reconnect restores an existing link after it drops, for example when the ilink session expires. If you're unsure, call status first.