AllDSH
中文

beginner · 4 min read · updated 2026-09-08

What is DeepSeek Harness? A plugin-first framework

DeepSeek Harness (DSH) is an open-source agent framework where everything is a plugin. Learn how its Cordis runtime, plugin seams and preview cycle work.

Written by Chiyu · Maintainer and editor

Maintains this directory: checks every install command against the published package, assigns verification levels, runs the automated scans, and writes the guides. ·

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 model adapter, the tool registry, the session log, and the interface you type into. DSH runs on the Cordis plugin runtime, where each extension registers through an apply(ctx) entry point, declares the harness releases it was tested against, and is installed into a named profile rather than globally. Because the shell itself is assembled from plugins, an extension can replace a capability rather than only add one. This directory indexes those plugins and records what has been verified about each.

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 the harness versions they were tested against (recorded on this site as dshTarget). When you upgrade the harness, a plugin written against an older release 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.

Sources & references

The technical claims on this page rest on the primary documents below. Each link is followed so it can be checked directly.

  1. [1]deepseek-ai/deepseek-harness — GitHubUpstream repository for DeepSeek Harness, the Cordis runtime and the plugin loading model.
  2. [2]@deepseek-ai/dsh on npm — npmPublished harness package, including the release tags our dshTarget field tracks.
  3. [3]Model Context Protocol — AnthropicSpecification for the MCP bridges several listed plugins implement.
  4. [4]About semantic versioning — npm DocsThe versioning convention behind the compatibility and dshTarget guidance.
  5. [5]A Programming Paradigm for Spatiotemporal Composability — arXivThe paper behind Cordis, the runtime DeepSeek Harness is built on: revertible effects and reactive coeffects.

All links last verified 2026-09-11

ESC

Type to search the index. Built at deploy time by Pagefind.