
Wechat Binding
Set up, manage, and verify WeChat account connections so AI agents can push messages to users via WeChat.
Install
npx skills add https://github.com/starchild-ai-agent/official-skills --skill wechat-bindingWhat is this skill?
- QR code scanning for secure WeChat account binding
- Connection status monitoring and reconnect workflows
- Multi-account support with ilink bot/user IDs
Adoption & trust: 767 installs on skills.sh; 13 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Agent Browservercel-labs/agent-browser
Lark Imlarksuite/cli
Lark Calendarlarksuite/cli
Lark Sheetslarksuite/cli
Lark Vclarksuite/cli
Lark Contactlarksuite/cli
Journey fit
Primary fit
This tool belongs in the build phase because it establishes the technical integration layer needed for messaging delivery. WeChat binding is an integrations workflow—connecting an external messaging channel to your agent or app so it can send and receive messages.
Common Questions / FAQ
Is Wechat Binding safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Wechat Binding
# 📱 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 ``` qrcode → user scans → qrcode_status(qrcode=...) → connect(bot_token=...) ``` 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.