The completion coverage audit left two uncovered paths: replaying an ACP abort that occurred before listener registration, and ignoring an Agent error from outside the SDK server's owned root sessions. Remove the redundant ACP abort replay. The private cancelPrompt method is the sole owner of admissionController.abort(), sets cancelRequested first, and never resets it. Settlement checks that sticky cancellation state after its initial idle observation and before awaiting the local cancelled promise. A pre-listener abort therefore never needs to resolve that promise; the listener still handles cancellation during child waits. Add a real local subagent failure regression for SDK ownership. The child emits agent/error through the normal AgentLoop path and returns an error result, while the SDK root's wait and a subsequent prompt both complete. The test also rejects observer warnings, so dropping the ownership guard fails on the swallowed TypeError rather than merely executing the branch. No fake Agent identities or private-state mutation are used. Validation: - Focused descendant test passed; removing the ownership guard as a temporary negative control failed on the unexpected observer error. - pnpm exec vitest run packages/acp/acp/tests packages/sdk/server/tests packages/subagent/subagent-dsh-sdk/tests --coverage --coverage.include=packages/acp/acp/src/session.ts --coverage.include=packages/sdk/server/src/server.ts --coverage.reportsDirectory=/tmp/pr4394-completion-coverage-00243b2f89e-consumer (251 tests passed; measured statements, branches, functions and lines 100%) - Focused lint and git diff --check passed. The early-cancellation audit also reproduced a separate initial-idle wait liveness issue. It is intentionally left for its own authorized follow-up commit rather than being combined with this coverage change.
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.