Substructure vs. DeepSeek Harness

Checked August 19, 2026

DeepSeek Harness (dsh) is for one developer on one machine: an MIT-licensed agent runtime in developer preview since August 2026, built on the Cordis framework, where everything is a plugin: the model adapter, the tools, the skills, the sessions, the sandbox, the storage, the loop, and the UI. Substructure is a server that runs agents for a team: config in git, Slack, MCP authorization, history, and durable runs.

Harness is a client with a shell and a file system. Substructure is a service that clients call.

Use DeepSeek Harness whenUse Substructure when
The agent edits files on your computerThe agent answers your team
You want to replace the loop, storage, or UIYou want the loop open but not owned
One developer runs itIt must run after you close your laptop

What Substructure does that DeepSeek Harness does not

  • Runs on a server for a team. dsh web serves http://127.0.0.1:3080, and the CLI refuses --host 0.0.0.0, because the agent runs commands and an open port would give that power to the network.
  • Authenticates people. The Harness web UI has no login. Remote access means a proxy, TLS, and authentication you add yourself.
  • Restarts a dead run. The Harness log supports resume, fork, and replay, and you decide when to use them. Substructure's engine continues from the last saved step by itself.
  • Answers in Slack. Harness surfaces are a local web UI, a terminal UI, and a headless mode for scripts and CI.
  • Takes your code in any language. Harness plugins are Cordis plugins in TypeScript, on Node.js.

Side by side

Building the agent

DeepSeek HarnessSubstructure
The agent isA profile of mounted pluginsA file in your repo
You extend it withCordis plugins and config patchesConfig, plus an HTTP worker
LanguageTypeScript, on Node.jsAny language, over HTTP
Run modesStandard, code, minimal, creatorOne loop, overridable per step
Skills and pluginsIts own plugin treeagent-plugins directories
ModelsDeepSeek V4, plus a provider catalogAny provider, one line

Running it

DeepSeek HarnessSubstructure
Where it runsYour machine, on 127.0.0.1A server, cloud or self-hosted
UsersOneEveryone in the deployment
Session logAppend-only; resume, fork, replayAppend-only; the engine resumes
After a crashYou resume the sessionThe run continues on its own
StatusDeveloper preview, breaking changesStable

Tools and surfaces

DeepSeek HarnessSubstructure
Shell and filesSandboxed on your machineNot offered
Sandboxread-only, workspace-write, full accessTools run in your worker or an MCP server
MCPOff until you enable each serverThe engine holds the credentials
Sub-agentsPlugins, plus Claude Code and Codex bridgesOther agents in the file
SurfacesLocal web UI, TUI, headlessSlack, AG-UI, CLI, your API

What you write

terminal
npx @deepseek-ai/dsh web        # serves http://127.0.0.1:3080
substructure.toml
[agent.oncall]
llm = "openrouter"
model = "moonshotai/kimi-k3"
system = "You are the on-call assistant."
mcp = [{ id = "sentry", tools = { read_only = true } }]

[slack]
mentions = "oncall"

subs apply, and the bot answers in Slack threads. Add a worker URL and the engine sends every decision to your endpoint as JSON, one step at a time.

Where DeepSeek Harness is the better choice

  • Editing files on your computer, inside a sandbox. Substructure does not do that.
  • Replacing the agent loop, the storage, or the interface. The plugin tree goes further than most products allow.
  • Benchmarking models, with the minimal mode and replay tests.
  • One local process, with your keys on your own disk.

Questions

Can it run on a server? Only behind a proxy, TLS, and authentication you add. The CLI blocks binding to the network on purpose.

Do both keep a full log? Yes. Harness checks each model call against its log; Substructure uses the log to continue a run after a crash.

Can I use both? Yes. Harness edits code on your laptop; Substructure runs the agent your team talks to.

The quick start takes about five minutes.