SDK shutdown disposed its root Agent handles without stopping managed Activations below those exact roots. The manager owns descendant handles in a separate context, so an interrupted child with parked input remained registered after shutdown resolved. Its settlement watcher could then outlive the SDK root and race later projection teardown. Close scoped descendant admission and await child-first drain before releasing root handles or the server adapter. Keep draining limited to the server's exact root Agents so unrelated parent trees remain live. Collect drain failures without skipping the existing root/adapter teardown, and preserve the final single-error or aggregate-error result. Add real AgentLoop/SubagentRuntime regressions for parked children at one and two levels, child-first disposal, preservation of an unrelated parked tree, and descendant/root teardown failure aggregation. Correct an existing Context.get test stub to return its LLM only for the LLM service. Document the lifecycle order in the server JSDoc and bilingual README. Validation: 52 SDK server tests with 100% server.ts statements, branches, functions, and lines; four final shutdown regressions; host TypeScript build; full lint; 21 quick documentation checks; staged pairing/diff checks. Doc-sync passed 41/42 checks; the pre-existing config catalog source link for subagent-acp/index.ts is stale at base and left to integration refresh.
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.