| name | wechat-ilink-notify |
| description | Send WeChat or 微信 text notifications from Codex through the hkslover/wechat-ilink-bot SDK. Use when the user asks Codex to send a WeChat message, completion notice, progress update, reminder, or follow-up such as "做完后给我发微信", "finish then ping me on WeChat", "send this result to my wechat", or similar requests. |
WeChat iLink Notify
Send a WeChat text message after work completes or whenever the user explicitly asks for a WeChat update. Prefer this skill for one-off completion notices, manual progress pings, and short status summaries.
Workflow
- Finish the main task unless the user asked to send a message immediately.
- Check
config.json and the local runtime state.
- If setup is missing, run
python3 scripts/bootstrap.py, then python3 scripts/login.py, then optionally python3 scripts/configure.py --to <user_id>.
- Draft a short message in the user's language.
- Send it with
python3 scripts/send_text.py --text "..." for a one-line notice, or pipe text into python3 scripts/send_text.py --stdin for multiline content.
- Report success or the concrete setup problem.
Setup Once
Run python3 scripts/bootstrap.py to create .venv inside the skill and install wechat-ilink-bot from GitHub. The wrapper auto-discovers Python 3.10+ from python3, versioned interpreters like python3.13, common Homebrew locations, and common python.org macOS framework locations. Use --python ... only as an override. Auto-discovered paths are not persisted into config.json, so the skill stays portable when copied to another machine.
Run python3 scripts/login.py to complete QR-code login. The upstream SDK persists credentials in ~/.wechat_bot by default, so later sends can reuse the same account.
Run python3 scripts/configure.py --show to inspect current defaults.
Use python3 scripts/configure.py --to <user_id> to pin a default recipient.
Use python3 scripts/configure.py --owner-default to clear target_user and rely on the SDK's owner-default behavior.
Use python3 scripts/configure.py --account-id <account_id> when multiple bot accounts are present and the send should use one specific account.
Sending
Prefer a concise message that includes:
- what finished
- the most important result or file path
- whether verification passed, failed, or was skipped
Keep the notification short unless the user explicitly asked for a detailed summary.
Use scripts/send_text.py for sending. It resolves the recipient in this order:
--to
config.json -> target_user
- owner-default from persisted login state
If the user asked for "after you finish, send me a WeChat message", complete the main work first and call the script before returning the final answer.
Failure Handling
If scripts/bootstrap.py says no Python 3.10+ is available, stop and tell the user that this machine needs a newer Python interpreter for wechat-ilink-bot. Do not hardcode a machine-specific Python path in the skill instructions unless the user explicitly wants a local one-off workaround.
If scripts/send_text.py fails because no recipient is available, either re-run scripts/login.py to restore owner-default metadata or set an explicit target_user with scripts/configure.py --to ....
If the shell exports a SOCKS proxy but the skill runtime does not have socksio, the wrapper automatically strips proxy variables and retries with a direct connection.
If the send fails for any other reason, include the exact error in the user-facing response instead of pretending the notification was delivered.
Resources
Read references/upstream-notes.md when you need the upstream package behavior, login storage path, or recipient resolution details.