wechat-binding
WeChat binding: QR scan, bind, unbind, reconnect, status check. Use when setting up or repairing WeChat delivery (e.g. connect WeChat, scan QR, why isn't WeChat pushing, disconnect WeChat).
By starchild-ai-agent · 2,138 installs
npx skills add starchild-ai-agent/official-skills --skill wechat-binding
Source repository · Upstream listing
📱 WeChat Binding
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.
See also
config/context/references/messaging channels.md — how to actually send messages once bound
skills/tg bot binding/SKILL.md — analogous Telegram flow
Typical binding flow
1. Generate QR: wechat(action="qrcode") — saves an image to workspace, returns qrcode (id) + file path .
2. Show the QR to the user. On web channel: include the file path so the frontend renders the image. On TG/WeChat channel: send the image via send to telegram with the file path .
3. Wait for the user to scan + confirm in WeChat. Don't auto poll — let them say "scanned" / "done" first.
4. Poll for completion: wechat(action="qrcode status", qrcode=<id from step 1 ) . Returns bot token once scan + confirm completes.
5. Connect: wechat(action="connect", bot token=<from step 4 ) . Optional: ilink bot id , ilink user id if the user has multiple WeChat accounts.
6. Confirm to user: "WeChat connected. You can now push messages with send to wechat."
Actions
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 vs. reconnect
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 → connect
connected: false + prior history exists → reconnect
Channel aware QR display
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")
WeChat (You can't — they're trying to bind WeChat in the first place. Tell them to open the web app.)
Critical rules
Don't auto poll qrcode status after qrcode . Wait for user confirmation that they scanned + confirmed in WeChat. Auto polling spams the upstream API.
Each 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.
Never paste 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.