Everything is
a plugin.
DeepSeek Harness wraps a model and turns it into a coding agent — and every part of that wrapping is a config row you can override. This is the unofficial manual: install steps that work, the errors you will actually hit, and what the docs leave unsaid.
npm install -g @deepseek-ai/dshdsh webThe web profile builds itself from a shipped template on first boot and serves at 127.0.0.1:3080.
Four layers decide what your agent actually is
Applies to every profile, and overrides the profile's own patch file. This is the layer people forget — a setting here silently wins over the one you just edited.
dsh --profile web --dump-configFour wrappings, one model
A mode is not special-cased code. It is a particular composition of plugin rows — which is why you can build a fifth.
Standard
File editing, shell, file and web search, skills, planning, goals, sub-agents, workflows.
The default, and the right one for almost all real work.
Code
zh: PTC 模式Same capabilities, exposed through the Code Mode SDK — the model writes one TypeScript program instead of many tool round-trips.
Long mechanical chains, where the steps are knowable up front.
Minimal
Two tools: persistent bash and str_replace_editor. Nothing between the model and a shell.
Benchmarking a model honestly. Teaching.
Creator
Standard plus runtime inspection and in-memory plugin experiments.
Authoring the fifth mode, once these four are close but wrong.
25 pages, written against the source
Each page is traced to the upstream repository or the official docs. Where the docs are silent, we say so instead of guessing.
Guides
- DeepSeek Harness agent presets: the four modes are directories6m
- Call Claude Code and Codex as sub-agents from DeepSeek Harness5m
- Port a Claude Code skill to DeepSeek Harness (it already works)4m
- The four DeepSeek Harness agent modes, and when each one wins4m
- dsh CLI reference: every subcommand, flag and entry mode3m
- Every tool in DeepSeek Harness, and the package that provides it5m
- DeepSeek Harness glossary: turn, step, round, seam, scope, goal4m
- Running DeepSeek Harness headless (and in CI)3m
- How to install DeepSeek Harness (dsh) — the complete guide4m
- DeepSeek Harness profiles and patch layers explained4m
- Sub-agents, workflows and the Ralph loop in DeepSeek Harness4m
Troubleshooting
Comparisons
Plugins
- Loop guards in DeepSeek Harness: timeouts and the repeat-tool reminder5m
- The DeepSeek Harness sandbox: modes, backends and what it does not protect5m
- The DeepSeek Harness workflow engine: contract, error codes and Ralph config5m
- Add a custom model provider to DeepSeek Harness3m
- “Everything is a plugin”: the Cordis architecture behind DeepSeek Harness4m
- Patching plugin config in DeepSeek Harness: the config catalog explained3m
- Write your first DeepSeek Harness plugin7m
Frequently asked
Is DeepSeek Harness free?
The harness is MIT-licensed and free to run. You still pay for model tokens — unless you point it at a local model or a provider you already have credit with.
Do I need a DeepSeek API key to use dsh?
You need a model credential, but not necessarily DeepSeek's. Settings → Add provider takes a key for a catalog provider such as Anthropic or OpenAI. Custom providers read their key from an environment variable you name yourself via apiKeyEnv.
What is the difference between Code mode and PTC mode?
They are the same preset. The shipped preset directory is named code, and its own preset.yml gives it the Chinese display name PTC 模式 — so both names are official, one per locale, not a nickname the community invented.
Is it stable enough for real work?
It is a v0.1 developer preview whose maintainers state that core plugins and APIs will keep evolving. Pin your version and keep your profile under version control.
Is this the official DeepSeek Harness website?
No. The official repository is github.com/deepseek-ai/deepseek-harness. DSHKit is independent and unaffiliated.