DeepSeek Harness vs Claude Code: An Honest Architecture, Model and Price Comparison

DeepSeek Harness and Claude Code solve the same problem — turning a language model into a working agent — but they are built on opposite bets, and the source code on GitHub makes the difference visible in a way a closed product never can.

Diagram of the DeepSeek formula: model plus harness layer with tools, context, loop and UI equals a working agent

This site, DSH Field Guide, is an independent community resource covering DeepSeek Harness; it is not affiliated with, endorsed by, or operated by DeepSeek or Anthropic, and DeepSeek, DeepSeek Harness and Claude Code remain the trademarks of their respective owners. With that out of the way: dsh is an open, MIT-licensed plugin runtime where even the agent loop itself can be swapped out, while Claude Code is a closed, mature product with the widest set of surfaces and extensions built around a fixed loop that stays where Anthropic put it. There is also a twist worth reading to the end for — DeepSeek Harness can run Claude Code as a subagent, which makes the two tools competitors and collaborators at the same time.

The short answer: two different bets

DeepSeek’s own framing is a formula: Agent = Model + Harness. The agent harness layer is everything except training the model itself — task planning, tool calls, code execution, context management, sessions, permissions, the interface. That is also why people searching “harness” land on horse tack or eval frameworks by accident; on this site, agent harness always means the runtime wrapped around a model. Claude Code is an agent harness too in that sense — it is just a closed, productized one.

DeepSeek HarnessClaude Code
LicenseMIT, full source publicSource not published
StatusDeveloper preview, 0.1.2-rc.1Public since Feb 2025, general availability since May 2025
ModelsDeepSeek direct, plus any OpenAI-compatible endpointAnthropic models (also via Bedrock, Vertex)
ExtensibilityEverything is a plugin, including the loopMCP, skills, hooks, subagents around a fixed loop
InterfacesWeb UI, TUI, CLI, headless, Python/TS SDKTerminal, IDEs, desktop, web, mobile, Slack, CI
BillingFree software, pay per tokenIncluded in a Claude subscription or paid API

DeepSeek Harness is an independent open-source project; this comparison draws only on the public repository, official docs and pricing pages of both sides.

Architecture: plugins on Cordis vs extensions around a fixed loop

The two products answer the same design question — how much of the agent should be replaceable — in opposite ways, and the answer shapes everything else in this comparison, from pricing model to who can debug a bad run.

Everything is a plugin

dsh’s slogan is literally “Everything is a Plugin.” Models, tools, skills, sessions, sandboxes, filesystems, the run loop, orchestration and the UI are all plugins, assembled at startup in layers: first the bundles listed in a profile, then that profile’s patch file, then a home-level patch, then any --patch overlay. Running dsh --profile web --dump-config prints the tree that actually got assembled, and any printed entry can be overridden with your own patch. There is no privileged core underneath that needs special-casing — extending dsh means hanging a new plugin next to the others.

Comparison panel: detachable plugins around the Cordis core versus extension points clipped onto a fixed agent loop

What Cordis guarantees

Underneath that plugin tree sits Cordis, an independently developed open-source meta-framework the dsh repository vendors in, described in detail in the accompanying arXiv preprint on spatiotemporal composability. It gives two guarantees: unloading a component fully undoes every effect it registered, and dependencies between components are declared and reactively managed rather than hard-wired. In practice, a plugin can be removed at runtime without restarting the process and without leaving orphaned state behind — the same discipline the framework’s author built into the Koishi chatbot framework it originated from.

How Claude Code extends

Anthropic documents four extension points for Claude Code, per the Claude Code documentation: MCP, an open-source standard for connecting AI tools to external data sources and APIs; skills, which package a repeatable procedure — a checklist, a multi-step workflow — into something Claude loads on demand instead of pasting into chat each time; hooks, user-defined commands that fire automatically at specific points in Claude Code’s lifecycle, before or after a tool runs; and subagents, isolated workers a session can delegate a focused task to and get a summary back. Add a CLAUDE.md file read at session start and the Agent SDK for building your own agents, and the toolkit is genuinely deep — but it is built around the loop, not through it. You cannot swap the loop itself, and you cannot read its source to see how it works.

Which approach wins

It depends on what you actually need an agent for. If you write code and want it to work out of the box, Claude Code’s extension layer already covers nearly every case, and loop-level replaceability never comes up. If you are researching harnesses themselves, benchmarking models fairly, or building your own product on top, that replaceability is the entire reason to reach for the dsh harness.

