Stackness
DeepSeek Harness vs Claude Code: which harnesses lock you to one model, and what breaks when you switch

DeepSeek Harness vs Claude Code: which harnesses lock you to one model, and what breaks when you switch

DeepSeek Harness vs Claude Code, as of 6 October 2026: DeepSeek Harness is a free, MIT-licensed developer preview that drives DeepSeek, Anthropic, OpenAI, Kimi or GLM models, and its desktop app for macOS and Windows shipped with the v0.2 preview on 30 September. Claude Code is Anthropic's proprietary agent and supports Claude models only. ZCode, Hermes Agent and Pi 1.0 are not tied to one vendor's model either. What ties you to a harness is the layer around the model: plugins, hooks, session files and config, where each one has its own format.

Between 20 September and 1 October, Z.ai open-sourced ZCode, Nous Research shipped Hermes Agent v0.21.5, DeepSeek released Harness Desktop and Earendil released Pi 1.0. Two switchers grew alongside: CC Switch at 140,489 GitHub stars, and magpie at 5,436 thirteen days after its repo was created. Both point one harness at another vendor's model. A harness here is what the harness post defined: everything in a coding agent except the model.

What is DeepSeek Harness and what does its plugin architecture do?

DeepSeek Harness is DeepSeek's open-source agent harness, in developer preview since 13 August 2026. Everything in it is a plugin: models, tools, skills, sessions, sandboxes, the agent loop and the UI. Plugins are npm packages built on Cordis, a framework in which a plugin can be loaded and removed at runtime with its side effects reverted.

The repo has no official terminal UI: dsh opens the web UI at 127.0.0.1:3080, or runs a job headless, over the Agent Client Protocol or as an SDK. All 25 releases, up to 0.2.1-alpha.1 on 3 October, are marked prerelease, and the README warns in capitals of compatibility-breaking changes. The v0.2 announcement added the desktop apps, a plugin manager and an experimental Creator mode in which the agent writes plugins.

How the plugin layer works:

  • Settings live in ~/.dsh/profiles/<name>/cordis.patch.yml, next to a package.json listing the plugin bundles.
  • The plugin interfaces are not stable: 0.2.1-alpha.1 removed one plugin and split an extension point in two.
  • Claude Code and OpenAI Codex can run inside it as subagents.
  • An experimental Claude Code mods bridge landed on 3 October. DeepSeek says it checks that the mods API is roughly a subset of its own plugin API, and does not aim for full compatibility.

A 26 August arXiv paper from Peking University and DeepSeek-AI describes Cordis's design. Models from other vendors go through a package built on @earendil-works/pi-ai, Pi's model library. DeepSeek says about 60% of the harness's users on its official API run third-party plugins, and publishes no method.

DeepSeek Harness Claude Code
Licence MIT Proprietary
Status Developer preview, every release a prerelease Stable, 2.1.291 on 6 October
Interfaces Web UI, desktop app, headless, ACP, SDK Terminal, IDE, desktop, web
Models DeepSeek, Anthropic, OpenAI, Kimi, GLM, any compatible endpoint Claude only, by support policy
Extensions npm Cordis plugins in a profile .claude-plugin/plugin.json: skills, agents, hooks, MCP, mods
Instruction files AGENTS.md and CLAUDE.md CLAUDE.md, AGENTS.md only when no CLAUDE.md exists
Skill folders .dsh/skills, .agents/skills .claude/skills
Sessions JSONL event log, Zstandard-compressed by default JSONL per session in ~/.claude/projects
Price Free, models billed per token Pro $20 a month, Max from $100

DeepSeek's default deepseek-flash costs $0.15 per million input tokens and $0.60 per million output off-peak, and double that at peak hours, per its price page.

Every comparison ranking for this query tested the August preview, and they disagree. DataCamp measured Claude Code faster on Windows, 55.0 seconds against 125.4, with identical patches. Nate Herk, with Claude Opus 5 in both, had DeepSeek Harness finish an analytics workbook in about 3 minutes against 17, and rated Claude Code's result deeper. Each is one author on one machine.

