On 13 August 2026, DeepSeek released DeepSeek Harness (dsh) in developer preview, publishing the full source code under the MIT license. The project ships as dsh at deepseek-ai/deepseek-harness and frames its own thesis in one line: Agent = Model + Harness.
The harness is the layer between a model and the environment it acts in — the tools, files, sandboxes, and control loop that let an agent keep working. DeepSeek's twist is that almost nothing in that layer is fixed. Models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and the UI all sit behind plugin boundaries. Any of them can be selected, swapped, or extended in configuration without changing Harness source code.
Install is a single command. npx @deepseek-ai/dsh web starts the Web UI at http://127.0.0.1:3080 by default and opens it in the browser. A source checkout follows the usual path: clone, pnpm install, pnpm run build, then pnpn dsh web.
Confirmed
DeepSeek says the runtime is built on Cordis, a meta-framework whose design is described in A Programming Paradigm for Spatiotemporal Composability. The Cordis kernel handles plugin mounting, unmounting, and dependencies. Capabilities live in the plugins, not in a privileged core, and Cordis services and events let those plugins work together.
Four runtime modes ship with the preview, each loading a different default plugin set:
- Standard — the full coding agent: file editing, shell, file and web search, skills, planning, goals, subagents, and workflows.
- Code mode — the same capabilities exposed through a Code Mode SDK, so the model can combine multi-step operations in one TypeScript program instead of issuing many separate tool calls.
- Minimal — two tools, a persistent bash and str_replace_editor, for benchmarking models in a bare environment.
- Creator — Standard capabilities plus runtime inspection, in-memory plugin experiments, and preset-authoring guidance.
Every run is recorded in an append-only session log: system prompts, reasoning, tool calls and results, subagent scheduling, and every context injection. The Trajectory view inspects those records by source, and resume, fork, search, and replay all operate on the same event stream. DeepSeek's documentation notes that the append-only design keeps the beginning of the model context stable, which helps prefix caching.
Model routing is itself a plugin. In Settings → Models, a DeepSeek API key takes effect on the next request without restarting the server. The installed catalog adds providers such as Anthropic and OpenAI by API key. Bedrock, Vertex, Azure, and Codex need native credentials instead: AWS credentials and a region, an ADC project, an api-version, and OAuth respectively. Custom providers accept any OpenAI-compatible base URL. Keys are write-only and stored in $DSH_HOME/.credentials.yaml; settings retain only a credential reference.
A Python SDK ships as deepseek-harness-sdk and requires Python 3.10 or newer, on Linux x64, Linux arm64, or macOS 14+ on arm64. Its bundled runtime needs no system Node.js.
Unknown
The preview is explicitly unstable. DeepSeek's repository warns in capital letters that there will be compatibility-breaking changes, and the product page says the core plugins and APIs will continue to evolve. A plugin written this month may need rework next month.
Independent performance numbers are thin. One third-party comparison ran DeepSeek V4 Pro inside both DeepSeek Harness and the Pi coding agent and reported a near tie: Pi passed 21 of 30 tasks, DeepSeek Harness 20. DeepSeek Harness was cheaper on shared successful tasks ($0.028 versus $0.031) and faster per task (252.1 seconds versus 362.9 seconds). The same evaluation cautions that the two systems ran through different endpoints — DeepSeek's own versus OpenRouter — so the token comparison is not clean. Those figures come from one evaluator's setup, not a DeepSeek disclosure.
There is also a measurement gap. An independent analysis tokenized 8,057 files of at least 200 characters from the repository and found the harness's character-count-divided-by-four estimator came out 7.4% low overall, 43.5% low on the 1,350 Chinese-heavy files, and 12.1% high on non-Chinese markdown. That estimator feeds the context-composition panel, the projection of what the next request will cost, and — through measurement.totalTokens — the threshold that decides when a session gets compacted. DeepSeek has not published a correction.
Why it matters
Most harnesses hard-code the agent loop, the tool registry, and the session store, and extension happens only at whatever hooks the authors exposed. DeepSeek's position is that there is no special core to patch. For teams building internal coding agents, that moves the decision from which assistant to adopt to which parts to assemble — and who maintains them when the plugin API shifts.
The append-only log is the sharper claim. Most agent frameworks log tool calls; recording every context injection is a different level of auditability. It matters for regulated enterprises that need to reconstruct what a model saw before it acted, and the MIT license plus local self-hosting makes that pilot possible without a vendor contract.
Our take
While the modular architecture offers a compelling alternative to monolithic assistants, the preview status defines the immediate risk. The promise of swappable parts is undermined by the reality of unstable APIs, meaning early adoption is less about licensing costs and more about the engineering burden of constant maintenance. Furthermore, the discrepancy in token estimation suggests a lack of precision in core functionality, where a rough heuristic can inadvertently alter agent memory and behavior. This indicates that while the design is ambitious, the execution lacks the robustness required for reliable production use without significant internal validation.