Packaging a build for a test feed or a colleague required bumping the version in 295 manifests plus the lockfile first, because the version a build publishes was only ever read from the checkout. Those edits cannot be committed, so every such build left the working tree dirty, and the `<version>.<date>.<sequence>` convention behind them lived only in the operator's memory. The version a build publishes is now an input. `--release-id` names it, `--release-id auto` numbers it after the builds already published to the destination bucket (falling back to local artifacts, since a fresh CI checkout has none), and it reaches electron-builder through extraMetadata, the update feed, and the upload validation as one value. The manifests keep the product version, aligned with the dsh npm package, and a release still publishes exactly that. Validation goes through `semver` itself, because `electron-updater` compares feed versions with `semver.gt` against the installed `app.getVersion()`: a build version must outrank the product version it extends, which holds for `0.1.6-alpha.2.20260921.1` over `0.1.6-alpha.2` and cannot hold on a stable version, where a fourth release number is not a version at all. Two things a build could not previously answer for itself: - Artifacts now carry the commit they were packaged from and whether that checkout was dirty, so a build handed to a colleague is traceable without a tag. - A production upload tags that commit as `desktop-v<version>` once the artifacts are public, and reports what to run by hand rather than failing an upload that already completed. Test and local builds are deliberately left untagged. A toolchain step now probes tar and the Windows installer compiler before the first build step, so a host that cannot finish the sequence says so in seconds rather than minutes.
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.