Which coding agent harnesses only run their own vendor's model?

Almost none, going by the code. Claude Code is single-vendor by policy: Anthropic's gateway docs say it "doesn't support routing Claude Code to non-Claude models through any gateway", while DeepSeek and Z.ai publish guides for doing it. Gemini CLI and Mistral Vibe document only their own vendor's models. Every other lab harness I checked takes other providers.

Maker Harness Licence Other vendors' models
Anthropic Claude Code Proprietary Not supported, though gateways work
Google Gemini CLI Apache 2.0 Not documented
Mistral Mistral Vibe Apache 2.0 README requires a Mistral key
OpenAI Codex Apache 2.0 Yes, custom providers, Ollama, LM Studio
DeepSeek DeepSeek Harness MIT Yes
Z.ai ZCode Apache 2.0 Yes, built-in templates for OpenAI, Anthropic, DeepSeek, Kimi, xAI
Moonshot Kimi Code MIT Yes, configurable
Alibaba Qwen Code Apache 2.0 Yes, OpenAI, Anthropic and Gemini protocols
xAI Grok Build Apache 2.0 Yes, custom endpoints
Nous Research Hermes Agent MIT Yes
Earendil, not a model lab Pi MIT Yes, more than 20 providers

Sources: each project's README and docs, read 6 October.

The coupling is softer than a whitelist. It comes from three places:

  • Subscriptions. Anthropic's terms bar third parties from routing Free, Pro or Max credentials, so a Claude plan stays in Claude Code. Z.ai's GLM Coding Plan is limited to listed tools and gives ZCode "1.5× Usage".
  • Gateways. ZCode's NOTICE.md says requests to the two Coding Plan endpoints are re-sent to the ZCode gateway, auth headers included, without asking each time.
  • Tuning. ZCode calls itself the official GLM-5.3 harness, and DeepSeek's v0.2 post says the harness will be optimised and trained alongside DeepSeek's models.

Which harnesses are model-agnostic, and what does that cost?

OpenCode and every harness in the table above except Claude Code, Gemini CLI and Mistral Vibe take other providers. The cost shows where the protocols meet: an Anthropic-compatible endpoint ignores some of what Claude Code sends, caching and compaction need setting by hand, and a subscription rarely comes with you.

DeepSeek publishes the most complete field table for its Anthropic-compatible API:

  • Ignored: cache_control, the is_error flag on tool results, the thinking budget_tokens, the anthropic-beta header and mcp_servers.
  • Not supported: document, redacted_thinking and search_result blocks, and code-execution and MCP tool results.
  • Model names: an unknown name maps silently to deepseek-flash.

DeepSeek runs its own automatic prefix cache, so dropping cache_control costs nothing there. Behind a gateway that drops it with no cache of its own, Anthropic's protocol page warns that "the conversation bills as uncached input on every turn". Pointing ANTHROPIC_BASE_URL at another host also turns MCP tool search off by default and disables Remote Control.

Each vendor's guide sets the compaction window by hand. DeepSeek's Claude Code guide sets the auto-compact window to 786,432 tokens, and Z.ai's and Moonshot's set 1,000,000. Z.ai says it verified compatibility on Claude Code 2.0.14; the current release is 2.1.291.

Model habits are the last cost. Armin Ronacher, co-founder of Earendil, explained Pi 1.0's turn to MCP on Hacker News: the models "are trained on their respective harnesses", so a neutral harness adapts to each model's habits.

What breaks when you move a session or a plugin between harnesses?

Instruction files and SKILL.md skills carry over with little loss. Plugins, hooks and sessions do not: every harness stores sessions in its own schema, and no vendor imports another's. Plugin compatibility runs one way, toward Claude Code's format. ZCode, Codex and DeepSeek Harness read parts of it, and Claude Code reads none of theirs.

