DeepSeek Harness (dsh): What It Is and How to Run It

DeepSeek Harness is an open agent layer built by DeepSeek AI, released on August 13, 2026 under the MIT license. It is not a model and not another coding agent — it is the scaffolding that turns any model into a working agent, a point the official product page states directly with a simple formula: Agent = Model + Harness.

Architecture diagram: a model box plus a harness box of stacked capabilities equals a working agent with a terminal and file tree

DSH Field Guide is an independent community resource built to document DeepSeek Harness for people setting it up and running it day to day. It is not affiliated with, endorsed by, or operated by DeepSeek, and DeepSeek and DeepSeek Harness remain trademarks of their respective owner.

What DeepSeek Harness actually is

DeepSeek Harness — command name dsh — is developed by DeepSeek AI and written in TypeScript under the MIT license, with the tagline “Everything is a Plugin.” The GitHub repository, deepseek-ai/deepseek-harness, had already collected 210,610 stars and 24,639 forks by September 3, 2026, a start fast enough that it ranks among the quickest-growing open-source launches on record.

The model is the soul of the agent. The harness lets the agent understand its environment, use tools, and keep working under real conditions.— DeepSeek, official DeepSeek Harness product page

That line captures the whole design intent. DeepSeek Harness is not a language model — the model plugs in from outside, including a third-party or local one. It is also not just another coding agent: Claude Code and Codex can be mounted inside it as subagents rather than competing with it. And it is not a benchmark framework — EleutherAI’s lm-evaluation-harness is a separate Python project used to score models, and no repository named deepseek-ai/DeepSeek-Harness with a pip install -r requirements.txt setup exists. The real dsh runs on Node.js and installs through npx.

The Agent = Model + Harness formula

Everything except training the model itself lives in DeepSeek Harness: task planning, tool calls, code execution, context management, sessions, permissions, and the interface. DeepSeek’s own hiring materials describe this layer plainly as a model control layer — the part that manages context, calls tools, reads and writes files, runs a terminal, and self-corrects the result.

What dsh is NOT

Three distinctions come up constantly for anyone new to the project:

  • Not a language model. DeepSeek Harness connects to a model through an adapter; the model can be DeepSeek’s own or a completely different provider.
  • Not just a coding agent. Real Claude Code and Codex CLIs can run as subagents underneath it.
  • Not a benchmark framework. lm-evaluation-harness (EleutherAI) is a Python project used to grade DeepSeek’s models, not a DeepSeek product — the two are unrelated codebases that only share a word in their names.

Everything is a plugin

DeepSeek Harness is built on Cordis, a plugin runtime, and the “Everything is a Plugin” tagline is not marketing gloss — models, tools, skills, sessions, sandboxes, file systems, the main loop itself, orchestration, and the UI are all implemented as plugins. The packages/ directory holds more than 200 workspace packages, and a plugin can be unmounted on the fly without restarting the process.

Why that is different from a normal agent framework

A typical agent framework is one main loop plus a pile of capabilities wired in by hand; adding a new capability means editing the loop, rebuilding the prompt assembly, and re-registering tools. DeepSeek Harness turned the main loop itself into a plugin, so extending it means hanging a new plugin next to the existing ones instead of patching the core.

Capability seams

Every replaceable capability is split into three roles — definition, implementation, and consumer. Swapping one implementation changes the product’s behavior everywhere that capability is used, with no fork required.

Cordis: the runtime core

Cordis is the plugin runtime underneath DeepSeek Harness, describing itself as a framework for “spatiotemporal composability.” Its design is documented in the preprint arXiv 2608.25512, “A Programming Paradigm for Spatiotemporal Composability,” an 88-page paper published August 13, 2026 by Yifan Shi, Wei Zhang, and Tianyi Cui.

Two properties define the model. Temporal composability means unloading a component fully reverts every effect it caused. Spatial composability means components declare their dependencies and are wired together reactively. DeepSeek vendors Cordis directly into DeepSeek Harness rather than depending on it as an external package.

Side-by-side diagram: a typical framework with capabilities welded to a hardwired main loop, versus dsh with detachable plugin cards hanging off a spine

Cordis itself predates DeepSeek Harness — it is a standalone open-source project by developer Yifan Shi (known as Shigma), and it has served as the plugin core of the Koishi chatbot framework since 2019. The rule that “unloading a plugin must undo everything it did” came out of that earlier project.

The append-only session log

Every run writes into an append-only log: system prompts, reasoning traces, tool calls and their results, subagent planning, and every context injection. Resume, fork, search, and replay all work by reading back through that log rather than a separate state store.

Interface diagram of an append-only session log: a growing rail of entries with a branch forking off one of them, and live statistics tiles in a sidebar

The web UI surfaces statistics most agent runtimes hide entirely: tokens per second, cache hit rate, turn count, and elapsed run time. When the project was discussed on Hacker News, the thread collected 747 points and 314 comments, and the transparency of that session log was one of the most praised details in the discussion.

Four modes: standard, code, minimal, creator

ModeWhat it gives youWhen to use it
StandardFull tool set, general-purpose agentEveryday tasks
CodeTools exposed through the Code Mode SDK; the model writes a TypeScript programComplex multi-step automation
MinimalOnly bash and a str_replace-style editorFair, apples-to-apples model benchmarking
CreatorAssembling your own presetBuilding a custom profile or bundle

