DeepSeek Harness on GitHub: Node Version Check + Plugin Config Generator
DeepSeek Harness (repo deepseek-ai/deepseek-harness, CLI name dsh) landed on GitHub as a developer preview in August 2026. Its package.json sets a specific Node.js range, and its plugin config format assumes you already know the include plugin's entry shape. Check your Node version and build a starting config below.
Published August 17, 2026. By Jim Liu. Facts below are read from the deepseek-ai/deepseek-harness repository and its docs, linked throughout.
TL;DR on DeepSeek Harness (GitHub)
- What it is: an open-source, MIT-licensed agent framework from DeepSeek where the model adapter, tools, sessions and web UI are all separate plugins, not one integrated app.
- Quick start:
npx @deepseek-ai/dsh webstarts the web UI on port 3080, no separate install step. - Node gate: the repo's package.json declares
^22.19.0 || >=24.0.0- Node 23 and early Node 22 builds are excluded. - Still a preview: the project says compatibility-breaking changes are expected, so treat a generated config as a starting point, not something to pin unversioned.
DeepSeek Harness Node check and plugins.yml generator
Run node --version to check yours. Tested against the engines.node field the repo publishes: ^22.19.0 || >=24.0.0.
plugins:
- name: @deepseek-ai/dsh-web
- name: @deepseek-ai/dsh-llm-deepseek
- name: @deepseek-ai/dsh-tools-fs
- name: @deepseek-ai/dsh-sessions
- name: @deepseek-ai/cordis-plugin-include
Matches the include plugin's documented shape: a list of entries under plugins, each entry's name a module specifier. Save as dsh.plugins.yml next to where you run dsh, or pass its path with the include plugin's own config flag - check the current docs, since this is a developer preview.
Next step
Once dsh is running against the DeepSeek API, the next real question is the token bill for an agent loop that runs unattended all day, and how that compares to what Claude Code or a hosted harness would cost for the same workload.
What DeepSeek Harness actually is
DeepSeek Harness is DeepSeek's own agent framework, published as a developer preview on GitHub under the MIT license. The project's stated organizing idea is "everything is a plugin": the inference adapter, the tool registry, session persistence, the agent control loop and the web interface are each separately swappable pieces, rather than one integrated binary the way a coding-agent CLI usually ships. That plugin-first design is the reason the config generator above exists at all - there is no single settings screen, only a list of plugin entries you assemble yourself.
Getting it running does not require cloning the repository. The documented quick path is npx @deepseek-ai/dsh web, which starts the bundled web UI on port 3080. Building from source instead means cloning the repo, then pnpm install and pnpm run build before pnpm dsh web - the path people take when they plan to write their own plugin rather than just use the ones DeepSeek ships.
Source: deepseek-ai/deepseek-harness README and install instructions.
Why the Node version gate exists
The repository's package.json declares engines.node as ^22.19.0 || >=24.0.0. Read literally, that means the 22.x line only counts from patch 22.19.0 onward, all of Node 23 is outside the range since 23 was never an LTS release, and 24.0.0 and everything after it is fine. A perfectly normal looking "Node 22" install can still fail this check if it is an early 22.x build from before the floor was raised.
The checker above parses whatever version string you enter and tests it against both ranges, rather than assuming a single cutoff. Package managers enforce engines inconsistently - npm only warns by default, while pnpm can be configured to fail the install outright - so a Node version outside this range does not always stop you at install time.
Source: the engines.node range shown in the repository's package.json, cross-checked against the install guide referenced in the deepseek-ai/deepseek-harness repo.
Cordis: the plugin runtime underneath
Cordis is the dependency-injection framework DeepSeek Harness is built on. Every capability - tools, the LLM adapter, file access, even the agent loop itself - is a plugin mounted into a shared context object at runtime. A plugin claims a stable key on that context, such as ctx.tools or ctx.llm, and other plugins look up services by that key rather than importing a specific implementation directly. That indirection is what lets the DeepSeek API adapter be swapped for a different model provider without touching the filesystem or shell plugins around it.
In practice this means the plugin list you generate above works less like toggling settings on a fixed app and more like composing the app itself out of parts. Leave out the DeepSeek API adapter plugin and there is no LLM adapter claiming ctx.llm; the harness starts, but the agent loop has nothing to call.
Source: Cordis architecture description and the ctx.<key> service pattern, from the deepseek-harness Cordis tutorial and primer docs in the repository linked above.
How the plugin config file is read
Plugin lists load through the include plugin, published as @deepseek-ai/cordis-plugin-include. It reads a YAML or JSON file and turns it into loader entries, and will write updates back to that file when it is writable - so a config built by hand and one generated by dsh's own tooling can both round-trip through the same file. Each entry's name is a module specifier: either a relative path to a local plugin file, or an npm package name for a published one.
One detail that catches people the first time: the include plugin has to list itself, or nothing else in the file gets mounted. The generator above flags this if you uncheck it.
Source: the include-plugin config format described in the cordis-plugin-include docs, linked from the deepseek-ai/deepseek-harness repository.
How dsh differs from an MCP server setup
| Aspect | DeepSeek Harness plugin | MCP server |
|---|---|---|
| What it mounts into | The harness's own Cordis context, in-process | An MCP client, over the separate MCP protocol |
| Best for | Replacing a core piece of dsh itself - the LLM adapter, the sandbox, the web UI | Adding one tool that other MCP-compatible clients can reuse without a dsh-specific rewrite |
| Not ideal for | A tool you also want Claude Code or Cursor to call, since it is dsh/Cordis-specific | Swapping out dsh's own agent loop or LLM adapter - MCP standardizes tool calls, not the harness internals around them |
| Config shape | A module specifier in the include-plugin's YAML/JSON list | A command/URL entry in the client's own MCP config file |
If you are trying to add a tool an MCP client already talks to, the MCP server boilerplate generator targets that case instead of this one.
How this page was built
The Node version range, the install commands, the Cordis service-key pattern and the include-plugin's config shape are all read directly from the deepseek-ai/deepseek-harness repository and its linked docs on August 17, 2026, not inferred from how similar tools usually work. The plugin catalog in the generator lists the categories the docs describe - a web UI, a model adapter, filesystem and shell tools, session persistence and the include loader itself - with each one's module specifier taken from the same sources.
What this page deliberately does not claim: exact GitHub star or fork counts, since those change by the hour on a project this new and any number printed here would be stale within a day. It also does not claim to have benchmarked dsh against Claude Code or any other harness - this is a developer preview, and a fair benchmark needs a settled release to compare against.
Frequently asked questions
What is DeepSeek Harness on GitHub?
DeepSeek Harness (repo name deepseek-harness, CLI name dsh) is an open-source agent framework DeepSeek published as a developer preview on GitHub in August 2026, MIT licensed. Its stated design is "everything is a plugin": the model adapter, tool registry, session store, sandbox and even the web UI are separate plugins mounted into a shared runtime called Cordis, rather than one integrated app the way Claude Code ships.
How do I install DeepSeek Harness?
The documented quick path is npx @deepseek-ai/dsh web, which starts the web UI on port 3080 without a separate install step. Building from source means cloning the repo, then running pnpm install and pnpm run build before pnpm dsh web. Either path needs a Node version inside the ranges the checker above tests.
What Node.js version does DeepSeek Harness require?
The repository's package.json declares engines.node as ^22.19.0 || >=24.0.0. That excludes early Node 22 builds below 22.19.0 and all of Node 23, since 23 was never an LTS line. Node 20 and earlier are also outside the declared range.
What is Cordis in DeepSeek Harness?
Cordis is the dependency-injection runtime underneath the harness. Every capability - tools, the LLM adapter, file access, the agent loop itself - is a plugin mounted into a shared context object. A plugin claims a stable key such as ctx.tools or ctx.llm, and other plugins look up services by that key instead of importing a specific implementation, which is what lets a plugin be swapped without touching the plugins around it.
How does DeepSeek Harness load its plugin config?
Through the include plugin (package @deepseek-ai/cordis-plugin-include), which reads a YAML or JSON file and turns it into loader entries, writing updates back to that file when it is writable. The file is a list of entries where each entry's name is a module specifier - a relative path or an npm package name - and the loader mounts every entry in the list, including the include plugin itself.
Is DeepSeek Harness stable enough for production use?
No, and the project says so directly: it is a developer preview with compatibility-breaking changes expected as it iterates. Treat a generated config as a starting point to test against a specific commit, not as something to lock into a deployment pipeline unversioned.
Related tools and guides on OpenAI Tools Hub
DeepSeek V4-Flash vs V4-Pro Cost Review
The API prices dsh's DeepSeek adapter actually bills against.
Hermes Agent System Requirements Checker
A different open-source agent framework, sized for local hardware instead of Node version.
MCP Server Boilerplate Generator
For adding a tool other MCP clients can reuse, instead of a dsh-only plugin.
LLM API Token Cost Calculator
Price an agent loop that calls the DeepSeek API all day.
Claude Code MCP Config Generator
The equivalent config generator for the harness dsh is positioned as an alternative to.
Hermes Agent Features Walkthrough
What a settled, non-preview open-source agent framework looks like once it ships tools.
About the author
Jim Liu
Jim Liu runs the OpenAI Tools Hub review portfolio and tracks new open-source agent frameworks from their first developer preview, usually by reading the repo itself rather than the launch posts about it. More about how this site tests things.