A local child can have send_message available and still finish with a plain text answer or use the tool only for progress. Selecting completion content from tool availability drops that captured answer and leaves the parent with a status-only notice. The recorded spawn case already demonstrates this: its child returns CHILD_OK without calling the available tool. Remove the includeClosingText policy and pass every captured final text through the existing text-only notice renderer. Preserve structured results, safe diagnostics, external continuation wording, and caller-only result delivery. No delivery ledger or additional lifecycle state is needed. A child that sends its final answer explicitly may repeat it in the completion notice; that cost is preferable to making result delivery depend on model compliance. Extend the real-loop parent-result regression with an available-but-unused messaging tool, restore the unconditional lifecycle expectation, and pin text alongside structured results and diagnostics. The new regression fails on the prior implementation because CHILD_RESULT_42 is missing. Update the owning bilingual descriptions and the exact parent notice content in headless and TypeScript SDK recordings. Keep replay streams, released generations, and unrelated recorded clocks unchanged. Validation: 317 focused lifecycle/workflow tests; full build; 26 focused headless/SDK replays; Python SDK advanced/recovery smoke (unchanged fixtures); test:docs (20 gates); doc-sync (42 gates); full lint; 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.