Introduction

When developing DSH agents, daily configuration isn’t just about model calls. Environment variables, keys, MCP servers, Prompts, Profiles, RSS news, global search, Codegraph queries, and terminal debugging are all entry points used repeatedly during development.

dsh-plugin-kit turns these common entry points into a set of DSH Web GUI plugin cards. It does not replace DSH core capabilities but mounts to dsh web via the official profile mechanism, adding a batch of plugins that can be configured directly.

Below is an introduction to its positioning, installation methods, core functions, and limitations to be aware of.

What is this

dsh-plugin-kit is the all-in-one plugin suite for the DeepSeek Harness (DSH) Web GUI.

It includes the following capabilities:

  • Environment variables / Keys management
  • MCP Server configuration
  • Prompt Management
  • Profile Management
  • Global Search
  • Codegraph Integration
  • Terminal Panel
  • RSS / News Aggregation
  • Plugin Development Scaffolding

The repository is maintained by hyzyn and is licensed under MIT. The GitHub address is:

https://github.com/hyzyn/dsh-plugin-kit

All plugins mount to dsh web via the official profile mechanism and do not modify DSH source code.

Installation and Enabling

First, confirm that DeepSeek Harness is installed and that you can start dsh web.

No extra requirements for installation via npm; installation from the repository requires:

Node.js >= 22.19
pnpm 10

Install the aggregation package:

dsh plugin --profile web add @hyzyn/dsh-all

Then restart:

dsh web

After the steps above, open “Settings → Plugins” to see the corresponding plugin cards.

package.json shows the current version is:

0.1.6

packageManager is:

pnpm@10.30.3

Core Features

Environment Variables / Keys Management

This plugin is used to manage environment variables and keys in the Web GUI.

Open the entry point:

Settings → Plugins → Environment Variables / Keys Management

After adding key-value pairs, check “Key” for sensitive entries, then save. Once saved, it is immediately written to the current process’s process.env.

Persistence location:

~/.dsh/env.yml

The managed sections in this file are maintained by the plugin; manual editing is not recommended. Key names are restricted to letters, numbers, and underscores, and must be unique.

MCP Server Configuration

This plugin is used to add MCP servers to DSH.

Open the entry point:

Settings → Plugins → MCP Server Configuration

Supports adding:

stdio
streamable-http

It is recommended to click “Connection Test” before saving. After saving, it hot-reloads within 1-2 seconds as:

mcp__<server_name>__<tool_name>

Persistence location:

~/.dsh/cordis.patch.yml

There is a clear limitation: do not manually append plugin lines to this file, or an error will occur on startup:

duplicate loader entry id

The process will exit directly.

Prompt Management

This plugin is used to manage Prompts.

Open the entry point:

Settings → Plugins → Prompt Management

You can create, edit, and enable Prompts. Supports:

  • Version switching / rollback
  • A/B testing
  • Export JSON / Markdown
  • Import from JSON

Persistence location:

~/.dsh/prompts.yml

Limitations:

  • Each Prompt must have at least one version
  • Single-version content ≤ 500KB

Profile Management

This plugin is used to view and maintain DSH profiles.

Open the entry point:

Settings → Plugins → Profile Management

You can view all DSH profiles under:

~/.dsh/profiles

Supports:

  • Create
  • Copy
  • Rename
  • Delete
  • Set port for each profile
  • Copy startup command with --port

Persistence location:

~/.dsh/profiles/<name>

Note: Deletion is recursive. The built-in web default profile cannot be deleted; headless can be deleted.

After installation, a global search box appears below “New Session” in the sidebar.

Enter keywords to search history sessions and settings panels.

Clicking a session opens it and tries to locate matching text; clicking a panel entry jumps to the corresponding settings card.

This feature depends on the sessionQuery service provided by the host. If missing, the session search returns an empty list.

If the session-query full-text index is configured as:

openAt: "never"

History sessions will automatically downgrade to per-session scanning.

Codegraph Integration

This plugin is used for code graph queries.

Open the entry point:

Settings → Plugins → Codegraph

Supports:

  • View index status
  • Search symbols
  • View callers / callees / impact
  • Manual Sync / Rebuild index

After installation, CodeGraph usage instructions are automatically injected into systemPrompt.

Querying the target project requires a Codegraph index first. Indexing / rebuilding is a local CLI operation that consumes real disk and CPU.

A single codegraph MCP server can only mount one default project at a time; other indexed projects can be queried by passing projectPath in tool calls.

Terminal Panel

Restart after installation:

dsh web

Click “Terminal” in the sidebar to open an embedded xterm.js large popup.

You can create, close, and switch between multiple real PTY terminal tabs.

Known limitations:

  • resize depends on DSH internal terminal handle structure
  • output is a utf8 text stream, so cat binary files may show replacement characters

RSS / News Aggregation

After installation, you can click “Today’s Worth Reading” below “New Session” in the sidebar to view news.

You can also open:

Settings → Plugins → RSS / News Aggregation

Supports:

  • Check built-in channels
  • Add custom channels
  • Search and add one-click from subscription source directory

It will fetch online once on first install and startup.

When a source is unreachable, it will be listed in the digest’s “Fetch Failed”, but other sources are not affected.

Plugin Development Scaffolding

dsh-plugin-kit includes a plugin development scaffold for generating new DSH plugins.

The repository provides the following guard commands:

pnpm typecheck
pnpm build
pnpm aggregate

Typical Usage

First install the aggregation package:

dsh plugin --profile web add @hyzyn/dsh-all

Then restart:

dsh web

After entering the Web GUI, use it in the following order:

  1. Open “Settings → Plugins”.
  2. Select the required plugin card, such as “Environment Variables / Keys Management” or “MCP Server Configuration”.
  3. Fill in the content as required by the card.
  4. After saving, observe the status provided by the plugin, such as MCP hot-reload or environment variables being written to process.env.

If you need to maintain multiple environments, use “Profile Management”.
If you want to view news, use “RSS / News Aggregation”.
If you want to locate historical content, use the global search box in the sidebar.

Applicable Scenarios and Notes

Suitable for:

  • Developers who need to put common DSH configurations into Web GUI management
  • People who need to maintain multiple sets of DSH profiles
  • People who need to centrally configure MCP servers, Prompts, environment variables, and keys
  • People who need to add terminal, news aggregation, global search, or Codegraph entry points to DSH Web GUI
  • Developers who need to develop new plugins based on the DSH plugin mechanism

Notes:

  • Plugins will mount to dsh web and participate in the DSH process execution. Check source code before installing; license is MIT.
  • The managed sections in the following files are maintained by the plugin and manual editing is not recommended:
  • ~/.dsh/env.yml
  • ~/.dsh/cordis.patch.yml
  • ~/.dsh/prompts.yml
  • Manually appending plugin lines in ~/.dsh/cordis.patch.yml will result in duplicate loader entry id
  • Profile deletion is recursive; the built-in web profile cannot be deleted
  • Global search depends on the sessionQuery service; if missing, session search returns an empty list
  • Codegraph indexing and rebuilding are local CLI operations that consume disk and CPU
  • The terminal panel output is a utf8 text stream, so binary content may appear as replacement characters

Conclusion

The value of dsh-plugin-kit is to turn common DSH configurations and daily debugging entry points into a set of Web GUI plugin cards.

First install the aggregation package:

dsh plugin --profile web add @hyzyn/dsh-all

Then restart:

dsh web

Then enable them as needed in “Settings → Plugins”.

GitHub:

https://github.com/hyzyn/dsh-plugin-kit