{"slug": "deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what", "title": "DeepSeek Harness vs Claude Code: which harnesses lock you to one model, and what breaks when you switch", "summary": "DeepSeek Harness, DeepSeek's MIT-licensed open-source agent harness in developer preview since 13 August 2026, drives DeepSeek, Anthropic, OpenAI, Kimi and GLM models, while Anthropic's proprietary Claude Code supports Claude models only, according to a comparison dated 6 October 2026. DeepSeek Harness shipped its macOS and Windows desktop apps with the v0.2 preview on 30 September and released 0.2.1-alpha.1 on 3 October, with all 25 releases marked prerelease and the README warning of compatibility-breaking changes. DeepSeek says about 60% of the harness's users on its official API run third-party plugins, and the company publishes no method for that figure.", "body_md": "# DeepSeek Harness vs Claude Code: which harnesses lock you to one model, and what breaks when you switch\n\nDeepSeek Harness vs Claude Code, as of 6 October 2026: [DeepSeek Harness](https://stackness.dev/tools/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](https://stackness.dev/tools/claude-code) is Anthropic's proprietary agent and supports Claude models only. [ZCode](https://stackness.dev/tools/zcode), [Hermes Agent](https://stackness.dev/tools/hermes-agent) and [Pi](https://stackness.dev/tools/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.\n\nBetween 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](https://stackness.dev/tools/cc-switch) at 140,489 GitHub stars, and [magpie](https://stackness.dev/tools/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](https://stackness.dev/blog/what-is-a-coding-agent-harness-and-which-parts-of-it-actually-change-the-output) defined: everything in a coding agent except the model.\n\n## What is DeepSeek Harness and what does its plugin architecture do?\n\nDeepSeek 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](https://stackness.dev/tools/cordis), a framework in which a plugin can be loaded and removed at runtime with its side effects reverted.\n\nThe [repo](https://github.com/deepseek-ai/deepseek-harness) 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](https://x.com/DeepSeekHarness/article/2105330281389662575) added the desktop apps, a plugin manager and an experimental Creator mode in which the agent writes plugins.\n\nHow the plugin layer works:\n\n- Settings live in `~/.dsh/profiles/<name>/cordis.patch.yml` , next to a`package.json` listing the plugin bundles.\n- The plugin interfaces are not stable: 0.2.1-alpha.1 removed one plugin and split an extension point in two.\n- Claude Code and [OpenAI Codex](https://stackness.dev/tools/codex-cli) can run inside it as subagents.\n- An experimental [Claude Code mods bridge](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/claude-code-mods.md) landed on 3 October. DeepSeek says it checks that the[mods](https://stackness.dev/blog/what-is-a-claude-code-mod-and-where-does-it-sit-next-to-plugins-skills-hooks-and-mcp) API is roughly a subset of its own plugin API, and does not aim for full compatibility.\n\nA 26 August [arXiv paper](https://arxiv.org/abs/2608.25512) 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.\n\n|  | DeepSeek Harness | Claude Code | \n|---|---|---|\n| Licence | MIT | Proprietary | \n| Status | Developer preview, every release a prerelease | Stable, 2.1.291 on 6 October | \n| Interfaces | Web UI, desktop app, headless, ACP, SDK | Terminal, IDE, desktop, web | \n| Models | DeepSeek, Anthropic, OpenAI, Kimi, GLM, any compatible endpoint | Claude only, by support policy | \n| Extensions | npm Cordis plugins in a profile | `.claude-plugin/plugin.json` : skills, agents, hooks, MCP, mods | \n| Instruction files | AGENTS.md and CLAUDE.md | CLAUDE.md, AGENTS.md only when no CLAUDE.md exists | \n| Skill folders | `.dsh/skills` ,`.agents/skills` | `.claude/skills` | \n| Sessions | JSONL event log, Zstandard-compressed by default | JSONL per session in `~/.claude/projects` | \n| Price | Free, models billed per token | Pro $20 a month, Max from $100 | \n\nDeepSeek'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](https://api-docs.deepseek.com/quick_start/pricing).\n\nEvery comparison ranking for this query tested the August preview, and they disagree. [DataCamp](https://www.datacamp.com/blog/deepseek-harness-vs-claude-code) measured Claude Code faster on Windows, 55.0 seconds against 125.4, with identical patches. [Nate Herk](https://x.com/nateherk/article/2091669829883138512), with [Claude Opus](https://stackness.dev/tools/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.\n\n## Which coding agent harnesses only run their own vendor's model?\n\nAlmost none, going by the code. Claude Code is single-vendor by policy: Anthropic's [gateway docs](https://code.claude.com/docs/en/llm-gateway) 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](https://stackness.dev/tools/gemini-cli) and [Mistral Vibe](https://stackness.dev/tools/mistral-vibe) document only their own vendor's models. Every other lab harness I checked takes other providers.\n\n| Maker | Harness | Licence | Other vendors' models | \n|---|---|---|---|\n| Anthropic | Claude Code | Proprietary | Not supported, though gateways work | \n|  | Gemini CLI | Apache 2.0 | Not documented | \n| Mistral | Mistral Vibe | Apache 2.0 | README requires a Mistral key | \n| OpenAI | Codex | Apache 2.0 | Yes, custom providers, [Ollama](https://stackness.dev/tools/ollama) , LM Studio | \n| DeepSeek | DeepSeek Harness | MIT | Yes | \n| Z.ai | ZCode | Apache 2.0 | Yes, built-in templates for OpenAI, Anthropic, DeepSeek, Kimi, xAI | \n| Moonshot | [Kimi Code](https://stackness.dev/tools/kimi-code) | MIT | Yes, configurable | \n| Alibaba | [Qwen Code](https://stackness.dev/tools/qwen-code) | Apache 2.0 | Yes, OpenAI, Anthropic and Gemini protocols | \n| xAI | [Grok Build](https://stackness.dev/tools/grok-build) | Apache 2.0 | Yes, custom endpoints | \n| Nous Research | Hermes Agent | MIT | Yes | \n| Earendil, not a model lab | Pi | MIT | Yes, more than 20 providers | \n\nSources: each project's README and docs, read 6 October.\n\nThe coupling is softer than a whitelist. It comes from three places:\n\n- **Subscriptions.** Anthropic's[terms](https://code.claude.com/docs/en/legal-and-compliance) bar third parties from routing Free, Pro or Max credentials, so a Claude plan stays in Claude Code. Z.ai's[GLM Coding Plan](https://docs.z.ai/devpack/tool/others) is limited to listed tools and gives ZCode \"1.5× Usage\".\n- **Gateways.** ZCode's[NOTICE.md](https://github.com/zai-org/ZCode/blob/main/NOTICE.md) says requests to the two Coding Plan endpoints are re-sent to the ZCode gateway, auth headers included, without asking each time.\n- **Tuning.** ZCode calls itself the official[GLM](https://stackness.dev/tools/glm) -5.3 harness, and DeepSeek's v0.2 post says the harness will be optimised and trained alongside DeepSeek's models.\n\n## Which harnesses are model-agnostic, and what does that cost?\n\n[OpenCode](https://stackness.dev/tools/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.\n\nDeepSeek publishes the most complete [field table](https://api-docs.deepseek.com/guides/anthropic_api) for its Anthropic-compatible API:\n\n- **Ignored:**`cache_control` , the`is_error` flag on tool results, the thinking`budget_tokens` , the`anthropic-beta` header and`mcp_servers` .\n- **Not supported:**`document` ,`redacted_thinking` and`search_result` blocks, and code-execution and MCP tool results.\n- **Model names:** an unknown name maps silently to`deepseek-flash` .\n\nDeepSeek 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](https://code.claude.com/docs/en/llm-gateway-protocol) 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.\n\nEach vendor's guide sets the compaction window by hand. DeepSeek's [Claude Code guide](https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code) 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](https://docs.z.ai/devpack/tool/claude) compatibility on Claude Code 2.0.14; the current release is 2.1.291.\n\nModel habits are the last cost. Armin Ronacher, co-founder of Earendil, explained Pi 1.0's turn to MCP on [Hacker News](https://news.ycombinator.com/item?id=49926377): the models \"are trained on their respective harnesses\", so a neutral harness adapts to each model's habits.\n\n## What breaks when you move a session or a plugin between harnesses?\n\nInstruction 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.\n\n| Layer | Carries over? | Detail | \n|---|---|---|\n| Instructions | Mostly | Most read [AGENTS.md](https://stackness.dev/tools/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 | \n| Skills | Format yes, folder no | Claude Code reads `.claude/skills` ; Codex, Pi, DeepSeek Harness and ZCode read`.agents/skills` ; OpenCode reads both | \n| [MCP](https://stackness.dev/tools/model-context-protocol) servers | Re-entered | `.mcp.json` , TOML in Codex,`opencode.json` ,`~/.pi/agent/mcp.json` , Cordis config | \n| Hooks | Rarely | 33 events in Claude Code, 12 in Codex, 11 renamed ones in Gemini CLI, 7 with Claude's names in ZCode | \n| Plugins | One way | ZCode loads `.claude-plugin/plugin.json` , Codex accepts \"Claude-compatible manifests\" | \n| Sessions | Third-party tools, lossy | JSONL in Claude Code, Codex, Pi and DeepSeek Harness, each a different schema; SQLite in ZCode and Hermes | \n| Config | No | `settings.json` ,`config.toml` ,`opencode.json` ,`cordis.patch.yml` ,`config.yaml` | \n\nSources: each harness's docs on 6 October, and the [Claude Code hooks reference](https://code.claude.com/docs/en/hooks).\n\nThe one cross-vendor plugin spec, [Agent Plugins](https://stackness.dev/tools/agent-plugins) 1.0.0, [published on 6 August](https://vercel.com/blog/introducing-agent-plugins) 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](https://hermes-agent.nousresearch.com/docs/user-guide/import-from-other-agents) copies instructions, Bash permission rules, MCP servers and skills from Claude Code or Codex, and skips slash commands.\n\nFor sessions, the one converter I found is [session-migrate](https://stackness.dev/tools/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](https://dev.to/jangwook_kim_e31e7291ad98/i-treated-agent-sessions-as-portable-cache-and-moved-control-to-a-policy-plane-vendor-lock-in-15j4) 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.\n\nEarendil's [session portability post](https://earendil.com/posts/session-portability/) of 30 July explains why no converter can be complete: providers return encrypted reasoning and server-side state the client never holds.\n\nWhat a switch costs, layer by layer:\n\n```\ncarries over    AGENTS.md, SKILL.md skills (link the folder for each harness)\nre-enter        MCP servers, provider, model, context window\nrewrite         hooks, plugins, slash commands\nleave behind    session history, signed thinking, the prompt cache\n```\n\nThat makes a skill the safest home for a workflow you want to keep, the approach in the [reusable agent skills move](https://stackness.dev/moves/package-domain-workflows-as-reusable-agent-skills).\n\n## Why do switchers like CC Switch and magpie exist?\n\nEvery 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.\n\n[CC Switch](https://github.com/farion1231/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](https://github.com/farion1231/cc-switch/blob/main/docs/release-notes/v4.0.0-en.md) 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.\n\nIts 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.\n\n[magpie](https://github.com/yetone/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](https://github.com/yetone/magpie/blob/main/docs/reference.md) 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.\n\n## Which harness slot does each of these take in a stack?\n\nClaude 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.\n\n| Tool | Slot | Where it runs | \n|---|---|---|\n| Claude Code | Coding agent harness | Terminal, IDE, desktop, web | \n| DeepSeek Harness | Coding agent harness | Web UI, desktop | \n| ZCode | Coding agent harness | Desktop, web, terminal | \n| Pi | Coding agent harness, minimal core | Terminal | \n| Hermes Agent | General agent that can code | CLI, desktop, chat apps, cron | \n| CC Switch | Switch layer: rewrites provider config | Desktop | \n| magpie | Switch layer: config plus protocol gateway | Menu bar, local gateway | \n\nFor scale, in the week to 4 October npm counted [14.8M](https://api.npmjs.org/downloads/point/2026-09-28:2026-10-04/@anthropic-ai/claude-code) downloads of Claude Code, [5.2M](https://api.npmjs.org/downloads/point/2026-09-28:2026-10-04/@earendil-works/pi-coding-agent) of Pi and [452k](https://api.npmjs.org/downloads/point/2026-09-28:2026-10-04/@deepseek-ai/dsh) of DeepSeek Harness. CI installs and auto-updates inflate all three, and native installers are not counted.\n\nOn Stackness, as of 6 October 2026, 8 real profiles list Claude Code, 3 list OpenCode, 2 list Codex and 1 lists Pi ([data sources](https://stackness.dev/about/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](https://stackness.dev/tools/kimi-k3), [HY3](https://stackness.dev/tools/hy3) and [LM Studio](https://stackness.dev/tools/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](https://stackness.dev/categories/ai-tools) and the [ones rising this month](https://stackness.dev/trending/ai-tools) update as profiles change.\n\n## Key numbers\n\n- **13 August 2026** : DeepSeek Harness developer preview;**30 September** : v0.2 with desktop apps for macOS and Windows ([DeepSeek](https://x.com/DeepSeekHarness/article/2105330281389662575) ).\n- **1 October 2026** : Pi 1.0 ships under MIT ([Earendil](https://earendil.com/posts/pi-1-0/) ).\n- **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.\n- **33** ,**12** and**7** hook events in Claude Code, Codex and ZCode, read**6 October 2026** from each project's docs.\n- **18** harnesses and**324** routes in session-migrate v0.11.0,**11 September 2026** , none carrying signed thinking, hooks or MCP config ([README](https://github.com/xhluca/session-migrate) ).\n- **140,489** GitHub stars for CC Switch on**6 October 2026** , whose v4.0 preview stopped provider switches wiping hooks and plugins ([release notes](https://github.com/farion1231/cc-switch/blob/main/docs/release-notes/v4.0.0-en.md) ).\n- **8** real Stackness profiles list Claude Code and**0** list DeepSeek Harness, ZCode or Hermes Agent, as of**6 October 2026** ([data sources](https://stackness.dev/about/data-sources) ).\n\n## Quick answers\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n**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.\n\n## Tools in this post\n\n## Use any of these tools?\n\nPut 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.\n\n[Show my stack](https://stackness.dev/register)", "url": "https://wpnews.pro/news/deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what", "canonical_source": "https://stackness.dev/blog/deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what-breaks-when-you-switc", "published_at": "2026-10-06 19:11:28+00:00", "updated_at": "2026-10-06 20:18:37.556529+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["DeepSeek", "DeepSeek Harness", "Claude Code", "Anthropic", "OpenAI", "Z.ai", "Nous Research", "Earendil"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what", "markdown": "https://wpnews.pro/news/deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what.md", "text": "https://wpnews.pro/news/deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what.txt", "jsonld": "https://wpnews.pro/news/deepseek-harness-vs-claude-code-which-harnesses-lock-you-to-one-model-and-what.jsonld"}}