Guides

What is DeepSeek Harness? DeepSeek agent skills explained

DeepSeek published the runtime layer that turns a model into an agent. Here is how its plugin architecture works, how its Agent Skills system relates to the SKILL.md format you may already use, and what state the code is actually in.

Updated August 18, 2026

Cover reading DeepSeek Harness with a diagram of plugins mounting into the Cordis kernel.

On August 13, 2026, DeepSeek released DeepSeek Harness (dsh) as open source under the MIT license. The project is an agent runtime written in TypeScript. On launch day the repository showed roughly 27,500 stars and 2,000 forks; as of this writing it reports approximately 156,100 stars and 16,200 forks.

The release matters for anyone who maintains agent skills, because Harness reads the same SKILL.md format that Claude Code uses. Skills you already have work in dsh without edits.

The core premise: model plus harness equals agent

DeepSeek frames the release around a single formula: a model becomes an agent through the harness around it. The harness is the runtime layer that wraps the large language model and handles tool calling, context management, task planning, error recovery, and termination logic.

Coding agents such as Claude Code and Codex each ship their own harness as closed software. That arrangement makes vendor benchmark claims difficult to attribute, because a published score reflects the combined performance of a model and an undisclosed runtime.

DeepSeek published the runtime in full. The methodology footnotes for the V4-Pro benchmarks name Minimal mode from Harness as the harness used, so the configuration behind those numbers is now inspectable code.

Architecture: the Cordis kernel

The framework sits on Cordis, a meta-framework that handles plugin mounting, unmounting, and dependency resolution. DeepSeek states the design principle directly: everything is a plugin, and every run is traceable.

Every agent capability ships as a plugin: model adapters, tool registries, skill libraries, session management, sandboxes, storage backends, the main agent loop, schedulers, and the user interface. Developers select, swap, or extend any capability in configuration, without modifying Harness source code.

A plugin is a TypeScript module that exports an apply function, through which it registers its capabilities. Three forms are supported: function, object, and class. The framework automatically cleans up registered resources such as event listeners, timers, and tools when a plugin unloads, and resolves dependencies through an inject declaration that guarantees required services load first.

Four runtime modes

Mode What it includes
Standard Full toolset: file editing, shell, file and web search, skills, planning, subagents, and workflows.
Code The model orchestrates multi-step operations through a TypeScript SDK rather than discrete tool calls.
Minimal Two tools only, bash and a string-replacement editor. This is DeepSeek's own benchmark harness.
Creator Standard capabilities plus runtime inspection, for building and experimenting with custom modes.

Session logging

Harness records everything the model sees in an append-only session log: prompts, reasoning, tool calls, and context injections. From that same event stream, a session can be resumed, forked, searched, and replayed. For debugging agent behavior, this gives a reproducible record of each run.

Agent skills in DeepSeek Harness

Harness implements the SKILL.md skill format that Anthropic defined for Claude Code, down to the directory layout, the frontmatter keys, and a discovery root shared by convention with other skills-aware agents on the same machine. A skill written for Claude Code runs in dsh unchanged. If you are new to the format, start with our guide on what AI agent skills are.

The format

A skill is a folder containing a SKILL.md file with YAML frontmatter and a Markdown body. This example comes from DeepSeek's own repository:

---
name: dsh-code-review
description: >
  Use when reviewing a pull request in the deepseek-harness repo — orients
  the reviewer to this codebase's standards (AGENTS.md conventions,
  defensive patterns, ADRs, quality gates) and the review-specific checks
  that code alone can't show
---

The frontmatter requires name and description. Harness also reads whenToUse, plus two keys that control invocation: disable-model-invocation decides whether the model may call the skill on its own, and user-invocable decides whether a person may call it. Both default to enabled when the field is omitted.

Two layouts are accepted: a directory bundle written as <name>/SKILL.md, and a flat Markdown file written as <name>.md.

Progressive disclosure keeps the context window clear

DeepSeek's own skills follow a size convention: the main file stays at or under roughly 300 lines, with supporting detail in a references/ directory. The model sees a short description first, loads the full skill body when the skill triggers, and reads reference files only when a task calls for them. Skill content stays out of the context window until it is needed.

Where the agent looks for skills

Skills live as ordinary folders on disk. Before an agent can use one, it has to learn the skill exists, and that step is called discovery. At startup, dsh walks a fixed list of directories and collects everything it finds into a single catalog.

There are six such directories, and the set is deliberate. Some belong to the current project, some to you as a user, and one ships inside Harness itself. That raises the obvious question: what happens when a skill with the same name sits in two of them? Each directory carries a priority number for exactly that case.

Priority Directory Scope
100<project>/.dsh/skillsProject
200<project>/.agents/skillsProject
300Directories listed in customSkillDirsUser
400<dshHome>/skillsUser
500<agentsHome>/skills, in practice ~/.agents/skillsUser
600The directory bundled with HarnessBuilt-in

The lower number wins. A skill found at 100 overrides a skill of the same name at 200, 400, or 600.

