Hero card reading 'DeepSeek Harness on Windows' with the subtitle 'There's no desktop app — the official way is Node, npx, and your browser.' Below it a command chip reading 'npx @deepseek-ai/dsh web' with an arrow pointing to 'http://127.0.0.1:3080', and three small chips reading 'MIT · open source', 'v0.1.0-rc.6 preview', and 'Everything is a Plugin'. OrcaRouter logo composited bottom-right.
Guides & Insights

DeepSeek Harness on Windows: No Desktop App, No Problem — The Official Way to Run It

Author

Gideon Frost

Date Published

Latest models · 20View all models
Benchmarks: Artificial Analysis · updated daily
Back to all posts

There is no official DeepSeek Harness desktop app for Windows, and you do not need one. DeepSeek Harness (dsh) — the open-source agent runtime DeepSeek released under an MIT license on 2026-08-13 — is a Node.js tool that runs a local web server you open in your browser, with a headless CLI for the terminal as the alternative. On Windows the whole setup is two commands: install Node.js 22.19 or newer (Node 24 LTS is the safer pick), then run npx @deepseek-ai/dsh web and open http://127.0.0.1:3080. Every "DeepSeek Harness Desktop" repository on GitHub is an unofficial community wrapper around that same two-command setup — useful to some people, but not required. It is also the harness DeepSeek uses to produce the agentic coding results it reports for DeepSeek V4 Pro and DeepSeek V4 Flash, which is why the two models keep showing up in any conversation about it.

If you searched "deepseek harness windows", you are probably staring at a page of those wrapper repos and wondering which one to install. This article answers the real question behind the search: what DeepSeek Harness actually is, the official way to run it on Windows today, the terminal alternatives, and the honest caveats of running a preview-stage tool. It is a how-to, not a launch post — the launch and the leak trail are covered in separate pieces.

What DeepSeek Harness is (and is not)

DeepSeek Harness is not a model, and it does not benchmark one. It is the agent runtime: the layer that connects a model to tools, files, a shell, and the internet — reading your code, planning changes, running commands, and iterating until the task is done. The architecture is stated in its tagline: "Everything is a Plugin." Models, tools, skills, sessions, sandboxes, the agent loop itself, and even the web UI are plugins composed at startup, built on the Cordis meta-framework — the same kernel behind the Koishi chatbot ecosystem. A default deployment ships over 150 plugins.

It is also emphatically a preview. dsh is at version 0.1.0-rc.6, the README labels it a developer preview, and it warns in capitals that "THERE WILL BE COMPATIBILITY-BREAKING CHANGES." None of that has slowed adoption: the project reached roughly 50,000 GitHub stars within its first 12 hours of going public on 2026-08-13, and sat at about 126,000 as of 2026-08-16 — the fastest open-source release DeepSeek has shipped.

The short answer: the official Windows path is two commands

DeepSeek's official README gives the Windows run path in one line: install Node.js, then run npx @deepseek-ai/dsh web. Concretely, the steps are:

Install Node.js 22.19+ or Node 24. The current dsh release requires Node 22.19 or newer; Node 24 LTS is the safer choice on Windows, and the reason is prosaic — newer Node versions include native zstd decompression, which dsh uses to read its compressed session logs. Check your install with node --version in PowerShell or cmd.

Run the harness. Either run it on the spot with npx @deepseek-ai/dsh web, or install it once with npm install -g @deepseek-ai/dsh and then run dsh web from any folder afterwards. The first run prints the URL and starts the Web UI at http://127.0.0.1:3080.

Open that address in your browser. The Web UI is a local web app — this is why there is no desktop app; the browser is the desktop app.

Add a model key once. In the Web UI, open Settings → Models, paste a DeepSeek API key, and save. It takes effect immediately, with no server restart. dsh uses the folder you started it in as the default filesystem location, and the UI's Choose workspace step lets you point it at any project directory.

