What is DSH?
DSH is DeepSeek Harness, an open-source agent runtime released by DeepSeek under the MIT licence. The command-line entry point is literally called dsh, which is where the short name comes from.
The short answer
A harness is the layer around a language model that turns it into something that can do work. It decides what the model sees, which tools it can call, where the transcript is written, and when the turn ends. DSH is that layer, built so that every part of it can be replaced by a plugin.
Why the word harness
A model on its own answers questions. It has no filesystem, no shell, no memory of yesterday and no way to stop itself. The harness supplies all of that. The name is borrowed from test harnesses in software engineering: the scaffolding that puts a component into a real environment and observes what it does.
Everything is a plugin
This is the design decision the whole project turns on. In most agent frameworks, the model adapter and the tool table are core code, and plugins live at the edges. In DSH there is no privileged core. Models, tools, skills, sessions, sandboxes, storage, the agent loop, the scheduler and the user interface are all Cordis plugins registered against the same context.
The practical consequence: changing how your agent behaves is a configuration change, not a fork.
- ctx.model
Model adapters
Swap the model behind an unchanged loop.
- ctx.tools
Tool table
Add, remove or wrap any callable capability.
- ctx.sessions
Sessions
Append-only logs, so a run can be replayed.
- ctx.sandbox
Sandboxes
Choose where agent-authored code executes.
- ctx.loop
Agent loop
Replace the control flow of a turn itself.
- ctx.ui
Interface
Web, terminal or your own front end.
Everything a run does is written down
Sessions are append-only. A finished run is a file you can read, diff and replay, which is what makes a plugin swap a measurable change rather than a vibe. When an agent goes wrong at step 40, the record of steps 1 through 39 is still there.
What DSH is not
-
It is not a model.
DSH runs a model. Which one is your choice, and it is a plugin.
-
It is not a hosted product.
You run it on your own machine or your own server. There is no account layer.
-
It is not stable yet.
The project is in developer preview and the plugin API still moves between releases.
Common questions
What does DSH stand for?
DeepSeek Harness. The CLI binary is named dsh, and the ecosystem uses the short form everywhere: dsh plugin, dsh web, the dsh-plugin topic on GitHub.
Is DSH the same thing as DeepSeek the model?
No. DeepSeek publishes language models, and DSH is a separate open-source project that runs a model inside an agent loop. DSH can drive DeepSeek models or any other provider that has an adapter plugin.
What is the relationship between DSH and Cordis?
Cordis is the plugin kernel DSH is built on. It provides the context object, the service registry, dependency injection through inject, and the reversible-effect system that lets a plugin be unloaded cleanly. DSH is the agent-specific layer written on top of it.
Do I need to write a plugin to use DSH?
No. The default presets ship with a working tool table and model adapter. Plugins are how you change that once the defaults stop fitting.
What licence is DSH under?
MIT, with the full source published on GitHub.
How do I make my plugin appear on this site?
Add the dsh-plugin topic to your GitHub repository, or publish to npm with dsh-plugin in the keywords. The registry re-collects daily.