DeepSeek Harness: What It Is, How It Works & Plugin Guide
Learn what DeepSeek Harness is, how its plugin-first architecture works, how to get started, and how it compares with other coding agents.
DeepSeek Harness (dsh) is an open-source agent harness developed by DeepSeek AI. It is the runtime around an AI coding agent: it connects a model to tools, permissions, session history, interfaces, and other services. It is not a model, a prompt pack, or a subscription plan.
The upstream project is currently a developer preview and warns that compatibility-breaking changes will occur. Check the official documentation and a plugin's own repository before relying on any command in production.
Ready to explore the ecosystem? Browse the plugin directory or follow the plugin installation tutorial.
What is DeepSeek Harness?
DeepSeek Harness is a configurable environment for running coding agents. Its job is to coordinate the parts that surround the model: model adapters, prompts, tools, approvals, persistence, the agent loop, a Web UI or headless runner, and extension points.
The official project describes the design as “everything is a plugin.” That distinction matters. Instead of treating tools and integrations as add-ons around a fixed application core, Harness composes the application itself from plugins.
How does DeepSeek Harness work?
At startup, the CLI selects a named profile, such as web or headless. That profile lists one or more bundles. Each bundle contributes configuration rows and the plugins those rows mount. User and machine-level patches can then replace or add rows before Cordis mounts the resulting plugin tree.
A simplified startup flow is:
- Run
dsh webor choose a profile withdsh --profile <name>. - Harness loads that profile's ordered bundles.
- Profile, home-level, and command-line patch layers are applied.
- Cordis mounts the configured plugin tree.
- Plugins register services, events, tools, and reversible effects.
- The selected interface accepts a task; the agent loop calls the model and executes approved tools while session events are persisted.
You can inspect the tree a profile would boot without running the app:
dsh --profile web --dump-config
What does “everything is a plugin” mean?
In DeepSeek Harness, the model adapter, tool registry, session log, agent loop, Web interface, permissions, telemetry, and many other capabilities are mounted through the same composition system. There is no privileged application core that must be patched for every extension.
Plugins can provide a service, consume another service, listen to an event, register a model-facing tool, or add configuration. Cordis tracks their effects so those registrations can unwind when a plugin unloads. In practice, the design offers a shared mechanism for replacing a provider, adding a capability, or building a different interface.
“Everything is a plugin” does not mean every third-party repository is safe or compatible. It describes the architecture, not a security certification.
DeepSeek Harness architecture
| Layer | What it does | Example |
|---|---|---|
| CLI and profile | Selects a named composition and its runtime surface | web, headless, or a custom profile |
| Bundles | Package ordered Cordis configuration and the code it mounts | Base, Web app, and headless bundles |
| Patch layers | Override whole configuration rows or insert new ones | Profile, home, and --patch overlays |
| Cordis plugin tree | Mounts services, events, dependencies, and reversible effects | Model, tools, sessions, permissions, UI |
| Agent runtime | Turns input into model steps, tool calls, and durable events | Agent loop and session log |
| Capability seams | Let one provider be replaced behind a shared interface | Filesystem, subprocess, sandbox, or model provider |
The base bundle supplies the common agent environment. The Web and headless bundles add different surfaces without requiring separate cores. A third-party bundle can join a profile when its package manifest declares the expected dsh.bundle patch.
Installation and getting started
Install Node.js, then start the official Web UI directly from npm:
npx @deepseek-ai/dsh web
The Web UI is served at http://127.0.0.1:3080 by default. The official repository also documents running from source:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
Plugin management also requires pnpm on your PATH. See How to Install DeepSeek Harness Plugins for profile selection, install commands, verification, removal, and allowBuilds troubleshooting.
Official GitHub, documentation, and CLI
- Official GitHub repository
- Official README and getting started
- Web UI guide
- Architecture documentation
- CLI behavior reference
- Configuration catalog
The repository and its version-matched documentation are authoritative. DeepSeek Harness is moving quickly, so verify syntax against the revision you run.
How to choose DeepSeek Harness plugins
Start with the capability you need, then narrow the candidates using evidence rather than names or star counts alone:
- Confirm the repository identity. Follow the source record to the maintainer's repository and check for redirects or impersonation.
- Check the package type. A bundle contributes profile configuration; a bundle-less dependency may require a manual patch before it does anything.
- Match the profile. Decide whether the plugin belongs in
web,headless, or a separate custom profile. - Check compatibility evidence. Look for supported Harness revisions, recent releases, open issues, and migration notes.
- Review execution boundaries. Inspect install scripts, dependencies, requested permissions, network destinations, credentials, and data retention.
- Prefer reversible adoption. Test in an isolated profile, pin a reviewed version when appropriate, dump the resulting configuration, and keep a removal path.
Directory labels such as “repository available” and “recently updated” are discovery evidence, not proof of safety, quality, or compatibility. Read the directory methodology before using those fields as filters.
DeepSeek Harness vs Claude Code, Cursor, and OpenCode
| Product | Primary shape | Extension emphasis | A sensible reason to choose it |
|---|---|---|---|
| DeepSeek Harness | Open-source, profile-based agent harness with Web and headless surfaces | The runtime itself is composed from Cordis plugins, bundles, and patches | You want to inspect, replace, or assemble the agent runtime and accept developer-preview change |
| Claude Code | Coding agent available in terminal, IDE, desktop, and Web surfaces | Product integrations, tools, hooks, skills, and MCP around the Claude Code workflow | You want Anthropic's supported coding-agent experience across several surfaces |
| Cursor | AI code editor with agent and cloud-agent workflows | Editor-native rules, skills, plugins, hooks, subagents, and MCP | You want AI assistance centered on an integrated graphical editor |
| OpenCode | Open-source coding agent for terminal, desktop, and IDE use | Provider choice and agent customization in a ready-to-use coding client | You want an open-source coding agent with a conventional end-user interface |
This is a product-shape comparison, not a universal ranking. The best choice depends on whether you prioritize a composable harness, a supported model-specific workflow, an editor-centered experience, or a ready-made open-source agent.
People also ask
What is the best coding harness for DeepSeek?
There is no single best harness for every team. DeepSeek Harness is the first-party open-source option when you specifically want DeepSeek's plugin-first runtime and are comfortable with a developer preview. A mature editor or coding-agent product may fit better when stability, enterprise controls, or a particular interface matters more than replacing runtime components.
What is harness and how does it work?
In AI coding, a harness is the software around a model that supplies instructions, tools, context, permissions, persistence, and an interaction surface. It receives a task, prepares a model request, executes allowed tool calls, records what happened, and continues until the task stops or needs input.
Is there a DeepSeek coding plan?
DeepSeek Harness is an open-source agent harness, not a “coding plan” subscription. Running it may still involve separate model API credentials, infrastructure, or third-party service costs. Check the current terms and pricing of every provider you configure.
What does harness mean?
“Harness” means the control and integration layer that makes a model usable as an agent. Like a test harness around code, it supplies inputs, connects capabilities, observes outputs, and enforces operating boundaries.
Explore plugins
Use the directory to compare categories, source records, repository status, and maintenance activity before opening a candidate repository.