Introduction

In DeepSeek Harness (DSH), after agents finish tasks such as building, inspection, and batch processing, they often need to send results to DingTalk groups. If you manually construct Webhook requests in your business code, you have to handle message bodies, signature, timeouts, and configuration locations. dsh-dingtalk encapsulates these into two DSH tools: dingtalk_notify for Markdown, and dingtalk_text for plain text.

It only provides one-way notification: agents push messages to DingTalk groups and do not receive group messages, nor do they function as bidirectional bots.

What is this

dsh-dingtalk is a DeepSeek Harness plugin, owned by STARDUSTLC666, and licensed under MIT. It encapsulates DingTalk custom robot Webhooks into two tools, supporting the signature security mode. Configuration items include webhook, secret, and timeoutMs.

This plugin is a pure Node.js implementation with no runtime dependencies, supporting Windows, macOS, and Linux. The README states it has been verified on @deepseek-ai/dsh@0.1.2-alpha.2 (2026-08-31) and does not import any @deepseek-ai/* internal modules at runtime.

Core Capabilities

  • dingtalk_notify: Pushes a Markdown message to a DingTalk group containing title and text.
  • dingtalk_text: Pushes a plain text message to a DingTalk group using content.
  • Uses DingTalk custom robot Webhooks and supports the signature security mode.
  • Supports saving the signature key via the environment variable DSH_DINGTALK_SECRET.
  • Supports configuration items: webhook, secret, timeoutMs.
  • Pure Node.js implementation, no runtime dependencies, cross-platform.

Installation and Usage

First, install the plugin:

dsh plugin --profile web add dsh-dingtalk

After installation, override the tool-dingtalk line in the corresponding profile’s cordis.patch.yml, configure webhook and secret, and then restart.

Example configuration is as follows:

- id: tool-dingtalk
  config:
    webhook: https://oapi.dingtalk.com/robot/send?access_token=你的token
    secret: SEC你的加签密钥

If you don’t want to write the key into YAML, you can also configure only webhook and put the signature key in an environment variable. You can set it like this in Windows PowerShell:

$env:DSH_DINGTALK_SECRET = "SEC你的加签密钥"

Note: This plugin runs with the permissions of the current dsh process. It is recommended to check the source code and MIT license before installation to ensure its capability boundaries align with your use case.

Typical Usage

Add a custom bot in the DingTalk group settings, check “Signature” for security settings, copy the Webhook address and secret, and then write it to cordis.patch.yml.

After configuration, you can directly let the agent send messages. For example:

Help me send a message to the DingTalk group: Title “Build Completed”, Body “Pipeline #123 has passed”.

This type of usage is suitable for one-way outputs such as task result notifications, build notifications, and inspection result push notifications.

Limitations and Notes

  • One-way notification only: does not support receiving group messages, nor bidirectional bots, such as replying after @bot.
  • Does not support enterprise self-built applications.
  • Currently only supports Markdown and plain text, does not support image, Link, FeedCard, ActionCard, etc.
  • No Web settings page; configuration is completed via cordis.patch.yml and environment variables.
  • The webhook is the key to group notifications; anyone who knows it can send messages to the group. Do not commit cordis.patch.yml to a Git repository.
  • The secret is recommended to be saved via the environment variable DSH_DINGTALK_SECRET.
  • The plugin does not perform network reporting; the secret is only used in memory to calculate the HMAC signature.
  • This is a community plugin, unrelated to DeepSeek official or DingTalk official; @deepseek-ai/* is reserved for official use.

Related Links

Directory page:

https://www.skillhub.cn/plugins/STARDUSTLC666/dsh-dingtalk

GitHub:

https://github.com/STARDUSTLC666/dsh-dingtalk