DeepSeek Harness plugin

dsh-headless

The one-shot bundle: a direct core Agent/Session runner over dsh-base with no Host, HTTP, or browser layer

Jump to install

Source facts

Repository
deepseek-ai/deepseek-harness
Latest update
Aug 21, 2026
Category
Development & Runtime
GitHub stars
183k
Format
bundle
Package path
packages/bundle/headless
Catalog evidence
Official repository listing
Checked against
0.1.0-rc.5
Upstream check date
2026-08-13

Catalog inclusion supports discovery only. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/deepseek-ai/deepseek-harness/tree/HEAD/packages/bundle/headless
Plugin: dsh-headless
Author: deepseek-ai

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer5 files
README.mdSource · read only
README language

@deepseek-ai/dsh-headless

English | 中文

The dsh one-shot bundle. [cordis.patch.yml](cordis.patch.yml) rides directly over dsh-base: it supplies the coding persona and tool mode, disables HMR, mounts Code Mode's worker as a core execution capability, and inserts this package's headless-runner plugin (config {task}, resolved from the injected headlessStartup provider). It mounts no Host, HTTP server, Web runtime, or browser plugin.

After the Loader settles, the runner reads the shared [ctx.agentDefaultModel](../../core/agent-default-model/README.md), creates one fresh persisted Agent through ctx.agents, submits the task as an ordinary user message, and waits for quiescence. It flushes the Session before folding the owned durable event interval, writes the last non-empty assistant text to stdout, and requests exit through the launcher-provided ctx.appExit host hook (dsh-cmdline) (final turn/end completed → 0, otherwise 1). A terminal error reason also writes its code and message to stderr; successful runs keep stderr empty. The process opens no listening port. The task text is this app's command line: the ordinary headless-startup provider ([src/startup.ts](src/startup.ts)) injects ctx.cmdlineArgs (dsh-cmdline), reads the positional argument of dsh --profile headless "task", prints the app's --help, and provides headlessStartup; the runner injects that service and reads its task from lazy config. A missing or whitespace-only task is rejected before the runner activates.

Model Experience

None, as the runner submits the task as an ordinary user message; prompts and tools belong to the base and headless bundle rows.

#### KV Cache effect

None; the runner adds nothing to the request prefix.

Known Limitations and Deferred Work

  • One submitted task only — the runner has no interactive follow-up surface; it waits through any work the Agent completes before returning to idle and prints the last non-empty assistant message in that interval.
  • ctx.appExit is launcher-owned — booting the headless profile outside the dsh launcher fails loud at activation until the host provides the exit request.