A structured local activation now accepts continuation messages, but its terminal predicate checked only delegated children. A correction accepted during the model request could therefore remain in either Inbox queue while the earlier response committed structured_output. The loop later consumed the correction, but the terminal tool guard prevented revising the captured value, so callers could receive the obsolete answer as completed work. Require both Inbox queues to be empty as well as all owned children to be released before staging a structured result. Keep input admission closed from that synchronous staging point through authoritative result policy, including the enclosing PTC result. Derive this admission state from the existing staged, pending, and captured records instead of introducing a second lifecycle controller. Failed results delete their stage and reopen input; successful capture keeps the existing terminal behavior. Caller-owned delivery, complete final text, descendant ownership, and cold resume remain unchanged. Add deterministic barriers for accepted steering and queued input, and for Native/PTC post-execute acceptance and rejection. All six new cases failed against the unchanged runtime for stale results or incorrectly accepted late input, then passed with the fix. Extend the authored headless structured scenario to reject answer 41, consume a parent correction, and commit 42. Its two own schema sidecars also need the current master bash/edit/write definitions: retaining their previous definitions fails verifyHeaders on this pinned base. Update the owning bilingual result-admission documentation. Validation: - pnpm run build:native-system - pnpm exec vitest run packages/subagent/subagent/tests/structured.spec.ts packages/subagent/subagent/tests/continuation.spec.ts packages/subagent/subagent/tests/external-activation.spec.ts (214 passed) - pnpm run test:snapshot:refresh snapshots/session/headless.snapshot.ts -t subagent-structured-parent - pnpm run test:snapshot snapshots/session/headless.snapshot.ts -t subagent-structured-parent (1 selected scenario passed) - pnpm run test:docs (21 gates passed) - pnpm run doc-sync (42 gates passed) - pnpm run lint completed its host build; after correcting test deferred generic types, pnpm run lint:contracts-ready passed - git diff --check
DeepSeek Harness
English | 中文
DeepSeek Harness (dsh) is an open-source agent harness developed by DeepSeek AI.
It is built on an everything-is-a-plugin architecture and powered by Cordis, whose design is described in A Programming Paradigm for Spatiotemporal Composability.
Documentation: https://deepseek-harness.github.io/deepseek-harness/
Developer preview
DeepSeek Harness is in developer preview and iterating rapidly. THERE WILL BE COMPATIBILITY-BREAKING CHANGES.
Review the safety notice before running the project.
Run
Run from npm
Install Node.js, then run:
npx @deepseek-ai/dsh web
The command starts the Web UI at http://127.0.0.1:3080 by default and opens it in the default browser for a local launch. An SSH launch only prints the host URL because the SSH client or editor owns the local forwarded address. Pass --no-open to run the server without opening a browser. See Web UI guide.
Run from source
To run from a repository checkout:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
pnpm run build prepares the repository artifacts. pnpm dsh web uses those built artifacts without rebuilding.
Community and support
- Submit feedback or bug reports through GitHub Discussions.
- Add the
dsh-plugintopic to your plugin repository for discoverability. - Join DeepSeek Harness Discord community.
Contributing
See CONTRIBUTING.md.
Development
Start with the development guide and architecture documentation.
pnpm run dev:web builds, serves, and rebuilds client bundles on source edits in one terminal, and make help lists the matching Make targets for Web and Desktop; the guide's application commands section owns the full table.
For agents, follow AGENTS.md.
Citation
@misc{deepseek-harness2026,
title={DeepSeek Harness: Everything is a Plugin},
author={DeepSeek-AI},
year={2026},
publisher={GitHub},
howpublished={\url{https://github.com/deepseek-ai/deepseek-harness}},
}
License
Third-party dependencies and their licenses are disclosed in THIRD_PARTY_NOTICES.md.