Handles the full WeChat account binding flow so Claude can push messages to users via send_to_wechat. You generate a QR code, the user scans it in WeChat, you poll for confirmation, then call connect or reconnect depending on whether it's their first time. The skill documentation is careful about channel awareness (web shows the QR inline, Telegram needs send_to_telegram with the image path) and emphasizes not auto-polling the status endpoint to avoid spamming the API. It distinguishes between connect for new bindings and reconnect for re-establishing dropped sessions, with status checks to figure out which one you need. Straightforward if you're building multi-channel delivery and need WeChat as an output.
npx -y skills add starchild-ai-agent/official-skills --skill wechat-binding --agent claude-codeInstalls into .claude/skills of the current project.
Connect / reconnect / disconnect the user's WeChat account so the agent can push messages via send_to_wechat.
The wechat tool stays built-in. This SKILL.md is the reference doc.
config/context/references/messaging-channels.md — how to actually send messages once boundskills/tg-bot-binding/SKILL.md — analogous Telegram flowqrcode → user scans → qrcode_status(qrcode=...) → connect(bot_token=...)
wechat(action="qrcode") — saves an image to workspace, returns qrcode (id) + file_path.file_path so the frontend renders the image. On TG/WeChat channel: send the image via send_to_telegram with the file_path.wechat(action="qrcode_status", qrcode=<id from step 1>). Returns bot_token once scan + confirm completes.wechat(action="connect", bot_token=<from step 4>). Optional: ilink_bot_id, ilink_user_id if the user has multiple WeChat accounts.| action | required | purpose |
|---|---|---|
status | — | Current WeChat connection state. Use before reconnect, to verify binding. |
qrcode | — | Generate QR code image (saved to workspace). Returns qrcode id + file_path. |
qrcode_status | qrcode | Poll whether user has scanned + confirmed. Returns bot_token on success. |
connect | bot_token | Complete a NEW WeChat connection (after first-ever QR scan). Optional: ilink_bot_id, ilink_user_id. |
disconnect | — | Terminate current WeChat session (unlink). |
reconnect | bot_token | Re-establish a previously-bound WeChat (token from a fresh QR scan). |
connect — first-time binding. The user has NEVER bound this WeChat before.reconnect — the user was previously connected, the connection dropped (e.g. ilink session expired), and they just scanned a fresh QR.When in doubt, call status first:
connected: false + no prior history → connectconnected: false + prior history exists → reconnect| User channel | How to show the QR |
|---|---|
| Web | Include file_path in your reply — frontend renders it inline |
| Telegram | send_to_telegram(file_path=<qr_path>, message_type="photo") |
| (You can't — they're trying to bind WeChat in the first place. Tell them to open the web app.) |
qrcode_status after qrcode. Wait for user confirmation that they scanned + confirmed in WeChat. Auto-polling spams the upstream API.qrcode call generates a fresh image. Don't re-use an old qrcode id with a new image — the upstream session is tied to the id.bot_token in chat. It's a credential. Once you have it from qrcode_status, immediately pass it to connect / reconnect and don't echo it back to the user.disconnect is destructive — confirm with the user before calling it.sickn33/antigravity-awesome-skills
moizibnyousaf/ai-agent-skills
github/awesome-copilot