Written against DSH
0.1.0-rc.6, verified 2026-08. DSH moves fast — when commands drift, trustdsh --helpand official docs.
DeepSeek Harness (dsh) is DeepSeek's open-source agent framework. Its core design: everything is a plugin — models, tools, sandboxes, session storage, the Web UI, even the agent loop. What you run as dsh web is a profile (a composition of plugins) plus your patch layers.
npm install -g @deepseek-ai/dsh| Command | Purpose |
|---|---|
dsh web |
Web UI (alias of dsh --profile web) |
dsh --profile headless "task" |
One headless session, prints the final answer, exits |
dsh plugin --profile web add <pkg> |
Install a plugin into a profile (forwards to pnpm) |
The directory you launch from becomes the default workspace.
Everything lives under DSH_HOME (default ~/.dsh). Each profile is a directory with:
package.json—dsh.profile.bundleslists the bundles composing it;dependencieslists installed plugins.cordis.patch.yml— your personal patch layer that can override any plugin row's config.
Layer order (later wins): bundles → profile cordis.patch.yml → ~/.dsh/cordis.patch.yml → --patch.
Inspect the composed config without booting:
dsh --profile web --dump-configdsh plugin --profile web add dsh-global-rules # npm package
dsh plugin --profile web add github:owner/repo # GitHub repo
dsh plugin --profile web add /local/path # local dir (dev)On pnpm 9, dsh plugin add fails with ERR_PNPM_ADDING_TO_ROOT. This is pnpm, not the plugin. Fix either way:
dsh plugin --profile web add <pkg> --ignore-workspace-root-check
# or: export npm_config_ignore_workspace_root_check=true- Large dependency trees time out against
registry.npmjs.org; use a mirror:
export npm_config_registry=https://registry.npmmirror.comInstalling a plugin runs third-party code with your permissions. Tool approvals do not sandbox plugin code. Read the entry files and install scripts before installing; try unknowns in an isolated DSH_HOME first (see METHODOLOGY).
- Write your own plugin: 02-first-plugin.en.md
- Pitfalls: 03-pitfalls.en.md
- Which plugins actually install cleanly: tested reports