Layer Carries over? Detail
Instructions Mostly Most read AGENTS.md, but Claude Code only without a CLAUDE.md, Gemini CLI only after a setting, and Hermes loads only the first file it finds
Skills Format yes, folder no Claude Code reads .claude/skills; Codex, Pi, DeepSeek Harness and ZCode read .agents/skills; OpenCode reads both
MCP servers Re-entered .mcp.json, TOML in Codex, opencode.json, ~/.pi/agent/mcp.json, Cordis config
Hooks Rarely 33 events in Claude Code, 12 in Codex, 11 renamed ones in Gemini CLI, 7 with Claude's names in ZCode
Plugins One way ZCode loads .claude-plugin/plugin.json, Codex accepts "Claude-compatible manifests"
Sessions Third-party tools, lossy JSONL in Claude Code, Codex, Pi and DeepSeek Harness, each a different schema; SQLite in ZCode and Hermes
Config No settings.json, config.toml, opencode.json, cordis.patch.yml, config.yaml

Sources: each harness's docs on 6 October, and the Claude Code hooks reference.

The one cross-vendor plugin spec, Agent Plugins 1.0.0, published on 6 August by a committee from Amazon, Cursor, Microsoft, OpenAI and Vercel, covers skills and MCP servers and leaves hooks, commands and agents to each client. Anthropic is not on the committee, and Claude Code is not a listed client. Hermes Agent's import command copies instructions, Bash permission rules, MCP servers and skills from Claude Code or Codex, and skips slash commands.

For sessions, the one converter I found is session-migrate, an MIT tool by Xing Han Lu: 18 harnesses and 324 routes in v0.11.0 of 11 September, not including DeepSeek Harness or ZCode. Its README says signed or private thinking is never transferred, nor are "Auth, hooks, policies, MCP, and runtime config", and it redacts no secrets. In one test with an August version, Jangwook Kim converted a 90-record Claude Code session for seven harnesses, and each target dropped 54 to 57 records, 9 of them thinking blocks.

Earendil's session portability post of 30 July explains why no converter can be complete: providers return encrypted reasoning and server-side state the client never holds.

What a switch costs, layer by layer:

carries over    AGENTS.md, SKILL.md skills (link the folder for each harness)
re-enter        MCP servers, provider, model, context window
rewrite         hooks, plugins, slash commands
leave behind    session history, signed thinking, the prompt cache

That makes a skill the safest home for a workflow you want to keep, the approach in the reusable agent skills move.

Why do switchers like CC Switch and magpie exist?

Every harness stores the same three values, endpoint, key and model, in a different file, and for many users the cheapest way into Claude Code or Codex is a third-party coding plan or API relay. CC Switch rewrites those files from a desktop app. magpie also runs a local gateway that translates between the Anthropic, OpenAI and Gemini APIs.

CC Switch, MIT-licensed and by Jason Young, manages Claude Code, Codex, Gemini CLI, Grok Build, OpenCode, Hermes, Pi and others, with their MCP servers, skills and prompt files. Its sponsors are mostly API relays and Moonshot's Kimi, and its quota cards track the Kimi, GLM and MiniMax coding plans. Its v4.0 notes of 4 October record the cost of switching: before v4.0, a switch rewrote the whole file, so "Hooks, plugins and permissions you added to settings.json, or MCP servers you added to config.toml, were either lost on switch or absorbed into one provider's snapshot." v4.0 is a preview; the stable release is v3.20.4 of 22 September.

Its changelog and routing guide list two more seams: Codex groups session history by provider, so a switch can hide earlier sessions, and Claude Code compacts a routed provider at a default 200K tokens, whatever the model's real window.

magpie, MIT-licensed and by yetone, lists 43 agents, DeepSeek Harness, ZCode, Hermes Agent and Pi among them. Its gateway on 127.0.0.1:3425 translates between OpenAI Chat, OpenAI Responses, Anthropic Messages and Gemini, "streaming, tool calls and reasoning included". To use a Claude subscription in other agents, its reference says it drives the real claude binary so the request "stays out of Anthropic's system-prompt classifier". That sits close to the line in Anthropic's terms quoted above, so treat it as a risk to your account.

