The plugin-based architecture of DeepSeek Harness (DSH) allows developers to extend functionality according to their needs. For scenarios that require interaction through collaboration platforms, dsh-messaging-gateway provides a direct integration solution.

Core Purpose

This is a messaging Gateway plugin. It follows the principle of “one DSH Host, one Gateway.” Developers must create and configure their own Slack and Feishu applications. The plugin handles message routing, session management, and local state storage. All tokens are stored locally only and are never uploaded to third-party servers.

Installation

Before installing, ensure that the DeepSeek Harness version is >= 0.2.0-rc.1 (0.2.0-rc.2 is recommended), and that the environment satisfies Node.js ^22.19.0 || >=24.0.0.

Official Desktop App

  1. Open Settings.
  2. Go to Plugins.
  3. Click Add Plugin.
  4. Enter the following in “Package Name or URL”:
dsh-messaging-gateway@0.2.3
  1. Restart the Host after installation is complete.

Web CLI

Use the official CLI command to install. This command only writes to the web profile:

dsh plugin --profile web add dsh-messaging-gateway@0.2.3

If dsh is not in PATH, use:

npx @deepseek-ai/dsh plugin --profile web add dsh-messaging-gateway@0.2.3

Configuration and Connection

After installing and restarting the Host, go to Settings → Messages.

Slack Integration

  1. On the Messages page, click Copy Manifest, then visit the Slack API to create and install an app.
  2. Fill in the configuration:
    - Bot Token: starts with xoxb-.
    - App-level Token: has the connections:write permission and starts with xapp-.
    - Member ID: your own user ID.
  3. Save the configuration and send a direct message to the Bot. It only responds when @-mentioned in a channel.
  4. Note: The Slack Slash Menu usually takes about 5 minutes to appear.

Feishu Integration

  1. Create an enterprise self-developed app on the Feishu Open Platform and enable the bot capability.
  2. Permissions: Publish a new version to make them take effect, including application:app_slash_command:write, application:app_slash_command:read, im:message.p2p_msg:readonly, im:message.group_at_msg:readonly, and im:message:send_as_bot.
  3. Event Subscriptions: Select long-lived connection and subscribe to Receive Message v2.0.
  4. Fill in the configuration:
    - App ID: starts with cli_.
    - App Secret.
    - Member ID: your own ou_....
  5. Save the configuration and send a direct message to the bot.

Usage and Commands

Session Management

In the chat, you can use the following commands:

  • /new: Start a new session.
  • /reset: Reset the current session.
  • /compact: Compact the context.
  • /help: View help documentation.
  • /model: Switch models.

Directory and State

The default working directories are:
- $DSH_HOME/messaging-gateway/workspaces/slack
- $DSH_HOME/messaging-gateway/workspaces/feishu

The state file is saved at $DSH_HOME/messaging-gateway/state.json.

Configure Model

In Settings → Messages → Slack / Feishu, you can configure the model and reasoning effort for each platform. These settings are used for the first direct message and for the /new and /reset commands.

Technical Details

Duplicate Prevention Mechanism

When the Gateway starts, it atomically leases $DSH_HOME/messaging-gateway/instance.lock. If another Host process in the same Home directory has already acquired the lock, the current Gateway remains inactive. After fixing duplicate Hosts, only the remaining process continues working.

Local Security

The plugin depends on @slack/bolt and @larksuiteoapi/node-sdk. All authentication information is processed only in local memory and does not go through the official shared bot.

License

MIT License.

References