DeepSeek Harness and Claude Code are both agents that speak the Anthropic Messages format by default — dsh to DeepSeek's Anthropic-compatible endpoint, Claude Code to Anthropic — so the choice is less about protocol than about who bills you, what each request carries, and what leaves your machine. We pointed both at the same recording stand-in on October 1, 2026 and gave each the same one-file task; both completed the tool round trip, and their requests differed in ways that matter for cost and privacy.
For dsh's costs alone see DeepSeek Harness pricing; to point it at another endpoint, Kunavo's DeepSeek Harness setup.
Side by side
| DeepSeek Harness | Claude Code | |
|---|---|---|
| Version checked | 0.2.0-rc.2 on npm (September 29, 2026), "developer preview" | 2.1.286 on npm (September 30, 2026) |
| Licence | MIT | Anthropic's terms; not open source |
| Surfaces | Web UI, terminal UI, headless, macOS/Windows desktop, ACP, Python SDK | Terminal, IDE extensions, desktop and web, SDK |
| Default model route | deepseek-flash via DeepSeek's Anthropic-format API | Claude via Anthropic |
| How you pay | DeepSeek per token, prepaid; no subscription | Claude Pro or Max plan, or per token on an API key |
| Other providers | Custom model API: openai-completions, openai-responses or anthropic-messages, one per provider | One Anthropic-format endpoint via ANTHROPIC_BASE_URL |
| Instruction files | AGENTS.md and CLAUDE.md (plus .local overlays) | CLAUDE.md |
Same task, two request shapes
| First request of the task | dsh 0.2.0-rc.2, built-in route | Claude Code 2.1.286 |
|---|---|---|
| Path | /v1/messages | /v1/messages?beta=true |
| Tools sent | 24 | 20 |
| Body size | 65,101 bytes, of which 40,318 are two non-model fields | 107,054 bytes |
| Output ceiling | max_tokens: 256000, thinking on, effort "high" | max_tokens: 64000 |
| Extra calls | A title request per new session, carrying the same non-model fields | None in -p mode |
| Requests to finish | 3 (turn, title, turn after tool result) | 2 |
These are bytes recorded by a stand-in, not token counts, and the stand-in is not a model, so nothing here measures answer quality. What it does show: dsh asks for a far larger output ceiling with reasoning on by default, which matters on per-token billing, and Claude Code sends a larger prompt per turn. dsh was run in three fresh sessions with byte-identical requests each time; Claude Code was run once.
What leaves your machine
The two non-model fields in dsh's requests are dsh_session_log and dsh_plugin_packages. The first is the session's event log — including your working-directory path — sent incrementally with agent, compaction and title requests, up to 8 MiB per request, from a plugin that is on by default; the second lists installed plugin packages and versions. In the run they went to whatever DEEPSEEK_BASE_URL pointed at. The Web UI switch "Upload Session Log when using the official model API" under Settings → General turns the log off. dsh also exports OpenTelemetry feedback to DeepSeek's collector by default; DSH_TELEMETRY_MODE=DISABLED stops it. Claude Code has its own telemetry and non-essential-traffic switches, which were off for its run. Custom pi-ai providers in dsh sent neither field.
Running each with the other's models
Claude Code on DeepSeek: DeepSeek's own guide sets ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic with a DeepSeek key. DeepSeek maps model names: claude-opus… to deepseek-v4-pro (billed at its price), claude-sonnet… and claude-haiku… to deepseek-flash, and any unsupported name to deepseek-flash. Its compatibility table ignores cache_control and honours only effort in output_config.
dsh on Claude: add a custom model API. With anthropic-messages, give the gateway's bare root — the run posted to /v1/messages?beta=true; with /v1 on the end it posted to /v1/v1/messages. With openai-completions, give a base URL ending in /v1. On Kunavo, Claude Sonnet 5 lists at $1.40 in and $7.00 out per million tokens and Claude Haiku 4.5 at $0.70 and $3.50, billed from a prepaid balance with a $10 minimum top-up; see Claude Code setup or DeepSeek Harness setup. Nobody at Kunavo has run either against its endpoint; the runs here used a stand-in.
Switching between them
- Instructions travel. dsh loads AGENTS.md and CLAUDE.md from the project root down to the working directory, plus AGENTS.local.md and CLAUDE.local.md and a user-global
$DSH_HOME/AGENTS.md, within 65,536 bytes. - Skills need moving. dsh scans
.dsh/skills,.agents/skills,$DSH_HOME/skillsand~/.agents/skills— not.claude/skills— forSKILL.mdbundles withnameanddescriptionfrontmatter; add the folder withcustomSkillDirsor copy it. - MCP tools keep their names. dsh exposes them as
mcp__<server>__<tool>, the shape Claude Code uses, but the server list lives in dsh's profile configuration, not in Claude Code's files. - Sessions do not move. dsh keeps compressed session logs under
$DSH_HOME/sessions; there is no importer either way. - Expect breakage on dsh upgrades. Its README promises compatibility-breaking changes during the preview, and 0.2.0-rc.2's own notes say some older model ids were removed and saved selections may need re-picking.
FAQ
What is the difference between DeepSeek Harness and Claude Code?
DeepSeek Harness (dsh) is DeepSeek's MIT-licensed agent harness — Web UI, terminal UI, headless mode, desktop apps and a Python SDK, built from plugins — and is a developer preview at 0.2.0-rc.2. Claude Code is Anthropic's own coding agent, version 2.1.286 on npm on October 1, 2026. Both speak the Anthropic Messages format by default: dsh to DeepSeek's Anthropic-compatible endpoint with deepseek-flash, Claude Code to Anthropic. The practical differences are in billing, what each request carries, and what each uploads.
Which is cheaper, DeepSeek Harness or Claude Code?
On list price, dsh on DeepSeek. deepseek-flash is $0.30 per million input tokens and $1.20 per million output at peak, half that off-peak; Claude Code is either included in Claude Pro ($17 a month billed annually, $20 monthly) or Max (from $100), or billed per token on an API key, where Claude Sonnet 5 through Kunavo lists at $1.40 in and $7.00 out per million. The free Claude plan does not include Claude Code. Price per token is not price per finished task: run the same task on both before you decide.
Can Claude Code use DeepSeek models?
Yes, through DeepSeek's Anthropic-format endpoint: set ANTHROPIC_BASE_URL to https://api.deepseek.com/anthropic and ANTHROPIC_API_KEY to a DeepSeek key, as DeepSeek's own guide shows. DeepSeek then maps the Claude model names Claude Code sends: names starting with claude-opus go to deepseek-v4-pro and are billed at its price; claude-sonnet and claude-haiku names go to deepseek-flash. DeepSeek's compatibility table says cache_control is ignored and only the effort field of output_config is honoured.
Can DeepSeek Harness use Claude models?
Yes, as a custom model API in Settings → Models. Choose anthropic-messages and give the bare root of an Anthropic-compatible gateway: in a 0.2.0-rc.2 run that posted to /v1/messages?beta=true, while a base URL ending in /v1 posted to /v1/v1/messages, which a real gateway answers with 404. Or choose openai-completions with a base URL ending in /v1. Either way the gateway bills the tokens; Kunavo bills per token from a prepaid balance with a $10 minimum top-up.
Do my CLAUDE.md files work in DeepSeek Harness?
Yes. dsh's instruction plugin loads AGENTS.md and CLAUDE.md from every directory between the project root and the working directory, plus AGENTS.local.md and CLAUDE.local.md overlays and a user-global $DSH_HOME/AGENTS.md, within a 65,536-byte budget. Skills are different: dsh scans .dsh/skills, .agents/skills, $DSH_HOME/skills and ~/.agents/skills by default, not .claude/skills, so Claude Code skills need moving or a customSkillDirs entry.
Run on October 1, 2026: @deepseek-ai/dsh 0.2.0-rc.2 (dsh --profile headless, telemetry disabled) and @anthropic-ai/claude-code 2.1.286 (claude -p, temporary config directory, telemetry and non-essential traffic off), both installed from npm into a scratch folder and pointed at the same local recording stand-in with fake keys. Behaviour beyond the run from the shipped dsh package READMEs; DeepSeek's model mapping and compatibility table from api-docs.deepseek.com; Claude plans from claude.com/pricing; Kunavo rates from the live catalog.