Run DSH locally
Node 18 or newer is the only prerequisite. The fastest path does not install anything globally.
Start the web UI
One command downloads the package, boots the kernel and serves the interface on your machine.
npx @deepseek-ai/dsh web Or build from source
Cloning gives you the plugin workspace, the docs directory and the presets to read.
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm build Add a plugin
A plugin is an npm package. Adding one writes it into your configuration and asks the kernel to resolve its dependencies.
npx @deepseek-ai/dsh plugin add <package-name>
npx @deepseek-ai/dsh plugin list Write your first plugin
The smallest useful plugin is a function that names what it needs and registers one thing. This one adds a tool to the table.
import type { Context } from 'cordis'
export const name = 'greet-tool'
export const inject = ['tools']
export function apply(ctx: Context) {
return ctx.tools.register('greet', async ({ name }) => {
return `Hello, ${name}.`
})
} Pick a preset
Presets change how much surface area the agent has. Start with Standard and move down when you want a cleaner measurement.
- Standard
The full coding agent: file editing, shell access, retrieval, the whole tool table.
- PTC
Tools composed in TypeScript instead of selected one at a time, so a turn can express a whole program.
- Minimal
Bash and an editor. Nothing else. The honest baseline for benchmarking a model.
- Creative
Build your own preset and watch the runtime while it runs, service by service.
If it does not start
Node version errors
Check node -v. Anything below 18 will fail on syntax the runtime uses.
Port 3080 already in use
Pass a different port on the command line, or stop whatever is holding it.
A plugin never loads
It is almost always an unsatisfied inject. The plugin stays pending until every service it named exists, so check whether the dependency plugin loaded first.
The full guide, the architecture notes and AGENTS.md all live in the docs directory of the repository. Documentation
Cordis is a TypeScript plugin framework from the Koishi community. DSH does not implement its own plugin system. It uses this one, which is why a DSH plugin is a Cordis plugin.
Understand the kernel