Preface

DeepSeek Harness (DSH) converges code editing, tool invocation, and agent orchestration into a single local process, allowing developers to drive an entire agent workflow from the terminal or a Web UI. However, real-world communication often happens in Feishu groups, WeChat private chats, Telegram channels, or Slack threads—where a colleague might @ you for a quick question, or a client sends a screenshot from their phone. If Harness remains confined to a local interface, the collaboration chain breaks at the step of “having to switch back to the computer.”

The community plugin dsh-im (maintained by xmanrui, npm package name @xmanrui/dsh-im) is designed to solve this mismatch between a “local Harness” and “remote chats.” It unifies nine major IM channels into the local DSH via QR code scanning, App Manifest, or bot credentials, with centralized management on the Harness settings page. The plugin is categorized as “Client-side” in the SkillHub Plugin Directory, and its GitHub open-source repository has approximately 789 stars as of the verification date (MIT License). Note that SkillHub is a DSH plugin community directory aimed at Chinese users and has no official affiliation with DeepSeek or High-Flyer; DSH itself embraces an “everything is a plugin” philosophy, with specific capabilities determined by each plugin’s repository and directory page descriptions.

What This Is

dsh-im can be described as: registering an “IM Bot” settings entry within the local DeepSeek Harness to uniformly manage nine built-in channels—Feishu, WeChat, DingTalk, WeCom, QQ, Slack, Telegram, Discord, and WhatsApp—along with an optional AI Office Connector (which allows the local Harness to proactively connect to public Office networks without requiring a public IP or port forwarding).

Each channel supports connecting multiple bots, with independent credentials, connection status, workspaces, Agent Presets, and session bindings for each bot. Secrets and tokens submitted by users are only sent to the local Harness Host and stored in protected credential storage; the settings page interface does not echo back these sensitive fields.

Core Features and Highlights

Unified Access Across Nine Channels

Channel Typical Connection Method Message Features (Summary)
Feishu QR code creation or App ID + Secret Long connection + streaming card display for thinking and responses
WeChat WeChat QR code binding iLink long polling, long replies segmented at 1800 characters
DingTalk QR code or Client ID + Secret Stream long connection + AI Card streaming
WeCom QR code or Bot ID + Secret WebSocket, native “thinking” status and streaming responses
QQ QR code or AppID + AppSecret WebSocket, replies after group @
Slack Manifest + Bot/App Token Socket Mode, supports official streaming API
Telegram Bot Token from @BotFather Long polling, supports private chat whitelist security mode
Discord Developer Portal Bot Token Gateway, creates Thread streaming edits after @
WhatsApp Phone QR code to link device Web long connection, multiple access modes available

In addition to text, all nine channels support sending JPEG, PNG, WebP, and GIF images (up to 5 MB per image, 20 MB total per message) to Harness, with optional text descriptions. Files generated by Harness can also be sent back as native attachments according to each platform’s capabilities.

Bot Commands and Session Management

The plugin provides a relatively complete set of commands on the chat side, allowing session control without opening the Web UI. Examples include:

  • /help: View command list
  • /new: Unbind the current chat session; the next message starts a new Session
  • /status: Check the bot and Harness connection status
  • /models, /model: List and switch models and reasoning levels
  • /presetlist, /preset: Select Agent Preset for the current bot
  • /workspace, /sessionlist, /session: Switch workspaces or bind existing sessions
  • /stop, /steer: Stop a task or append instructions to a running task

Telegram allows switching each bot between “Compatibility Mode” and “Private Chat Whitelist Security Mode”; WhatsApp supports access policies like “self-only,” “specified contacts,” or “open response,” to prevent bots from being triggered by irrelevant messages.

AI Office Connector

The “AI Office” page allows the local Harness to proactively connect to public Office via a Device Token: after heartbeat authentication, it establishes an SSE downlink, receives job.available to pull tasks, renew execution, and sends tool approval issues back to the Office manual panel. This is suitable for hybrid deployments where “the office is in the cloud, and computing power is local,” without exposing the local machine to the public network.

Installation and Activation

The plugin requires Node.js >= 22.19. It is recommended to install the published stable version from npm:

dsh plugin --profile web add -w @xmanrui/dsh-im

After installation, restart dsh web, then open “Settings → Plugins → IM Bot” in Harness and follow the channel-specific guides to scan QR codes or enter credentials.

To try the latest code not yet published on npm from GitHub, you can use the installer provided in the repository:

npx -y github:xmanrui/dsh-im install

The GitHub source installation will directly pull and build Git dependencies; pnpm 10 and above may require first allowing the dependency to run build scripts in the profile’s pnpm-workspace.yaml. It is recommended for regular users to prefer the npm stable version.

Network Tip: If accessing Feishu locally requires a proxy, set HTTPS_PROXY (e.g., http://proxy:8080) before starting dsh web and restart the Host. If the Telegram Bot API cannot connect directly, Node.js 22.21+ is required, and enable NODE_USE_ENV_PROXY=1 along with HTTPS_PROXY / HTTP_PROXY.

Typical Usage Examples

Using the most common “QR code access + private chat dialogue” as an example, the process is as follows:

  1. Execute the installation command above and restart dsh web.
  2. Go to the “IM Bot” settings page and select the target channel (e.g., Feishu or Telegram) from the left menu.
  3. Follow the page prompts to scan QR codes to create an application, or manually enter the platform-issued App ID / Bot Token.
  4. Confirm the workspace path and Agent Preset on the bot card (new bots default to the Host’s current working directory).
  5. Send a regular message to the bot from a mobile or desktop client to trigger a Harness session; send /new when you need to switch topics.

To switch models, first use /models to view the list, then /model 2; to switch reasoning levels, use /reasoninglist and /reasoning 2. Feishu users with insufficient permissions can send /repair in private chat to incrementally supplement card callback and image read/write permissions.

When online, you can also click the “Check Connection” button on the bot card to send a connection test message to the nearest private chat (without creating a Session or invoking a model).

Applicable Scenarios and Considerations

Who Should Use This:

  • Those who want to integrate their local DSH Agent into the team’s daily IM, reducing the friction of “copy-pasting to the terminal.”
  • Those who need a unified Harness capability across domestic platforms like Feishu, DingTalk, and WeCom, as well as international platforms like Telegram and Slack.
  • Those seeking local computing power + cloud Office collaboration and wishing to receive remote tasks via the AI Office Connector.

Before Use, Please Be Aware:

  1. Permission Boundaries: The plugin runs with the permissions of the current dsh process and can access the same workspaces, tools, and files as the Host. Before installation, read the GitHub source code and MIT License to ensure it aligns with your security policies.
  2. Commands as Capabilities: Users who can message the bot can typically execute commands like /workspace and /session, potentially accessing other local project paths or sessions. Only open the bot to trusted users and configure Telegram / WhatsApp access modes appropriately.
  3. Platform Differences: Each IM platform has different requirements for file size, streaming display, and group @ rules; the README includes channel-specific explanations. Some features (like Feishu image downloads) require additional tenant permissions.
  4. Local Network Exposure: If providing a Web profile on a trusted local network, set rpcAuthority to trusted-host in cordis.patch.yml; this reuses Harness’s Origin protection and is not user authentication—it only applies to trusted networks.

Conclusion

If you’ve built a local agent with DeepSeek Harness but are frustrated by its “sitting only on the computer” limitation, dsh-im connects nine major IM platforms and AI Office to a single Harness through one settings page: go online with QR code or credentials, and with multi-bot, multi-workspace, streaming replies, and rich commands, turn your chat software into the agent’s frontend. Consider starting with the npm stable version and trying a /help command in Feishu or Telegram.