@deepseek-ai/dsh-client-ui-primitives
@deepseek-ai/dsh-client-ui-primitives is a shared library inside a DeepSeek Harness profile: React atoms shared by every web-UI plugin.
Currently 0.2.2-rc.3. It is not a plugin row: it has no panel to install and should not be removed on its own, because other packages are built on it.
What it is
Controls, icons, markdown rendering, and the KaTeX and Shiki pieces come from one place, so a panel written by a third party looks like it belongs to the app.
Its own dependencies list React, clsx, anser, katex, shiki and a set of markdown/micromark packages — that is the actual surface a web-UI plugin builds on.
It arrives with a profile, not as an install
None of the 16 profile packages depends on it directly; it comes in with the plugins that declare it as a peer.
No profile package depends on it directly; it comes in with web-UI plugins that declare it as a peer. A CLI-only profile can have none of it, which is why it is not part of the 16.
"@deepseek-ai/dsh-client-ui-primitives": "0.2.2-rc.3"
# $DSH_HOME/profiles/<name>/package.jsonWho uses it
6 community plugins declare it as a peer; each page shows what it patches.
Version and engines
npm publishes 0.2.2-rc.3 (2026-11-13), after 0.2.2-rc.2 on 2026-11-12. latest is stale at 0.0.1-rc.1. No engines.dsh: it is a component library, and the dsh range is enforced by the plugins that use it.
Common questions
Do I need to know React to use a plugin that builds on it?
No. It matters when you write or patch a plugin: the components are already there, and re-implementing a control instead of importing it is how a third-party panel starts looking foreign.
Why do two unrelated plugins look consistent?
Because they render the same atoms. Buttons, focus rings, code blocks and math come from this package, so a theme change reaches both without either plugin knowing about the other.