Introduction¶
In DeepSeek Harness (dsh), the tools available to an agent depend on which plugins are mounted at startup. When you want to write a plugin, a common issue is the lack of a sufficiently small reference: how to declare a tool, where to place default configurations, and how to verify installation. The dsh-greet-plugin introduced below is such a minimal implementation—it does only one thing: adds a greet tool to the agent, with a configurable greeting. Compared to reading through the full project source code immediately, starting with this allows you to see the basic structure of a dsh plugin faster.
What is this¶
dsh-greet-plugin is a minimal greet tool plugin for DeepSeek Harness (dsh), maintained by luxiu666 and released under the MIT license. In short: it mounts a greet tool to dsh. When the agent calls it with a name, it returns <greeting>, <name>!, where the greeting can be modified as needed.
Core Features¶
- Add
greettool: When the agent calls it passingname: string, it returns<greeting>, <name>!. - Configurable greeting: The default value
greeting: 'Hello'is stored in the plugin’s built-incordis.patch.yml, allowing it to be overridden without changing code. - Ready to use: The repository includes pre-built artifacts (
lib/); no build scripts are executed during installation, and theallowBuildsconfiguration is not required.
Installation and Activation¶
Runtime requirements: Node.js ^22.19 || >=24, and the dsh core itself.
The installation command is as follows (the <you> in the command is a placeholder and needs to be replaced with the actual username or organization name):
dsh plugin --profile web add github:<you>/dsh-greet-plugin#v0.1.0
Because the repository already includes pre-built artifacts in lib/, running this command will not trigger the build scripts.
Note: After installing or modifying the configuration, you must restart dsh, as plugin registration occurs during startup.
Configuration and Verification¶
First, confirm the default configuration. The default value for greeting is 'Hello', stored in the plugin’s cordis.patch.yml. To change the greeting, simply override it in your profile’s own patch layer:
- id: greet-plugin
name: dsh-greet-plugin
config:
greeting: '你好'
Restart dsh to verify. Ask the agent:
Use the greet tool to greet Ada.
The expected response is Hello, Ada! (if you modified greeting, it will return your configured greeting).
Development and Debugging¶
If you want to modify this to create your own plugin, the repository provides three scripts:
pnpm install
pnpm check # typecheck + build
pnpm dsh --profile web --dump-config # view mount layer
pnpm installinstalls dependencies;pnpm checkexecutes typecheck and build sequentially;pnpm dsh --profile web --dump-configoutputs the configuration mount layer to confirm if the plugin is mounted as expected.
Use Cases and Notes¶
Suitable for:
- Developers who want to add simple custom tools to a dsh agent; the
greettool itself can be used directly, or the structure can be used as a reference for modifications; - People who are new to the dsh plugin mechanism and need a minimal runnable example.
Pre-use considerations:
- The plugin runs with the permissions of the current dsh process; check the source code and license before installing;
- This plugin uses the MIT license (from package.json);
- You must restart dsh after each installation or configuration modification, otherwise the changes will not take effect (plugin registration occurs during startup);
- The
<you>in the install command is a placeholder; do not execute it as is.
Conclusion¶
To recap: dsh-greet-plugin excels because it is small—just one tool, one configuration item, and no build required for installation; just install and restart to verify. For developers who want to understand how dsh plugins declare tools and organize configurations, it is a suitable starting point.
Plugin Directory Page: https://www.skillhub.cn/plugins/luxiu666/dsh-greet-plugin
Source Repository: https://github.com/luxiu666/dsh-greet-plugin
Note: The directory page is a community-maintained independent site and has no official affiliation with DeepSeek or Hypothesis.