* feat(preset): add creator-mode plugin practices skill Creator mode mounts packages/preset/agent-preset/skills. The new cordis-plugin-practices skill states Harness-specific principles and concrete rules for plugins that survive upgrades and avoid polling or rescanning session logs: waterfall delegation, restrict/guard over assemble, agent.ctx ownership, no new session event types from profile plugins, session projections, and slot-based UI. * refactor(preset): fold plugin practices into cordis-plugin-development A separate skill competed with cordis-plugin-development for the same trigger. The practices now live in references/practices.md, read from procedure step 2 before choosing an extension point. * feat(preset): require Harness components and tokens for plugin pages A creator-built management page served as an iframe with its own stylesheet could not match the Harness design. The practices reference now requires slot-rendered React pages built from ui-primitives, theme tokens from Theme inspection, and light/dark checks in the real slot. * feat(preset): make host UI consistency a principle and a verification step Adds principle 6: the rendering surface decides whether a plugin can match the Harness UI, so it is chosen before any view. Step 4 of cordis-plugin-development now verifies primitives, token-only styles, and light/dark rendering beside a comparable host page. * feat(preset): prefer theme tokens over pre-stable ui-primitives ui-primitives is a pre-stable platform module; creator plugins are plain JS without type checks, and a throwing component blanks the slot entry. The practices reference now treats tokens as the default way to match the host, limits primitives to behavior that is costly to reproduce, and tells the agent how to detect a slot entry crash after an upgrade. * feat(preset): forbid runtime imports of Harness Client packages in plugins Creator plugins must assume ui-primitives and other Client packages break without notice. The practices reference now has plugins copy markup, CSS, and behavior from primitives, or inspect the rendered host control, and keep --dsw-alias-* tokens as the only shared styling dependency. * fix(preset): correct plugin practices against runtime behavior - agent.ctx registrations need a plugin-owned disposer too; plugin unload does not remove them. - Timers start work with followup(); inject() does not wake the agent. - inject() logs agent/inbox/spliced at call time; agent/request cannot change messages. - Guards are synchronous; awaited decisions return ask from tools/pre-execute. - Chat node renderers are keyed by kind; slot inject reinstalls on declaration return. skills.spec now keeps whole-file cordis-plugin-development references below the pruner threshold as the read tool renders them.
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.