Terminal-window card titled 'Run DeepSeek Harness on Windows' with eyebrow 'Windows · PowerShell', showing a dark terminal window with the lines 'PS> node --version' (comment: needs v22.19+, Node 24 LTS safer), 'PS> npm install -g @deepseek-ai/dsh', 'PS> dsh web' (comment: arrow to http://127.0.0.1:3080), and 'PS> dsh --profile headless "summarize this repo"' (comment: one-shot, prints & exits), with a footer sourcing the commands to the deepseek-ai/deepseek-harness README and user guide, August 2026. OrcaRouter logo composited bottom-right.

That is the whole official path. If a machine already has Node 22+ installed, the time from "nothing" to "agent running" is under a minute.

Why every "DeepSeek Harness Desktop" repo is a wrapper

The page-1 results for this query are all community desktop wrappers — Electron, Tauri, and WebView2 shells that bundle a Node runtime and launch the official Web UI inside a framed window. They are not DeepSeek products, and they do not add harness capability; they add a launcher. What they have in common:

• They double-click-launch and avoid the command line entirely, which is their real selling point.

• They are unsigned, so Windows SmartScreen will warn on install — "More info → Run anyway" is part of the flow.

• They track the official project at different speeds: some pin 0.1.0-rc.5, some 0.1.0-rc.6, some follow master, so the wrapper and the harness version drift apart over time.

• They store the same local data dsh always uses under ~/.dsh, so switching between a wrapper and the official CLI does not reset your sessions.

Two-column card titled 'Official dsh vs the GitHub 'desktop' wrappers' with eyebrow 'What page 1 of this search actually shows'. Left column 'Official dsh' with checkmarks: two commands + browser UI, Web UI at 127.0.0.1:3080, headless CLI + TUI plugins, you control the version, no install wizard. Right column 'Community wrappers' with crosses: double-click installer, bundles Node + official UI, unsigned — SmartScreen warns, version drift: rc.5 / rc.6 / master, third-party update layer. Footer: every page-1 'DeepSeek Harness Desktop' repo wraps the official web UI — none is a DeepSeek product. OrcaRouter logo composited bottom-right.

When is a wrapper worth it? When "double-click an icon, see a tray, never touch a terminal" is the deciding factor, and you accept that a third party is now the update and security layer in front of a preview-stage tool. When is it not? The official path is two commands and a browser tab — if you already have Node, a wrapper buys you a launcher you may not need, and adds its own maintenance surface in exchange.

The terminal route: headless CLI and TUI plugins

If the browser is not where you work, dsh has a terminal story too, split into two modes.

Headless is the non-interactive profile: dsh --profile headless "summarize this repository" runs one task without a UI, prints the result, and exits — the CI-friendly mode. On Windows this is also the mode scripts and scheduled tasks should use, because it does not need a display or a logged-in session.

TUI is a Claude Code-style interactive terminal front door, shipped as community plugin bundles rather than in the core package. Packages like dsh-tui install into a profile with dsh plugin --profile tui add <package> and run with dsh --profile tui; at least one ships a Windows .cmd launcher. The catch worth knowing before you try: a TUI requires a real terminal for both input and output — if your setup pipes or redirects, dsh will refuse and tell you to use headless instead.

The four presets: which one for which job

dsh ships four built-in agent presets, and they are not a difficulty ladder — they are four different tool surfaces. You set the default in ~/.dsh/settings.yaml under agent-presets.default.

Standard is the default: the full everyday agent — file editing, shell, file and web search, skills, subagents, planning. This is what most Windows users should start with.

PTC (also called Code mode) keeps everything Standard has but changes how tools are exposed: instead of a long sequence of isolated tool calls, the model writes a TypeScript program that composes multi-step operations — loops, filters, conditional branches. For complex, repeated, or multi-step workflows.

Minimal deliberately strips the agent to two tools — a persistent shell and a file editor — and is aimed at evaluation and benchmarking, not daily work. This is the preset DeepSeek's own agentic scores run on.

Creation (Cordis) is for building custom presets: it includes runtime inspection, in-memory plugin experimentation, and preset-authoring guidance. For tinkering with the harness itself.

MCP and trajectory replay: why this is worth running at all

Two features justify using dsh over a plain chat client. First, a Model Context Protocol (MCP) client is built in — a /mcp command and a Settings MCP tab wire external MCP servers into the harness, so the same tools your other agents use plug into dsh. Second, every run is written to an append-only session log, and the Trajectory view lets you inspect a run by source, resume it, fork it, search it, and replay it. That is the difference between debugging an agent by staring at its final answer and stepping through why it made each call.

When the official path is the wrong answer

You need one-click, no terminal. There is no official installer. If double-click is non-negotiable, you are on community wrappers — which are unsigned, so weigh the convenience against the third-party maintenance surface.

Your Windows box is old or locked down. dsh needs Node 22.19+ (or Node 24). On a managed machine that means a runtime install and possibly an approval you do not have.

It is a preview, and it breaks. 0.1.0-rc.6 ships with a warning that breaking changes are coming; between rc builds, plugins and profiles can stop working. Pin your version for anything scripted.

The model bill is on you. dsh is free; every task burns tokens on whatever key you configured. An agent loop re-reads files and retries, and a verbose model on a hard task can spend a surprising budget in an afternoon. This is where model choice, not harness choice, dominates the cost.

A flat subscription may beat per-token routing. If you live inside one lab's plan under its caps, the flat subscription is often cheaper than any per-token path. Routing wins when you mix models or want failover — not by default.

Route the model behind the harness

The native path is DeepSeek's own API: paste a key in Settings → Models and go. But dsh also accepts an OpenAI-compatible base URL — set DEEPSEEK_BASE_URL in the environment or configure the LLM provider in settings.yaml — which means the model behind the harness is swappable without touching the harness. You can run DeepSeek V4 Pro for the hard refactor and DeepSeek V4 Flash for cheap mechanical edits, on the same local dsh install.

That is the layer OrcaRouter occupies. One OpenAI-compatible base URL, 200+ models, zero markup — provider list price passed through — and automatic failover when a provider rate-limits or degrades. Point dsh at it and the harness stays on your machine while the model catalog becomes a routing decision rather than a purchase. Two honest caveats: we do not host dsh — it runs locally on your Windows box, and we are only the model-access layer if you want models beyond DeepSeek's own API. And for a single heavy model inside its plan's caps, the flat subscription is often the cheaper call regardless of router.

Screenshot of the OrcaRouter model page for DeepSeek V4 Pro: the Flagship badge, roughly $0.44 input / $0.88 output per 1M tokens, a 1M-token context window, 384K max output, and 1.6T total / 49B active parameters, with OpenAI-compatible code samples.

The short version

DeepSeek Harness on Windows is a two-command setup, not an app-store install: Node 22.19+ (or Node 24), then npx @deepseek-ai/dsh web, then your browser at http://127.0.0.1:3080. The GitHub "desktop" repos are unofficial wrappers around that same local server. For terminals, headless runs one-shot tasks for CI, and TUI plugins give a Claude Code-style interface. Four presets — Standard, PTC, Minimal, Creation — pick the tool surface, and MCP plus trajectory replay make it genuinely useful. It is free, open source, and preview-stage: pin the version, watch the model bill, and route the model separately from the harness.