The runtime profile default is correct for installed applications, but the supported TypeScript CLI also runs tsx workspace aliases. In that launch, profile resolution loaded both packages/core/tools/src/index.ts and packages/core/tools/lib/index.js. The ToolRuntime instance and agent-loop consumer therefore held different private TOOL_RUNTIME_SCHEDULER symbols; the first tool call failed while reading scheduler.prepare. The source bin now explicitly selects linked profile resolution using its own .ts module identity. Built and packaged launches keep runtime resolution, and explicit runProfile overrides remain unchanged. No service or symbol identity is widened to conceal duplicate module instances. Forward the existing sourceImport option through runLoaderSmoke and select tsx/esm for headless source snapshots. This exercises the actual supported source-launch vector while retaining the same recorded Session and expected outputs. The loader-smoke subprocess test covers forwarding that hook. Evidence: the official tsx/esm compaction replay failed before the fix while loading both Tools module URLs. After the fix it loads only src/index.ts and prints COMPACTION RECOVERED. The same focused replay passes under both DSH_EXAMPLE_MODE=src and lib after rebuilding Host artifacts. The 43 CLI and loader tests passed, including runtime defaults and explicit link/dual/runtime overrides. Loader-smoke coverage passed 25 tests with 100% statements, branches, functions, and lines. Host build, full lint, and all 41 doc-sync gates passed. Recorded JSONL generations and snapshot normalization are unchanged; temporary diagnostics were removed from built artifacts.
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.
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.