Model lock-in: one vendor vs any endpoint

DeepSeek Harness is not locked to DeepSeek

The model adapters live under packages/llm. @deepseek-ai/dsh-llm-deepseek is the direct DeepSeek adapter, with a deepseek-official route, a thinking mode, configurable reasoning effort, and image input for vision models. @deepseek-ai/dsh-llm-pi-ai is a multi-provider adapter built on @earendil-works/pi-ai: a route can inherit the endpoint, protocol and model catalog of any pi-ai provider, or describe an OpenAI-compatible gateway or self-hosted server directly in config, no code changes needed, with OAuth login supported. That also means the DeepSeek Harness runtime runs fine against local models via Ollama, vLLM, LM Studio or llama.cpp.

Split diagram: one runtime bound to a single vendor endpoint versus one runtime fanning out to DeepSeek, OpenRouter, Ollama, vLLM and local models

Claude Code runs Claude

Claude Code is built for Anthropic’s models. Bedrock and Vertex are supported, but those are delivery channels for the same Claude models, not multi-provider support — a deliberate product choice rather than an oversight, since the agent harness and model are developed together and some of Claude Code’s quality comes precisely from that pairing. The relationship runs the other way too: DeepSeek’s own documentation notes its models can be plugged in as a backend model inside Claude Code, GitHub Copilot and OpenCode without a line of code.

The twist: DeepSeek Harness runs Claude Code as a subagent

Two official packages

@deepseek-ai/dsh-subagent-claude-code registers a subagent provider under a profile name (claude-code by default) that launches the real Claude Code CLI as a child process, in the delegating session’s working directory, through the official Claude Agent SDK. It installs as a Profile Bundle, which brings a pinned Agent SDK version and a compatible CLI build along with it — your own Claude settings and authorization stay in charge, dsh does not substitute them.

Architecture diagram of DSH passing context to Claude Code and Codex subagents and merging their results

@deepseek-ai/dsh-subagent-codex does the equivalent for Codex: it launches the real Codex binary through the official app-server protocol (app-server --stdio), opens a one-off thread, and sends it a single self-contained task. Codex’s own configuration and authorization stay in charge there too.

How to try it

The commands from the docs: dsh plugin --profile <name> add @deepseek-ai/dsh-subagent-claude-code, then dsh --profile <name>; removing it is dsh plugin --profile <name> remove @deepseek-ai/dsh-subagent-claude-code. As of 0.1.2-rc.1, models for the Claude Code and Codex subagents are configured separately, and the caller can set provider, model, reasoning effort and max output length per subagent. Worth stating plainly: you still need your own working Anthropic subscription or API key — dsh is not routing around that cost, only orchestrating it.

Why this matters for the comparison

Normally a comparison like this assumes you pick one tool. Here that framing breaks down: the dsh harness is simultaneously Claude Code’s competitor and its orchestrator. The better question is not “which one,” but “which one holds the top level of a given task.” And it cuts only one way — the fact that dsh can launch someone else’s agent says nothing about the quality of its own loop, and the actual work inside a delegated task is still done by Claude Code.

Where Claude Code is genuinely stronger

Maturity and stability

Claude Code has been a production product publicly available since February 2025, with backward compatibility and vendor support behind it. DeepSeek Harness, which went public on 13 August 2026, is as of this writing still developer preview 0.1.2-rc.1, and its README warns in capital letters that breaking changes are coming. Releases ship almost daily. For solo experimentation that pace is a feature; for a team with its own release cycle, it is a risk that has to be priced in.

Surfaces

Claude Code runs in the terminal, in VS Code and Cursor, in JetBrains IDEs, in a desktop app, in the browser, in mobile apps, in Slack, and in CI through GitHub Actions and GitLab CI. The dsh harness has fewer surfaces: a web UI on port 3080, a TUI, a CLI, a headless mode, and Python and TypeScript SDKs. If your work already lives inside an IDE or Slack, the gap is immediate.

Governance and support

Claude Code sits behind commercial support, enterprise plans and a predictable escalation path. DeepSeek Harness has issues and pull requests disabled on its repository; feedback goes through GitHub Discussions and Discord instead. That is normal for a preview release, but it is not a service-level agreement.

Where DeepSeek Harness is genuinely stronger

