DeepSeek Harness (dsh): Free AI Coding Agent, Tested

Quick answer: DeepSeek Harness (dsh) is DeepSeek's own open-source agent runtime — one npx command and it reads files, runs shell commands and acts on the results. It hit 205,000 GitHub stars in 18 days. We ran it headlessly with four different free models: it genuinely works — one fixed a two-bug script in 43 seconds — but it's a developer preview, its CLI flags don't match the docs, and Groq fails against it silently.

On 13 August 2026, DeepSeek pushed a repo called deepseek-harness. Eighteen days later it had 205,000 stars and 23,700 forks — one of the fastest climbs GitHub has seen. We installed it, wired it to several free AI APIs, and gave it real work. Here's what actually happened.

What it is

DeepSeek Harness — CLI name dsh — is an agent harness: the runtime between a language model and your computer. The model plans; the harness executes — reading files, running commands, feeding results back. Same category as OpenClaw, LangGraph and AutoGen.

Two things make it distinct. It's built on an "everything is a plugin" architecture powered by Cordis, so tools, model backends and UI panels are all swappable plugins. And it's first-party — from the team behind the DeepSeek models themselves, which is much of why it went vertical on GitHub.

Installing it: one command, then a wrinkle

With Node.js present, the web UI is one command:

npx @deepseek-ai/dsh web

That serves a local UI on http://127.0.0.1:3080. Fine for interactive use — but we wanted repeatable, scripted runs, and that's where the documentation gap starts.

The CLI does not work the way the docs imply. We tried the obvious approaches — passing a task as an argument, piping it via stdin, a run subcommand, various model flags — and every one failed. There is no documented headless invocation. What does work is the Node API:

const { start } = require('@deepseek-ai/dsh')



const dsh = await start({

  config: {

    plugins: {

      'model-openai': {

        apiKey: process.env.NVIDIA_API_KEY,

        baseURL: 'https://integrate.api.nvidia.com/v1',

        model: 'moonshotai/kimi-k3',

      },

    },

  },

})

const result = await dsh.run('Fix the bug in stats.py and run it until it works.')

Model configuration goes in the plugin config, not in the run() call — pass a model name to run() and it's silently ignored. That cost us several confusing runs where the agent kept using the wrong backend.

Does it actually work? Yes — with the right model

We gave it a Python script with two planted bugs: a misspelled variable, and a divide-by-zero that only appears when a filtered list comes back empty. The second bug is invisible unless you run the code — so this tests whether the agent executes and reads tracebacks, or just skims and guesses.

It ran in a disposable container against free model backends. Results:

Model driving dshResultTime
Nemotron Super 120B✅ Both bugs fixed, script runs clean43 s
Kimi K3✅ Both bugs fixed56 s
DeepSeek V4 Flash✅ Both bugs fixed251 s
Gemma 4 31B❌ Hung until the 900 s timeout

The harness did what it claims: read the file, ran it, read the traceback, edited the code, re-ran, confirmed. Kimi K3 also summarised three CSV files correctly in 64 seconds in a separate task.

But the choice of model changes everything — a 6× spread between models that all succeeded, and one that never finished at all. And on a file-tidying task, Nemotron reported success after 20 seconds having moved zero files. The harness is only as good as the model you point it at.

Things that will cost you an afternoon

  • Groq fails silently. dsh accepts any OpenAI-compatible endpoint in theory. In practice, pointing it at Groq returns an empty response in about a second — no error, no log entry, nothing. NVIDIA's endpoint worked immediately. If a backend "does nothing", suspect the pairing before you blame the model.
  • web_search has no free backend by default. The built-in web_search tool is wired to DeepSeek's paid API, which returns 402 Insufficient Balance on a free account �� and the run still exits 0. We measured the failure and wrote a free Tavily backend to replace it.
  • Undocumented headless usage. Plan on the Node API, not the CLI.
  • The preview warning is real. The README states plainly: "THERE WILL BE COMPATIBILITY-BREAKING CHANGES." Fine for experiments; not something to build a product on this month.
  • It executes shell commands. That's the whole point, and the whole risk. We ran everything in throwaway containers. Read the project's safety notice before pointing it at a machine that holds your SSH keys.

DeepSeek Harness vs OpenClaw

The obvious comparison is OpenClaw, the other agent harness everyone is talking about:

DeepSeek Harness (dsh)OpenClaw
MakerDeepSeek AI (first-party)Community
GitHub stars~205k (in 18 days)~388k (since Nov 2025)
Momentum~11,000 stars/day~1,400 stars/day
ArchitectureEverything-is-a-plugin (Cordis)"Skills" plugin system
StackTypeScript / NodeCross-platform
MaturityDeveloper preview~9 months, more settled

OpenClaw is bigger and more mature. dsh is climbing roughly 8× faster and carries first-party backing. If you want stability today, OpenClaw; if you want the thing DeepSeek is building its agent story on, dsh.

Should you try it?

Yes, if you're comfortable with Node, you're experimenting rather than shipping, and you want a first-party DeepSeek agent runtime while it's the most active project on GitHub. It genuinely completes real tasks — that part isn't hype.

Wait, if you need stable APIs or complete documentation. Breaking changes are promised, headless usage is undocumented, and you'll spend time on integration quirks like the Groq issue above.

Whatever you do, choose the model deliberately. Our runs varied from 43 seconds to never-finishing on the identical task with the identical harness. Model choice mattered more than anything about dsh itself — see our free-model agent test and free AI API benchmark for which backends to reach for.

Tested 2026-08-31 against NVIDIA's free endpoint in disposable containers. Harness and workflow are open: free-ai-api-benchmark. dsh moves fast — verify against the current repo before relying on any of this.