Everything is a plugin
Model adapters, the tool registry, the session log, and the agent loop are mounted as Cordis plugins. A plugin can add or replace a capability without patching a privileged core.
DeepSeek's local agent harness gives models a plugin-composed body: tools, sessions, permissions, subagents, workflows, and multiple ways to run. This guide turns the official repository and community technical walkthrough into a practical starting point.
Agent = Model + Harness
DeepSeek Harness is not just a chat box. It assembles the model, tools, session history, approval rules, workspace access, and delegation behavior into a local coding agent.
$ npx @deepseek-ai/dsh web
dsh web: http://127.0.0.1:3080The official README says DeepSeek Harness is iterating rapidly and will introduce compatibility-breaking changes. Treat copied configuration, plugin APIs, and RC package behavior as versioned material, and check the repository before automating an upgrade.
Architecture
The V2EX walkthrough is useful because it follows the system from plugin composition to modes, Code Mode, session events, delegation, and governance. The summary below keeps that path but uses the public repository as the factual baseline.
Model adapters, the tool registry, the session log, and the agent loop are mounted as Cordis plugins. A plugin can add or replace a capability without patching a privileged core.
Standard, PTC, Minimal, and Creator presets package different tools, prompts, and behaviors. A running session keeps the preset it started with.
PTC mode exposes tools through a generated TypeScript SDK, allowing the model to combine conditions, loops, parallel calls, and filtering in one program.
Model-visible inputs, assistant output, tool calls, and tool results are reconstructed from durable session events so sessions can be inspected, resumed, and replayed.
An agent can delegate to child agents, continue background children, or run scripted workflows that coordinate multiple agents with bounded lifecycle and cleanup.
Read-only, workspace-write, and full-access policies separate file effects from approval decisions. Operations that need approval pause for a user decision.
Composition model
A running dsh process is a plugin tree. A profile selects ordered bundles; profile, home, and command-line patches can then replace or insert configuration rows. That makes the shipped Web and headless surfaces different compositions of the same system.
Read the official architectureNamed composition stored in the Harness home
Base, Web UI, or headless plugin rows
Profile → home → optional CLI overlay
Model · tools · session · loop · policies
Agent presets
Selecting a mode selects the complete tool, prompt, and capability set for the next session. Running sessions keep their original preset so earlier tool calls remain reproducible.
standardThe full coding agent: file editing, shell, file and web search, Skills, planning, goals, subagents, and workflows.
codeAll Standard capabilities, with tools presented through Code Mode so multi-step work can be composed in TypeScript.
minimalA focused two-tool coding agent with persistent Bash and str_replace_editor.
cordisStandard capabilities plus runtime inspection, plugin experiments, and guidance for authoring a custom agent preset.
Quick start
The npm path is the shortest way to open the Web UI. Use the source path when you want to inspect, modify, or contribute to the plugin tree itself.
Install a supported Node.js version, run the npm command, and open the printed local URL. The default address is 127.0.0.1:3080.
Open Settings → Models, add a DeepSeek API key, or configure another installed provider or custom compatible endpoint.
Add the project directory where dsh was started and select it. The session composer stays disabled until a workspace is selected.
Create a session, choose an agent preset, then ask the agent to inspect the repository, edit files, run commands, or delegate work.
Fastest path
$ npx @deepseek-ai/dsh webThe command starts the local Web UI. Keep it local unless you intentionally configure a trusted network boundary.
Contributor path
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh webMore ways to use Harness
Local browser interface for sessions, workspaces, model settings, approvals, and preset selection.
A one-shot runner that accepts a task, prints the final assistant response, and opens no HTTP port.
A high-level turns API and lower-level JSON-RPC client with a packaged runtime for programmatic use.
Build tools, providers, services, events, and complete agent presets on top of the Cordis composition model.
Downloads and links
There is no desktop installer advertised by the official README. Run the published npm CLI, download the source archive, or use the Python SDK for programmatic integration.
npm
Open the published CLI package used by the one-command Web UI quick start.
Open npmSource archive
Download the current repository source as a ZIP archive without cloning Git history.
Download ZIPPython SDK
Install the packaged Python client and bundled runtime for JSON-RPC-driven agent tasks.
Open PyPISource
Browse the monorepo, issues, license, source instructions, and latest development activity.
Browse sourceDocumentation
Configure a model, select a workspace, and run the first task in the official interface.
Read guideCommunity
Send product feedback, report bugs, and follow questions from other Harness users.
Open discussionsStart with the official minimal plugin tutorial, then use the architecture and generated configuration catalog as the source of truth for current interfaces.
Product status, install commands, and architecture claims are grounded in the official DeepSeek repository. The V2EX article is included as the community technical walkthrough requested for this page; its private-test anecdotes and unverified ecosystem counts are not repeated as official facts.