The plugin-based architecture of DeepSeek Harness allows developers to extend its functionality. When you need to control workspaces and sessions from mobile or instant messaging scenarios, additional entry points are required. The zhuosir/dsh-chatops plugin solves this problem by bridging DSH to WeChat, Feishu, DingTalk, and WeCom, enabling remote control through IM.
Positioning and Core Capabilities¶
This is a client plugin maintained by ZhuoSir, designed to operate all DeepSeek Harness workspaces and sessions through instant messaging tools. It addresses the needs of “sending prompts directly in IM” and “remote approval and file receiving.”
Core capabilities of the plugin include:
- Four-channel parallelism: Supports simultaneous online status for WeChat (ilink), Feishu, DingTalk, and WeCom channels with a consistent command set.
- Interaction and commands: Text sent in IM is used directly as a prompt. A built-in command set (
/sessions,/use,/status,/log,/send,/approve/reject) manages sessions and files. - Feedback mechanism: Automatically pushes when tasks are completed. Supports remote approval (Feishu supports one-click approval via card buttons). Generated reports/images/files can be sent back directly to IM (images displayed inline, others as file cards).
- Security model: Based on owner/whitelist mechanism. Messages from strangers are silently ignored by default and audit logs are recorded. File return is limited to the current workspace.
Installation and Enablement¶
Before installation, ensure the environment meets the requirements: Node.js >= 22, DSH version 0.1.0-rc.x.
Install the plugin:
dsh plugin --profile web add github:ZhuoSir/dsh-chatops
Restart DSH to load the plugin:
dsh web
After installation, enable the corresponding channel in the Settings → IM Channels panel and fill in the credentials. The WeChat channel (default) can be bound by scanning the QR code directly in the panel.
Typical Usage¶
- Send a prompt: Directly send text in a bound session (such as a WeChat direct chat or group chat). The text is delivered to the currently bound session as a prompt.
- Session management:
- Use
/sessionsto list all sessions. - Use
/use 1to bind the specified session.
- Use
- Remote approval: When an operation requires confirmation, use
/approveor/rejectto handle it remotely. - File sending: Use
/send reports/a.mdto send a file to IM. The model can also invoke theim_send_filetool to proactively send files.
Architecture and Dependencies¶
- Network and deployment: The plugin only requires outbound HTTPS/WebSocket connections. No public callback or port forwarding is needed, requiring zero public deployment.
- SDK dependencies: SDKs for each IM platform (Feishu, DingTalk, WeCom) are optional dependencies. If not installed, the corresponding channel will idle and show a notice in the logs. The WeChat ilink channel is a built-in dependency.
- WeChat protocol: By default, the plugin uses the official WeChat bot platform (ilink). The alternative Wechaty personal account protocol (
wechaty) carries account-banning risk, is disabled by default, and is limited to personal small accounts.
Permissions and Security¶
The plugin runs within the DSH process context. The security boundaries are as follows:
- Network access: Only outbound connections to official IM platform domains.
- Credential storage: The WeChat
bot_tokenis written to DSH credential storage. Credentials for other platforms are stored in local configuration. - File restrictions: File return is only allowed for files inside the current session workspace, and path traversal is rejected.
- Access control: The user who binds via WeChat QR code scan or the first direct-chat user automatically becomes the owner. Messages from other users are silently ignored and audit logs are recorded.
Use Cases¶
Suitable for developers who need to perform daily operations in IM, handle remote approvals, and quickly send task instructions from mobile devices.