Quick start in one command

The fastest path to a running instance is one line:

npx @deepseek-ai/dsh web

That command starts a web interface at http://127.0.0.1:3080 and opens it in a browser; add --no-open to skip the browser launch on a headless machine. It needs Node.js ^22.19.0 or ≥ 24.0.0, and pnpm 11.7.0 if you build from source:

  1. git clone https://github.com/deepseek-ai/deepseek-harness.git
  2. cd deepseek-harness
  3. pnpm install
  4. pnpm run build
  5. pnpm dsh web
  6. Read SAFETY.md before pointing the agent at a real project — the README requires it.
  7. Add your API key when prompted; it is stored in $DSH_HOME/.credentials.yaml and shown masked in the interface.

First run in three steps

Open Settings, go to Models, and paste an API key — the route activates immediately, no server restart needed. Add and select a working folder; the task input stays disabled until a folder is chosen. Then send a task. Anything beyond the permissions already granted gets surfaced back to you for confirmation before it runs.

Other entry points

Beyond the web UI, DeepSeek Harness ships a TUI (dsh --profile tui), a headless mode for scripts and CI (dsh --profile headless "task description"), a Python SDK (pip install deepseek-harness-sdk, which bundles its own runtime so a system Node.js install isn’t required — a Windows x64 build landed in 0.1.2-rc.1), and a TypeScript SDK for embedding it directly in another application.

Models, providers and what it costs

DeepSeek Harness itself is free and open under the MIT license — the only recurring cost is the model’s token usage. The DeepSeek API serves deepseek-v4-flash, deepseek-v4-pro, and the experimental deepseek-v4-flash-vision-exp, all with a 1M-token context window and output up to 384K tokens. New pricing took effect August 16, 2026 at 16:00 UTC, splitting rates into peak and off-peak windows (peak: 01:00–04:00 and 06:00–10:00 UTC, Monday through Friday).

v4-flashv4-pro
Input, cache hit, off-peak$0.007 / 1M$0.022 / 1M
Input, cache miss, off-peak$0.22 / 1M$0.66 / 1M
Input, cache miss, peak$0.44 / 1M$1.32 / 1M
Output, off-peak$0.66 / 1M$1.98 / 1M

Full detail lives on the DeepSeek API pricing page. For anyone who wants zero API cost, the @deepseek-ai/dsh-llm-pi-ai adapter connects DeepSeek Harness to third-party and local model backends, including Ollama, vLLM, LM Studio, llama.cpp, and any OpenAI-compatible gateway — so a fully local model, run for free, works with the same dsh setup.

Claude Code and Codex as subagents

One of the less obvious design choices: DeepSeek Harness can delegate to real third-party coding agents instead of replacing them. The @deepseek-ai/dsh-subagent-claude-code package launches an actual Claude Code CLI as a child process through the official Agent SDK, and @deepseek-ai/dsh-subagent-codex does the same for Codex through its app-server --stdio protocol. Each subagent keeps its own native configuration and authorization — DeepSeek Harness doesn’t intercept or override how those tools log in. As of 0.1.2-rc.1, the model used by each subagent can be configured separately from the parent session.

Release timeline and current status

DeepSeek Harness capabilities first shipped quietly inside the official DeepSeek V4 release on July 31, 2026, without a standalone product or public source. The actual launch came on August 13, 2026: at 11:56 UTC the public repository went live, @deepseek_ai posted that “DeepSeek Harness v0.1 is now available in Developer Preview,” DeepSeek-V4-Pro-0813 reached general availability, and the Cordis preprint appeared on arXiv the same day. August 14, 2026 is a separate date worth knowing: it’s the earliest commit visible in the public repository history, which is why a few write-ups describe it as the day the code opened up — the repository itself, however, was created on the 13th.

Release timeline with five milestones: V4 on July 31, v0.1 on August 13, first public commit on August 14, v0.1.1 on August 21 and v0.1.2 on September 3

Since then the project has shipped a new build almost every day: version 0.1.1 arrived August 21 alongside DeepSeek-V4-Flash-Vision-Exp, and 0.1.2-rc.1 followed September 3. The README warns in capital letters that there will be compatibility-breaking changes, and both issues and pull requests are disabled on the repository — feedback goes through GitHub Discussions or Discord instead.

Where to go next

Each part of DeepSeek Harness has its own page in this guide, and they are written to be read in any order.

Start with installing DeepSeek Harness if you just want it running, and read DeepSeek Harness on Windows first if that is your machine — almost every known install failure is a Windows one. When something breaks, the error guide covers the failures by the exact wording people search for.

To understand what you are running, the GitHub repository walkthrough explains what is actually inside the monorepo, and Cordis covers the plugin kernel underneath it. From there, the plugin guide shows how capabilities are added, replaced and shipped, and subagents covers the part almost nobody writes about — dsh running Claude Code and Codex as child processes.

For the decisions rather than the mechanics: pricing and token economics works through what the August 2026 API price change did to the “cheaper than Claude Code” argument, DeepSeek Harness versus Claude Code compares them honestly in both directions, and running local models covers Ollama, vLLM, LM Studio and llama.cpp for anyone who would rather not send code anywhere. If you are curious who builds this, the team page collects what is publicly known about the group inside DeepSeek behind it.

FAQ