The order runs from most specific to most general: the project overrides your personal setup, and your setup overrides what ships with the tool. The practical payoff sits in the two project-level entries. A repository can commit a skill that everyone working in it picks up automatically, and that version takes precedence over each contributor's personal one, without anyone changing their own configuration.

Two details are worth knowing before you place a file. Discovery goes one level deep, so dsh reads folders and files directly inside a root and a skill buried in a nested subfolder stays invisible. And the catalog refreshes as soon as the files change, so adding or editing a skill needs no restart.

Installing a skill

Place a <skill-name>/SKILL.md directory into ~/.agents/skills, and the skill appears in the command palette. For advice on keeping one library across several agents, see how to organize AI agent skills.

Official DeepSeek Harness skills

The deepseek-harness repository carries eleven skills in .agents/skills. DeepSeek uses them to develop Harness itself, so they cover contributor workflow rather than general-purpose tasks.

Skill What it does
dsh-code-reviewReviews pull requests against the repository's standards, including AGENTS.md conventions, ADRs, defensive patterns, and quality gates.
dsh-pre-push-checksSelects the minimal set of tests and checks that cover a given change, before push, force-push, or marking a pull request ready.
dsh-merging-stacked-prsHandles merging of stacked pull requests.
dsh-find-simplificationsIdentifies simplifications in code.
dsh-prose-standardApplies a writing standard to documentation, code comments, prompts, and user-visible strings.
dsh-doc-standardsEnforces documentation standards.
dsh-doc-site-syncKeeps the documentation site in sync with the source.
dsh-translate-docsTranslates documentation.
dsh-trim-cot-leakageRemoves chain-of-thought leakage from output.
dsh-archive-agent-notesArchives agent notes.
record-browser-gifRecords interface demos as optimized GIFs and publishes them to an assets branch for attachment to a pull request.

They sit in the project-level directory at priority 200, so an agent working inside a clone of the repository picks them up automatically. For developers outside the project, their main value is as reference implementations, since they are the highest-quality publicly available examples of the SKILL.md format as DeepSeek applies it.

DeepSeek publishes no general-purpose skill catalog or marketplace. The awesome-deepseek-agent repository lists integration guides for running V4-Pro and V4-Flash inside roughly 25 tools, including Cline, GitHub Copilot, OpenCode, and Cherry Studio, and it contains no skills section.

Because the format is Anthropic's SKILL.md without modification, the pool of usable skills extends well past DeepSeek's own. Skills published by Anthropic, and any skill a team already maintains for Claude Code, work in dsh once placed in ~/.agents/skills. To compare official skills across vendors, browse the Skillscout official skills directory.

The plugin ecosystem

By August 14, one day after release, GitHub repositories tagged dsh-plugin numbered more than 1,200. Curated lists organize hundreds of entries into categories: profiles and patch layers, harnesses and runtimes, security and permissions, session and memory management, cost tracking, messaging bridges, plugin marketplaces, MCP servers, orchestrators, user interface clients, and skills.

Notable skill packs include:

The arrival of plugin_vet in the first week reflects a practical property of the architecture. Plugins are executable modules with access to the filesystem and shell, so supply-chain review applies to them the same way it applies to any dependency. Our guide on AI agent skills security covers what to check before installing.

Models, benchmarks, and pricing

Harness is natively optimized for DeepSeek-V4-Pro and V4-Flash. The kernel itself is model-agnostic, and community adapters for OpenAI-compatible endpoints appeared quickly, with one router plugin advertising more than 70 model integrations.

On the neutral harness maintained by Vals, V4-Pro-0813 ranks second on SWE-bench Verified at 96.40% with a margin of 0.83, behind Claude Opus 5, at $0.022 per test compared with $1.29 for Opus 5.

API pricing changed shortly after launch. Rates of $0.435 per million input tokens and $0.87 per million output tokens moved, as of 16:00 UTC on August 16, 2026, to peak and off-peak billing: $0.66 and $1.98 off-peak, $1.32 and $3.96 at peak.

How to install DeepSeek Harness

The published package runs directly:

npx @deepseek-ai/dsh web

The web interface serves at http://127.0.0.1:3080.

Building from source requires an explicit build step, which several community install guides omit:

git clone https://github.com/deepseek-ai/deepseek-harness
pnpm install && pnpm run build && pnpm dsh web

Current state of the project

Harness is a developer preview. Launch coverage described the release as v0.1, but the published package version is 0.1.0-rc.5, and the repository currently carries no GitHub releases or tags. The README states that compatibility-breaking changes are expected, and both the APIs and the plugin contracts may still change before a stable release.

The framework also occupies a different position from a ready-to-use coding agent. Claude Code and Codex install and run as finished products. Harness supplies a plugin foundation from which developers assemble an agent by selecting models, tools, and workflows. That difference raises both the setup effort and the degree of control available.

Why this matters for agent skills

Three developments follow from the release.

For teams already maintaining skills, the migration cost is effectively zero, because existing SKILL.md directories work as they are. For teams evaluating Harness as infrastructure, the release-candidate status and the documented intent to break compatibility are the main factors to weigh.

Sources