Preamble¶
In the DeepSeek Harness (DSH) environment, models (such as deepseek-v4-flash) typically do not know which software is installed locally on the user’s machine, and they do not clearly understand how to invoke it. This plugin transforms a “local software inventory + invocation recipes” into a checkable, persistent section that is automatically injected into the system prompt.
Plugin Introduction¶
dsh-software-tools is a sidebar manager for maintaining a curated catalog of local software (including WSL CLI tools and Windows apps accessed via interop). The set of software selected by the user is injected into the model system prompt as a compact section, ensuring that every session knows which software exists on this machine and how to invoke it.
Core Features¶
- Sidebar panel: Tools are grouped by category. Toggling takes effect in the model’s next request immediately, without a restart.
- Built-in + user catalog merge: Provides a portable built-in catalog (aria2, proxy, playwright, uvx, interop, zstd, etc.). User entries in
catalog.jsonoverride built-in items by ID. - System prompt injection: Checked tools become a compact section in every assembly (
systemPrompt.section, order 200). - Bundled skill: Includes the
add-software-toolskill. The model learns to write newly installed software into the user catalog without rebuild or restart. - Cyclic RPC: The panel and host communicate over a cyclic RPC channel; only local JSON is read.
Installation and Enablement¶
Install using the official command:
dsh plugin --profile web add dsh-software-tools
If dsh plugin add is blocked by the pnpm supply chain policy, install manually: copy the package to ~/.dsh/profiles/web/node_modules/ and append to ~/.dsh/profiles/web/cordis.patch.yml:
- insert:
- id: dsh-software-tools
name: dsh-software-tools
config: {}
- insert:
- id: software-tools-skill
name: '@deepseek-ai/dsh-skill-filesystem'
config:
providerName: software-tools-skill
includeDefaultRoots: false
customSkillDirs:
- !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('dsh-software-tools/package.json')), 'skills')
Restart dsh web and hard refresh (Ctrl+Shift+R). A 🔧 Software Tools entry appears in the sidebar.
Configuration and State¶
All settings are optional; the default is zero-configuration. The state directory is located at $DSH_HOME/software-tools.
State files:
* <settingsDir>/selection.json: {"ids": ["aria2", ...]} — the current selection.
* <settingsDir>/catalog.json: {"tools": [entry...]} — the user catalog; identical IDs override built-in items.
Entry fields:
* id: Unique identifier ([a-z0-9-]{1,32}).
* name: Display name.
* category: Downloads, Proxy, Media, Browser, Knowledge, Runtime, Model, Misc.
* desc: Description (≤40 characters).
* usage: 1–2 actionable, directly executable lines.
Typical Usage¶
- Natural-language addition: Tell the model “add XXX to Software Tools”. The bundled
add-software-toolskill researches the software and writes it tocatalog.json(no rebuild or restart required; visible after refreshing the panel). - Manual editing: Edit
catalog.jsondirectly. - Execution: The model reads the
usagefield and runs the prepared command.
Technical Requirements¶
dshengine: >=0.1.5-rc.1- Node.js: >=22
Summary¶
By exposing the local software environment to the model, this plugin bridges the gap in LLM local-environment awareness. It allows the model to access local tools without complex prompt engineering and turns system prompt maintenance into a simple checkbox process.
- Plugin repository: GitHub - AllenLogo/dsh-software-tools
- Catalog page: skillhub.cn