The project's README from github.com/T-Auto/dsh-std. As one markdown file: README.md.
English | 中文
In plain terms, DSH Standard is a set of universal interoperability protocols. Its goal is simple: let DSH plugins, background runtimes, and various user interfaces (TUI terminals, Web UIs, desktop apps, headless daemons) decouple cleanly and work together smoothly.
@dsh-std/core is a "meta-protocol" (the protocol about protocols). Domain-specific protocols—like Command, Tool, Model, and Presentation—sit on top of this meta-protocol substrate for discovery and negotiation, each versioned independently. Different hosts and applications only implement the parts they actually need.
Reference packages provide types, validators, and pure-function negotiators. Conforming implementations are not required to depend on these npm packages, nor do they need to run inside DeepSeek Harness.
Most protocols you deal with handle specific domain tasks:
In contrast, @dsh-std/core knows zero domain business fields (it doesn't even know what a command or a model is). It is purely the "protocol about protocols":
apiVersion + kind), how participants declare what they need (requires) and what they provide (supports), and how to run pure-function negotiations to output a structured compatibility report.Why is this powerful?
Monolithic frameworks hardcode every capability (commands, storage, events) into a central SDK; whenever a new domain arises, the entire framework requires a release or a breaking change. Under a meta-protocol architecture, the protocols themselves are pluggable plugins: public standards, community extensions, and private protocols alike register as standalone protocol definitions. The core never changes, letting the ecosystem evolve boundlessly on its own.
The upstream DSH core and downstream ecosystem plugins have inherently different engineering priorities:
The Adapter serves as a single-point shock absorber:
It isolates the upstream runtime from the universal protocol layer. DSH is free to refactor aggressively; all potential breaking changes are absorbed within a single adapter layer (@dsh-std/adapter-dsh), shielding the broader ecosystem from code churn. Similarly, standalone TUIs, Web frontends, and remote runners can plug in via their own adapters on equal footing.
Shielding plugins from upstream breaking changes is just the baseline. In day-to-day development, this architecture brings several concrete superpowers:
dsh-plugin.json), marketplaces, hosts, and CI tools calculate compatibility in milliseconds without running a single line of plugin code. No more installing a plugin only to find out it crashes at runtime.Meta-protocol (core) only defines how protocols are declared and negotiated; no domain concepts, no fixed roles
|
Domain protocols connection / command / tool / session / presentation / agent ...
| independently versioned, implementable and replaceable; future protocols may supersede them
|
Profiles admission and interoperability specifications for concrete product shapes,
carried by ecosystem projects (e.g. dsh-ecosystem-spec provides the TUI Profile)
@dsh-std/adapter-dsh.The code and proposals are early drafts.
Each package records changes in its own CHANGELOG.md. Public contract modifications must update the corresponding changelog.
Node.js ^22.19 || >=24 and pnpm are required.
pnpm install
pnpm check