DeepSeek Harness
A coding agent where the loop, the tools and the UI are all swappable plugins
DeepSeek Harness (dsh) is an open source agent harness in which the models, tools, sessions, sandboxes, storage and even the interface are all plugins mounted into one composable tree. It ships a web interface and a headless runner, and nothing inside it ties you to DeepSeek's own models.
Everything is a plugin, and that includes the agent loop
The architecture is the product. Capabilities are plugins mounted into a Cordis tree, and what you boot is a profile: an ordered stack of plugin bundles with your own patch layer composed over the top. Replacing the persistence layer, the sandbox or the loop itself is a configuration change rather than a fork, which is not true of most agents you can install.
The shipped minimal preset is the clearest proof of the idea. It exposes exactly two tools, bash and a string replace editor, and mounts no context compaction at all, because it exists as a bare reference runtime for training and evaluation rather than for daily work. The same harness produces both that and the full coding agent from the same parts.
What running it looks like today
One command, npx @deepseek-ai/dsh web, starts a web interface on localhost and opens it. The two profiles that ship are that web app and a headless runner that executes a single session, prints the final answer and exits, which is the one to script against. There is no terminal interface in the box, which sets it apart from the other coding agents on this shelf.
Models come from an installed catalog covering Anthropic, OpenAI, Bedrock, Vertex and Azure alongside DeepSeek's own endpoint, plus custom OpenAI compatible gateways you define yourself. Keys are stored write only and the page only ever receives a redacted reference back, which is more care than this part of an agent usually gets.
Reach for it when
- you want to change the agent loop itself, not just the model behind it
- you are building on top of an agent rather than only using one
- you would rather drive an agent from a web interface than a terminal
- you need a bare two tool runtime for training or evaluation
Watch out for
- it is a developer preview whose own README promises compatibility breaking changes, and the repository is only weeks old, so nothing here is settled
- the shipped profiles are the web app and a headless runner, so there is no terminal interface the way the other agents on this shelf have one
- profiles, bundles and patch layers are Cordis concepts you have to learn before you can customise much, which is a real cost on top of learning the agent
- Bedrock, Vertex and Azure need their own native credentials rather than the plain API key field, so adding a provider is less uniform than it first looks
- model usage is billed by whichever provider you point it at, so the harness being free is only half the cost
Compare with these
- AI agentsFree
OpenClaw
A personal agent that lives on your machine and answers in your chat apps
- agents
- assistant
- self-hosted
MITRead - AI agentsFree
Hermes Agent
Drives a chat subscription you already pay for instead of a metered API
- agents
- subscription
- self-hosted
MITRead - AI agentsFree
OpenCode
A terminal coding agent that is not tied to one model vendor
- agents
- coding
- terminal
MITRead