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:

  • WeChat
  • QQ
  • 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 to gitignore; 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