DeepSeek Harness, usually shortened to DSH, is DeepSeek AI’s open-source agent framework. It is not a model and it is not a chat client. It is the layer that orchestrates models, tools, interfaces and skills into an agent loop you can run locally and extend in every direction. Its defining idea is simple to state and unusual in practice: everything is a plugin.
The core idea: everything is a plugin
In most agent tools, the shell is fixed and extensions hang off a few designated hooks. In DSH the shell itself is assembled from plugins. The model adapter is a plugin. The tool registry is a plugin. The session log is a plugin. The interface you type into is a plugin. That means a plugin can replace a capability rather than only add one, which is why the community ecosystem includes desktop clients, terminal front ends and entire replacement sidebars alongside small utility tools.
The practical consequence for you: when something is missing, the answer is usually “install a plugin” rather than “wait for the maintainers”.
What runs underneath: Cordis
DSH is powered by Cordis, a lightweight plugin runtime. A plugin exports an apply(ctx) function and uses the context object to register capabilities, listen for events and clean up after itself. The runtime handles loading, ordering and disposal, so plugins stay independent of each other and can be added or removed while the harness is running.
If you plan to build anything, this is the part worth reading twice, because it determines how your plugin behaves when another plugin is uninstalled or when the harness reloads.
What you can change
The ecosystem organizes plugins into capability areas rather than by repository. In practice the surfaces people extend most are:
| Surface | What plugins do there |
|---|---|
| Interface | Themes, sidebars, terminal front ends, desktop shells |
| Sessions | Composer upgrades, history, archiving, file mentions |
| Memory and context | Context inspection, compaction control, cross-session recall |
| Tools | Web search, vision and OCR, office documents, shell access |
| Agents | Skill packs, subagent orchestration, evaluation loops |
| Integrations | MCP bridges, browser control, remote access, notifications |
| Models | Adapters, routing, fallback chains, cost tracking |
A full treatment of each area lives in the categories index.
Running it
DeepSeek Harness ships as a CLI you can start without installing anything globally:
npx @deepseek-ai/dsh web
The Web UI opens at http://127.0.0.1:3080. From there, plugins are installed into the web profile:
dsh plugin --profile web add <package>
That command forwards to pnpm inside the profile directory, so an installed plugin is a normal npm package that the harness loads and registers on start.
The developer preview caveat
DSH is explicitly a developer preview. Breaking changes are expected between releases, which is why plugins declare a dshTarget version such as rc.6. When you upgrade the harness, a plugin written against an older target may stop loading. This is not a sign of a broken ecosystem; it is the cost of a fast-moving plugin runtime, and it is the reason a directory that records compatibility is more useful than a plain list of repositories.
Where plugins come from
The official team builds the core and the Cordis runtime. It does not run a plugin registry and does not accept external pull requests. Community plugins live on GitHub under the dsh-plugin topic, which is how directories discover them. This documentation site is a community project and is not affiliated with DeepSeek AI.
FAQ
Is DeepSeek Harness the same thing as DeepSeek’s chat app?
No. The chat app is a hosted product. DSH is a local agent framework you run yourself and extend with plugins.
Do I need to write code to use it?
No. You can install community plugins with a single command. Writing your own is optional.
Is DSH free?
Yes, it is open source. Individual plugins are community projects with their own licenses.
Can I use it with models other than DeepSeek?
Yes. Model adapters are plugins, so other providers can be wired in, subject to adapter support.
Next steps
Install your first plugin with the installation guide, or go straight to the plugin directory and browse by category.