You can read and replace everything

MIT licensing and a fully open source tree mean behavior does not have to be guessed at — it can be read. Loop-level replaceability gives you something closed products cannot: you can swap in your own loop, your own context compaction, your own sandbox, and leave the rest untouched.

Transparency of the run

Every run is written to an append-only log — system prompts, reasoning, tool calls and their results, subagent planning, every context injection. Resume, fork, search and replay all work on top of that log, and the web interface surfaces live stats most harnesses hide entirely: tokens per second, cache hit rate, turn count, wall-clock time.

DeepSeek Harness is now in developer preview for agent harness developers worldwide.DeepSeek API documentation

That line, from DeepSeek’s own API documentation, is a fair summary of where the project currently sits — a preview built for people who want to see inside the machine, not a finished consumer tool yet.

Honest model measurement

The Minimal mode strips the dsh harness down to bash and a string-replace editor, on purpose, so it measures the underlying model rather than the scaffolding around it. Four modes exist in total: Standard, Code, Minimal and Creator.

Cost: subscription vs metered tokens

What you pay for DeepSeek Harness

Installing it, as covered in our DeepSeek Harness guide, is a single npx @deepseek-ai/dsh web command that requires Node.js 22.19 or newer per the project’s Node.js runtime requirements, and it costs nothing on its own — you pay for DeepSeek API tokens. But that side of the ledger changed materially on 16 August 2026, three days after DeepSeek Harness went public on 13 August 2026: peak cache-miss input pricing for V4-Pro rose from $0.435 to $1.32 per million tokens — roughly a threefold increase — with some cache-hit categories rising more than tenfold. Off-peak input still runs cheaper at $0.66 per million. Our separate DeepSeek Harness pricing breakdown covers the full table, but the headline is that the “dsh is simply cheap” argument needs an asterisk it did not have at launch.

Bar chart of DeepSeek V4-Pro input price per million tokens before and after the 16 August 2026 increase

What you pay for Claude Code

Claude Code is bundled into a Claude subscription and is not part of any free tier. Pro runs $17/month billed annually or $20 month to month; Max starts at $100/month; Team is $20 per seat annually, with a Team Premium tier at $100 per seat; Enterprise starts at $20 per seat. Paying per API key through the Anthropic Console is the alternative to a seat.

Comparing honestly

Comparing a flat subscription to metered tokens directly is misleading: one caps your spend and your usage together, the other bills exactly what you use and caps only your budget. dsh also tends to burn more tokens per task than closed competitors, which eats into the lower headline price. The only honest comparison is running your own representative task through both and reading the actual invoice.

How they fit among the other harnesses

Reaction to the launch on Hacker News was loud — the thread collected 747 points and 314 comments. The praise centered on exactly the transparency described above: commenters liked being able to inspect, replay and fork the append-only session log, something impossible with closed agents whose reasoning traces are encrypted or simply not exposed. The criticism was just as specific: a real risk of plugin ecosystem fragmentation, with commenters drawing parallels to Eclipse and VS Code’s early plugin wars; skepticism about choosing Node.js over Rust for a performance-sensitive agent runtime; and pushback on leaning so heavily on markdown instructions rather than deterministic checks for agent behavior.

Checklist of six cards weighing open source, any model and a readable log against maturity, surfaces and support

Everything above draws only on the official DeepSeek Harness site and the project’s own documentation; treat any comparison that leans on marketing blogs instead of the primary source with suspicion. The dsh harness is not the only open contender either. Codex CLI from OpenAI is Apache-2.0 licensed, written in Rust, and runs on OpenAI’s models, with its cloud component kept closed. OpenCode is MIT-licensed and written in TypeScript with support for dozens of providers, but its agent loop is not itself a swappable plugin the way dsh’s is. Pi, from Earendil, is a deliberately minimal MIT harness with four run modes and no built-in permission system. Newer entrants like Reasonix sit further down the maturity curve still. On an openness-and-replaceability axis, the dsh harness sits at one edge; on a maturity-and-surface-coverage axis, Claude Code sits at the other.

One more DeepSeek-specific detail worth flagging: unlike most agent harnesses, which are model-agnostic by design, DeepSeek fine-tuned its own V4 models specifically against this harness layer — the model and the runtime were built as a pair, which is closer to how Anthropic ships Claude Code than to how most open agent projects operate.

FAQ