Introduction¶
When running agents using dsh (DeepSeek Harness), the entry point is usually in the Web interface. If you leave your computer, you have to go back specifically to open the page to add an instruction to the agent or check task results. It would be much smoother if these conversations and notifications could go directly through WeChat.
super-wechat-bridge solves this problem: it integrates WeChat messages into dsh via the official WeChat iLink ClawBot protocol, making WeChat the remote entry point for dsh. Below introduces its positioning, core features, installation, and usage.
What is it¶
super-wechat-bridge is a WeChat iLink ClawBot remote bridge plugin by author Qshuai0213, licensed under MIT, current version 1.0.0. It does not use third-party robot protocols but connects directly via the official iLink protocol: long-polling to receive messages, sending with msg wrapper + text_item (official format). peerDependencies declares @deepseek-ai/dsh-agent ^0.1.0-rc.6, @deepseek-ai/dsh-tools ^0.1.0-rc.6, etc., both protocol and dsh API have been tested.
A notable tested detail: when sending, base_info.channel_version + from_user_id + client_id must be present; if missing, the server returns a message_id but does not deliver it. The plugin handles this.
Core Features¶
Sessions and Replies¶
-
Each WeChat user has an independent dsh session, created via
agents.create({ sessionId }), continued usingagent.followup. -
Automatic reply forwarding: The agent’s final text reply for each WeChat session round is automatically sent back to WeChat. Implementation-wise, it listens to
session/eventand filters context snapshots based on the real source ofuser/message. -
The
wechat_replytool is used for proactive pushing (e.g., task completion notifications). If a tool has already been used to send within the same round, the automatic forwarding will skip it to avoid duplication. -
Session-level prompt: The agent in a WeChat session receives context indicating “Currently chatting via WeChat”, injected based on session ID conditions, without affecting other sessions.
Web Settings Interface¶
The WeChat feature has no independent entry; it is all integrated into the “Settings → WeChat Bridge” page in the dsh Web interface. It includes QR code login, model/preset/thinking intensity/permission configuration, session list (open/copy/delete), and credential status.
24h Auto Renewal¶
iLink session validity is about 24 hours (server-side limit, cannot be extended). The plugin includes built-in auto-renewal: about 2 hours before expiration, it pushes a new QR code link to WeChat (sent to the most recently active session). Scanning it seamlessly renews the session without disconnection; if not renewed in the last 30 minutes, it will remind again.
Other¶
- The plugin comes with
dsh.bundle.patch(cordis.patch.yml), auto-mounted after installation, no need to manually edit the profile’scordis.patch.yml. - Errors are logged to
stateDir/errors.log, allowing direct viewing when troubleshooting.
Installation and Enablement¶
Install the release version from GitHub:
dsh plugin --profile web add "github:Qshuai0213/super-wechat-bridge"
Install for local development:
dsh plugin --profile web add "file:D:/ai工作区/super-wechat-bridge"
After installation, the patch is auto-mounted. Configuration uses schema defaults: stateDir defaults to $DSH_HOME/channels/wechat (~/.dsh/channels/wechat when DSH_HOME is absent), dmPolicy: pairing.
When configuration override is needed, append config in the profile patch by id, for example, changing to allowlist mode and specifying allowed WeChat users:
- insert:
- id: wechat-bridge
config:
dmPolicy: allowlist
allowFrom: ['o9cq80wwZLaIrJEBTW3TCRCVVyt8@im.wechat']
Restart dsh web after changing.
Login¶
Choose any of three methods:
-
Scan QR code via Web interface: Open “Settings → WeChat Bridge”, click “Get Login QR Code”, scan with WeChat on phone and confirm. Credentials are automatically written and message receiving starts.
-
Click link in WeChat to renew (Recommended): Before expiration, the plugin automatically pushes a message “Login credentials will expire in approximately X hours” to WeChat. Click the link inside to scan and confirm.
-
Command line:
node node_modules/super-wechat-bridge/login.mjs "<your stateDir>"
stateDir defaults to $DSH_HOME/channels/wechat (~/.dsh/channels/wechat when DSH_HOME is absent). Open the output link in WeChat on phone to scan and authorize; credentials are written to credentials.json.
Typical Usage¶
The usage process is straightforward: Send the first message to ClawBot in WeChat → dsh creates a wechat-* session → agent replies are automatically sent back to WeChat.
In the channel settings block of “Settings → WeChat Bridge”, adjustable and persistable configuration items include:
| Setting Item | Description |
|---|---|
| Model Provider / Model | Model used for WeChat sessions; leave empty to follow global default |
| Thinking Intensity | off / low / medium / high / max, leave empty to follow default |
| Permission Mode | pairing (allow all) / allowlist (only allow list) / disabled (channel closed) |
| Allow List | Effective in allowlist mode, one WeChat user ID per line |
Effective timing differs: Permission mode and allow list take effect immediately; model/thinking intensity only affects newly created WeChat sessions, existing sessions remain unchanged. The page also displays credential status (login time, remaining validity, active session count). If remaining time is less than 2 hours, the plugin automatically pushes a renewal QR code to WeChat.
Applicable Scenarios and Notes¶
Target audience: Developers already running dsh who want to communicate with agents via WeChat on their phones anytime to issue commands and receive proactive notifications (e.g., task completion reminders).
You need to know these limitations before use:
- Sessions do not reconnect after restart: The bridge creates sessions as
wechat-<userId>-<timestamp>. After restartingdsh web, the same WeChat user will open a new session; the history of old sessions is retained in the sidebar, but the bridge no longer associates with them. - Non-text messages like images/voice are displayed as placeholder text
[Non-text message]; the current channel does not receive media content. - After modifying plugin code,
dsh webneeds to be restarted to take effect (HMR does not reload modules in node_modules). - The ~24-hour validity of iLink sessions is a server-side limit; the plugin can only renew, not extend.
Also, a note: The plugin runs with the permissions of the current dsh process. It is recommended to check the source code before installation to ensure behavior matches expectations. This project uses the MIT license.
Conclusion¶
super-wechat-bridge connects the WeChat official iLink protocol with dsh’s session system. Together with the Web settings interface and 24h auto-renewal, it makes WeChat a low-maintenance cost remote entry for dsh. If you use WeChat often and are away from your computer for long periods, it is worth installing and trying.
- Plugin directory page: https://www.skillhub.cn/plugins/Qshuai0213/super-wechat-bridge
- GitHub repository: https://github.com/Qshuai0213/super-wechat-bridge
By the way, skillhub.cn is a community plugin directory site and has no official affiliation with DeepSeek / Hackverse; DSH itself is the philosophy of “Everything is a Plugin”, and such channel bridges are a common type of demand in the plugin ecosystem.