Which harness slot does each of these take in a stack?

Claude Code, Codex, Pi, OpenCode, DeepSeek Harness and ZCode take the coding agent harness slot, the loop, tools and context around a model. Hermes Agent is a general agent with messaging gateways and scheduled jobs that can also code. CC Switch and magpie sit between the harness and the model provider, and Cordis sits inside DeepSeek Harness.

Tool Slot Where it runs
Claude Code Coding agent harness Terminal, IDE, desktop, web
DeepSeek Harness Coding agent harness Web UI, desktop
ZCode Coding agent harness Desktop, web, terminal
Pi Coding agent harness, minimal core Terminal
Hermes Agent General agent that can code CLI, desktop, chat apps, cron
CC Switch Switch layer: rewrites provider config Desktop
magpie Switch layer: config plus protocol gateway Menu bar, local gateway

For scale, in the week to 4 October npm counted 14.8M downloads of Claude Code, 5.2M of Pi and 452k of DeepSeek Harness. CI installs and auto-updates inflate all three, and native installers are not counted.

On Stackness, as of 6 October 2026, 8 real profiles list Claude Code, 3 list OpenCode, 2 list Codex and 1 lists Pi (data sources). Both Codex profiles and 2 of the 3 OpenCode profiles also list Claude Code. The one Pi profile pairs it with Kimi K3, HY3 and LM Studio, with no Claude model. Nobody lists DeepSeek Harness, ZCode, Hermes Agent or CC Switch yet. The numbers are small. The AI coding tools developers list on Stackness and the ones rising this month update as profiles change.

Key numbers

  • 13 August 2026: DeepSeek Harness developer preview; 30 September: v0.2 with desktop apps for macOS and Windows (DeepSeek).
  • 1 October 2026: Pi 1.0 ships under MIT (Earendil).
  • 8 of the 11 harnesses in the table above take other vendors' models, as of 6 October 2026; Claude Code, Gemini CLI and Mistral Vibe are the exceptions.
  • 33, 12 and 7 hook events in Claude Code, Codex and ZCode, read 6 October 2026 from each project's docs.
  • 18 harnesses and 324 routes in session-migrate v0.11.0, 11 September 2026, none carrying signed thinking, hooks or MCP config (README).
  • 140,489 GitHub stars for CC Switch on 6 October 2026, whose v4.0 preview stopped provider switches wiping hooks and plugins (release notes).
  • 8 real Stackness profiles list Claude Code and 0 list DeepSeek Harness, ZCode or Hermes Agent, as of 6 October 2026 (data sources).

Quick answers

DeepSeek Harness vs Claude Code: which should I use? For stable daily work on Claude models, Claude Code: it is a finished product and a Claude plan covers it. DeepSeek Harness is a free MIT preview with breaking changes promised, worth trying for cheap DeepSeek tokens or to write your own plugins.

Is DeepSeek Harness locked to DeepSeek models? No. It ships provider settings for Anthropic, OpenAI, Kimi and GLM and accepts any OpenAI- or Anthropic-compatible endpoint. Claude and ChatGPT subscriptions do not work in it yet; you pay per token or sign in with a DeepSeek account.

Can Claude Code run DeepSeek or GLM models? It can through ANTHROPIC_BASE_URL, and DeepSeek and Z.ai document the setup, but Anthropic does not support it. Some request fields are ignored, and caching, compaction and Remote Control behave differently.

Does a Claude Code plugin work in other harnesses? Partly. ZCode loads .claude-plugin/plugin.json manifests, Codex accepts Claude-compatible manifests and DeepSeek Harness bridges Claude Code hooks. Skills copy over as folders. Session history and most hooks do not.

What is Cordis? The MIT plugin framework DeepSeek Harness is built on. It loads and unloads plugins at runtime and reverts their side effects, and it is not a coding agent.

Tools in this post

and 20 more from this post

Use any of these tools?

Put them on a Stackness profile, say how you use each one and see who pairs them the same way. It takes a couple of minutes.

Show my stack