Noob-stupid/dsh-connection-card-host

Makes a connection a first-class object in DeepSeek Harness: sessions are nodes, a connection is the container, and cards are connection-scoped plugins.

dsh-connection-card-host makes a connection between DSH sessions a first-class object: sessions are nodes, a connection is the container, and cards are connection-scoped plugins — a 'connection-level plugin host'. Connections are created by dragging the circle beside the composer (or a session row's '…') onto another session row, and they persist across DSH restarts. Three separate layers live on a connection: pull-based work-state awareness (zero context cost until the peer asks), a shared 'convention box' of agreements, and push-based messaging with four urgencies (quiet, normal, urgent, and preempt — off by default, able to interrupt a running turn under strict conditions and never failing, degrading to urgent when conditions are unmet). Cards are plugins mounted on one connection with per-side visibility (both / A only / B only), and their tools are reached through a single resident connection_card_tool bridge (one schema total). Cards install from a package name, a repo tgz URL or a local directory into $DSH_HOME/connection-cards/cards/, with no pnpm, no DSH profile change and no DSH restart. Permissions are per direction (read-only / suggest / write), and all persistent state lives under $DSH_HOME/connection-cards/ including connections.json and a tamper-evident audit.log.

Web UI Enhancements ★ 1
View on GitHub ↗

Install

dsh plugin --profile web add @noob-stupid/dsh-connection-card-host

Copied verbatim from the README's 'Install' → 'From npm (recommended, version-pinnable)' section. No placeholder is used. The README also documents a version-pinned release-tarball channel (dsh plugin --profile web add https://github.com/Noob-stupid/dsh-connection-card-host/releases/download/<tag>/noob-stupid-dsh-connection-card-host-<version>.tgz) and a GitHub channel (dsh plugin --profile web add github:Noob-stupid/dsh-connection-card-host, which installs the latest commit on the default branch). Prerequisites: pnpm on PATH (dsh plugin shells out to it), and DSH gates on the peer version at install time. Uninstall is dsh plugin --profile web remove @noob-stupid/dsh-connection-card-host; state lives under $DSH_HOME/connection-cards.

Compatibility

The README states no Node version range. peerDependencies declares @deepseek-ai/dsh >=0.2.0-rc.1 <0.3.0 (plus @deepseek-ai/cordis and two @deepseek-ai/dsh-client- packages); all four peers carry peerDependenciesMeta.optional so installing by package name adds exactly one package without dragging in the @deepseek-ai/ tree — DSH's evaluatePluginCompatibility reads only peerDependencies, so the optional marking does not weaken the gate, and DSH refuses clearly at install time on a version mismatch. Requires pnpm on PATH; lib/ is committed and shipped, so there is no build step. Installs into a profile (e.g. --profile web) and adds a client UI via DSH Web slots.

Details

FAQ

Do I need a connection before I can use cards?
Yes. The README (FAQ) states a card is mounted on a connection, and only sessions on that connection can call the tools it provides.
Does mounting a card change my DSH profile?
No. The README states cards install under $DSH_HOME/connection-cards/cards/<id>/ with no pnpm run, nothing written to dsh.profile.bundles and no restart — once mounted on a connection, the tools are usable immediately.
Why can't I mount a popular plugin as a card?
The README says it is most likely the scope, module or capability gate, and the refusal names which gate failed and why. The most common cause is a package that ships source without committed build artifacts, because the host never builds anything.

Alternatives

omdsh-dev/DSH-better-sidebar · heartmove/dsh-side-chat · Fishquito7/dsh-skill-mcp-panel

More plugins in Web UI Enhancements

Browse more in Web UI Enhancements

Guides for Web UI Enhancements plugins