Introduction¶
For DSH / Agent developers, a common pain point is that agent sessions usually run locally or on a server, while daily messages, task reminders, and approval operations may be scattered across IM sides like WeChat, QQ, and Feishu.
dsh-msg-hub is an IM channel bridge plugin in the DSH plugin ecosystem. Below is an introduction to its positioning, capabilities, installation methods, and precautions.
What is it¶
dsh-msg-hub is the dsh (DeepSeek Harness) IM channel bridge plugin: it integrates messages from WeChat, QQ, and Feishu into dsh agent sessions and supports proactive push and remote monitoring.
Maintained by AbcdefgXW, license is MIT.
The plugin supports enabling three channels simultaneously:
- Feishu
Core Capabilities¶
Messaging¶
dsh-msg-hub supports text message sending and receiving for the following channels:
- WeChat: Simulates protocol scanning code login via ilinkai and sends/receives text.
- QQ: Sends/receives text via the Tencent Open Platform official WebSocket channel, supports C2C private chat / group chat.
- Feishu: Sends/receives text via the Open Platform official API (application credentials), supports P2P private chat / group chat.
Proactive Push¶
dsh-msg-hub provides the proactive push service dsh-channels-push.
Directly send text to IM:
push({ channel, peerId, text })
Wake up channel agent to execute a task and return the AI response:
task({ channel, peerId, prompt })
This capability can be used in scenarios such as the timer heartbeat of dsh-toolbox-web. After uninstalling dsh-msg-hub, the IM channel push for dsh-toolbox-web’s timer heartbeat automatically becomes unavailable, while other functions remain unaffected.
Remote Monitoring¶
dsh-msg-hub supports remote monitoring capabilities, including:
- Remote approval
- Turn status push
- Session commands
Session commands are as follows:
/sessions
/bind <session ID>
/status
After receiving an approval push, you can reply:
Approve
Or:
Reject
WeChat Long Message Segmentation¶
WeChat long messages are automatically sent in segments. The segment limit is configurable with a default of 1200 characters per segment.
You can modify the configuration file state/weixin/config.json, for example:
{"segmentLimit": 1200}
Extending New IM Channels¶
dsh-msg-hub provides an adapter registry for extending new IM channels. Third-party plugins can use this registry to integrate new channels, for example registering a Telegram example channel.
Requirements¶
Before using dsh-msg-hub, the following conditions must be met:
- The dsh runtime (i.e., the cordis plugin) needs to be registered in the dsh web profile.
- Node.js ≥ 22.13
- WeChat requires scanning code login.
- QQ requires AppID and AppSecret.
- Feishu requires AppID and AppSecret.
Credentials are saved in the plugin state/ directory and added to gitignore; do not commit them.
Installation¶
Install in the web profile:
dsh plugin --profile web add dsh-msg-hub
dsh plugin add automatically adds the plugin to the profile’s dsh.profile.bundles and mounts the plugin’s own cordis.patch.yml registration line; no need to manually modify the configuration.
You can also install from the GitHub repository:
dsh plugin --profile web add github:AbcdefgXW/dsh-msg-hub
Do not manually insert this plugin into the profile’s cordis.patch.yml, otherwise it may cause a startup crash due to duplicate loader entry id.
Typical Usage¶
Connecting to WeChat¶
Execute the WeChat login script:
node scripts/weixin-login.mjs login
Then complete the scan code login according to the terminal prompts.
Connecting to QQ¶
Connect using QQ Open Platform credentials:
node scripts/qq-login.mjs --appid <AppID> --secret <AppSecret>
QQ proactive messages require applying for “Proactive Message Permission” on the Open Platform. When not enabled, proactive push will silently fail, while passive replies are not affected.
Connecting to Feishu¶
Connect using Feishu Open Platform application credentials:
node scripts/feishu-login.mjs --appid <AppID> --secret <AppSecret>
Feishu uses the Open Platform official API and is compliant and risk-free.
Configuring WeChat Long Message Segmentation¶
If you need to adjust the WeChat message segmentation limit, you can modify state/weixin/config.json:
{"segmentLimit": 1200}
Using Session Commands¶
You can use the following in an already connected IM session:
/sessions
/bind <session ID>
/status
Handling Approvals¶
When receiving an approval push, you can reply “Approve” or “Reject”.
Uninstalling¶
Remove the plugin from the web profile:
dsh plugin --profile web remove dsh-msg-hub
After uninstalling, the IM channel push for dsh-toolbox-web’s timer heartbeat automatically becomes unavailable, while other functions are not affected.
Suitable Scenarios and Notes¶
dsh-msg-hub is suitable for developers who need to connect dsh agent sessions to common IMs, perform proactive push, and remote monitoring.
Since the plugin runs with the current dsh process permissions, you should check the source code and the MIT license before installing.
You need to pay attention to the following channel risks:
- WeChat (ilinkai) uses a simulated web protocol, not the official API. Frequent proactive messaging carries risks of account risk control; it is recommended to use low-frequency push, for example, a timer task interval of ≥ 15 minutes.
- QQ proactive messages require applying for “Proactive Message Permission” on the Open Platform. When not enabled, proactive push will silently fail, while passive replies are not affected.
- Feishu uses the official API and is compliant and risk-free.
- Credentials are saved in the plugin
state/directory and added togitignore; do not commit them.
Conclusion¶
The value of dsh-msg-hub lies in converging WeChat, QQ, and Feishu message bridges, proactive push, and remote monitoring into a single DSH plugin, suitable for developers who need to handle dsh agent sessions on the IM side.
Verified information does not provide a directory page URL; the project repository address is:
https://github.com/AbcdefgXW/dsh-msg-hub