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.
Global Search¶
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
utf8text stream, socatbinary 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:
- Open “Settings → Plugins”.
- Select the required plugin card, such as “Environment Variables / Keys Management” or “MCP Server Configuration”.
- Fill in the content as required by the card.
- 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 weband 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.ymlwill result induplicate loader entry id - Profile deletion is recursive; the built-in
webprofile cannot be deleted - Global search depends on the
sessionQueryservice; 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
utf8text 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