DSH / REGISTRY / PLUGINS

DeepSeek Harness plugin registry

Discover built-in modules and installable community bundles with pinned source, runtime facts, and bilingual documentation.

Browse plugins177results

Community additions — Community records pin public source. Issue submissions pass automated bundle checks; selected older records were source reviewed. Neither is a security audit or official endorsement.

dsh-acp

Included in DSHBuilt-in source

Automation-only Agent Client Protocol server over JSON-RPC stdio. Programmatic clients create fresh harness agents, send text prompts, collect committed assistant text, resolve one-shot permission requests by policy, and cancel work. The primary in-repository client is `dsh-subagent-acp`.

acpPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-api-gateway

Included in DSHBuilt-in source

Two-sided Typert RPC endpoint for Host and Client Cordis environments. The Host entry provides `ctx.typertGateway`, while `@deepseek-ai/dsh-api-gateway/client` provides `ctx.remote`; both consume the same generated `InvocationDescriptor` contract and leave business selection to API Remotes and transport, request correlation, trust, and response envelopes to Connection.

PlatformPluginsWeb UIbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-api-remotes

Included in DSHBuilt-in source

Two-sided BFF for Host Remote capabilities selected by this application. The Host entry owns Agent/Session identity policy; the Client entry imports generated `/remote` artifacts as runtime values, mounts each contribution through `ctx.remote.$mount()`, and re-exports their declaration merges. Client business packages depend on this facade rather than the Gateway implementation or individual Remote runtime entries.

PlatformPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-attachment-local

Included in DSHBuilt-in source

The private local implementation of `@deepseek-ai/dsh-attachment`. Objects land at `<DSH_HOME>/attachments/v1/objects/<sha256-prefix>/<sha256>` and are addressed by an opaque `sha256:` id. Each process proves a home durable once by syncing every ancestor entry to the filesystem root, so a directory another process created but has not yet synced is never mistaken for a safe boundary. Writes then use a private staging directory, owner-only files, a synced temporary file, an atomic exclusive hard-link publish, and directory syncs on the publication path (POSIX; Windows relies on filesystem metadata journaling) so the reported reference survives a crash. Write admission and reads fully decode the raster before accepting its format and dimensions; reads also re-check the digest and logged metadata. Byte and pixel limits are write-time admission policy, so a later policy reduction does not make already-admitted history unreadable.

attachmentPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-base

Built-in profile layerBuilt-in source

The shared dsh core as a profile bundle: `cordis.patch.yml` inserts every base plugin row — model adapters, the shared `agent-default-model` selection, tools, persistence, policy, settings/credentials, telemetry, and host-level subagent providers — over the empty profile root, as the first layer of every profile's `dsh.profile.bundles` list. Codex and Claude Code providers load dormant; Agent Presets independently decide whether their agent contributes either model-facing delegation tool. Later bundle layers (e.g. `dsh-web-app`) and the user's profile `cordis.patch.yml` override these rows by id; a patch replaces a row's whole `config`, so mode-specific values live in mode bundles, not here. The package has no runtime API; the profile composer resolves the patch through the `dsh.bundle.patch` manifest field, never through code.

BundlesBundlesbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Bundles
Availability
Web

dsh-headless

Built-in profile layerBuilt-in source

The dsh one-shot bundle. `cordis.patch.yml` rides directly over `dsh-base`: it supplies the coding persona and tool mode, disables HMR, mounts Code Mode's worker as a core execution capability, and inserts this package's `headless-runner` plugin (config `{task}`, resolved from the injected `headlessStartup` provider). It mounts no Host, HTTP server, Web runtime, or browser plugin.

BundlesBundlesConfigurableheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Bundles
Availability
Included in DSH

dsh-web-app

Built-in profile layerBuilt-in source

The dsh browser-surface bundle. `cordis.patch.yml` rides over `dsh-base`: it sets the coding persona, inserts the Web host rows (webserver, API gateway, workspace, projection cache, storage) and the browser plugin roster, the always-on client-plugin reload chain (`dsh-client-hmr`, idle until a rebuild watcher rewrites client bundles), and mounts this package's `web-runtime` glue plugin (config `{printUrl, surfaceContext, trustedHosts}`). That plugin resolves the built frontend dist through `@deepseek-ai/dsh-web-frontend`'s exports, samples bind-dependent LAN trust once, provides it as `webRuntime` to the browser-trust fence and client roster, mounts the `frontend-static` fallback owner, registers the harness-source and web-surface prompt sections plus the bash-visible `DSH_WEB_URL` runtime variable when `surfaceContext` is true, and prints the `dsh web:` URL line when `printUrl` is true, after its Loader tree settles so a sibling failure cannot announce a dead app. This bundle also owns the app command line: the ordinary `web-startup` provider (`src/startup.ts`) injects `ctx.cmdlineArgs` (`dsh-cmdline`), parses `--host`, `--port`, repeatable `--trusted-host`, and the app's `--help`, then provides `webStartup`. It rejects `--host 0.0.0.0` before publishing that service because the CLI intentionally does not support all-interfaces binding yet. Flag-configured rows inject the service and read it directly from lazy config, so nothing binds a port before argument resolution and `dsh --profile web --help` starts no server. `dsh-headless` is a sibling surface over the same base and does not mount this bundle.

BundlesBundlesConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Bundles
Availability
Web

dsh-client-connection

Included in DSHBuilt-in source

Wire consumer layer: the client plugin's apply mounts `ctx.connection` (shared api client + current-page loopback state + observable generation-scoped `hostDescription` + single-consumer stream-loop starter); the export face carries the wire contract types, the `AbstractApiClient` abstraction, and the loop's sink/config types. Each successful readiness handshake publishes the exact `host.describe` value before `onConnected`; generation loss and explicit stop clear it, so native-capability consumers never retain a disconnected answer. The browser carrier uses HTTP POST for unary and respond operations and opens one downlink-only WebSocket each for `events.mux` and `events.host`; the in-process carrier satisfies the same two-stream abstraction. The Host half owns the single `/api` route and its Fetch bridge; a registered Typert interceptor claims its Remote endpoints before the API Proxy fallback. Loopback hostname classification stays package-internal: the `/api` Host fence and WebSocket upgrades use it directly, while other client plugins consume the derived `ctx.connection.isLoopback` state. The node half's `/api` route pins the privileged method set (`host.pickDirectory`, `host.openPath`, and the whole configuration plane — `settings.describe`/`openDocument`/`update`/`replace`/`mutate` and `credentials.describe`/`set`/`unset`; reads and native actions included, since describing returns the exposed configuration, opening acts on the Host desktop, and probing an arbitrary reference reports where a credential comes from — and the agent-preset authoring plane, `agentPreset.read`/`copy`/`openDocument`/`remove`, since a composition names the plugins a session runs, so reading one is reconnaissance, and copy/remove/openDocument manage the roster and drive the host desktop (authoring is copy-only, so none of them accepts composition text or a path); `agentPreset.list` and `agentPreset.select` stay out — the roster carries only ids and trust, and choosing a preset grants nothing `session.create`'s own `agentPreset` did not, over a default that already carries bash) to loopback by passing the trust fence with an empty trust list — a declared `trustedHosts` authority reaches every other method, while these stay loopback-local until a real authentication layer exists. The platform carriers and ConnectionController loop are package-internal; apply selects and drives them. The downlink boundary is documented in the WebSocket downlink carrier Agent Note.

UI & clientPluginsConfigurableWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-hmr

Included in DSHBuilt-in source

Hot reload for script-loaded client plugins. The web bundle mounts the row unconditionally; without a rebuild watcher (`pnpm run dev:web`) rewriting client bundles, the poll observes no changes and the chain stays idle.

UI & clientPluginsConfigurableWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-locale

Included in DSHBuilt-in source

Locale plugin: LocaleRuntime — the `zh`/`en` preference stored as `locale.preference` in `$DSH_HOME/settings.yaml`; when that explicit Host value is absent, a fresh browser starts provisionally in the language `navigator` asks for (primary-subtag matching, with `zh` when it asks for no language this app ships). The Host read runs after plugin activation so an unavailable settings service cannot block the page; its result replaces the provisional browser value live. Remote browsers retain only a process-local selection because the settings API is loopback-only. `locale/change` fires on switches. The service also owns the ns×locale dictionary registry (typed `register(ns, {zh, en})` checked against `LocaleNamespaceMap`, `bind(ns)`→`TranslateNS<ns>`; lookup chain ns → common → zh → key), implements the slot system's `LocaleFace`, and installs itself through `ctx.slots.installLocale`, backing the framework-injected `t` standard seat (`Translate`/`TranslateNS` are ui-slots types; import them from there — this package only re-exports for dictionary owners' convenience). The Host-backed preferences decision owns the persistence boundary.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-modules

Included in DSHBuilt-in source

Client module system: the browser peer of Node's internal ESM loader, built as a lazy CJS table. The web shell mounts the vendored cordis Loader for entry governance (fiber lifecycle, inject waiting, update/refresh) and injects this package's `ClientModuleLoader` through its `internal` contract — the vendored side's only consumption point is `EntryTree.import`, so replacing `internal` replaces exactly "how plugin code arrives" and nothing else.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-runtime

Included in DSHBuilt-in source

Client cordis boot and React-free object services: SlotRegistry wraps SlotCore and supplies renderer data sources; SessionRuntime owns Session objects, list and scope state, and the shared event window and history paging used by registered conversation view targets. WorkspaceRuntime depends on SessionRuntime and owns Workspace objects, list/actions, default-target derivation, and the New Session blank-reuse entry (`connectWorkspace`). The runtime fans the shared Host stream into Session and Workspace owners and hands each generic `host/remote-event` frame to `ctx.remote.$dispatch`; domain packages subscribe to their owner events through `ctx.remote.$on` and decide which caches or session rows they invalidate. Client sessions are always Host-born (Session+Agent+cwd in one `session.create`); the client holds no pre-entity session state — a session's Agent scope (the client mirror of host dsh-scope, keyed by the shared agent/session id) is born when its row enters the list mirror and dies with the prune. Contract: api-contracts v3 §4. Each `Session` holds a generic `ProjectionValueStore` seeded from the history-tail `projections` block and updated by `session/projection` frames under higher-seq-wins; domain keys (including `todos`) are read via `projections.faceOf` / `useProjection`, not via `ConversationSnapshot`. The store also publishes one reference-stable whole-value map through `SessionSummary.projectionValues`, allowing global list consumers to reuse the same projections without creating per-session subscriptions.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-agent-preset

Included in DSHBuilt-in source

The agent-preset surfaces: a General-settings row choosing which preset new sessions are composed from, a chip on the new-session screen choosing the next session's, a read-only label in the session header, and a settings section that manages the roster — copy, delete, default, and the way into a preset's own files.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-commands

Included in DSHBuilt-in source

Client command API (`ctx.commandUi`): the session-keyed command-directory cache, the `/` command source with `matchSpace`/`matchEnter` decision hooks, three-kind dispatch (`execute` / `popupSelect` / `leadingInput`), and popupSelect registration for business packages. The web command Agent Note records the decision.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-conversation

Included in DSHBuilt-in source

Conversation domain: skeleton (header/tabs/composer/empty state), chat view (grouped step-summary flow, streaming tail isolation, and turn status), composer dock (session stats sticky with the input), input dock (queue rows plus the todo plan strip), details shell, and scope-addressed ConversationController. Tool presentation belongs to `ui-tool`.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-deliverables

Included in DSHBuilt-in source

Produced-files and clickable-reference feature owner. The Node half registers final-response guidance with the system-prompt registry; the browser half registers the deliverables row a finished turn ends with into the chat view's `conversation.chat.turnTail` hole and links matching inline-code references in the closing prose. The shipped Web patch is the only composition that loads this package. Removing its one cordis.yml entry removes the guidance, row, and prose links together.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-directory-picker-browse

Included in DSHBuilt-in source

In-app directory browsing surface: the browser half of the browse picking interaction. It fills ui-workspace's two directory-flow holes (`conversation.hero.workspace.directoryFlow` and `sidebar.workspaces.directoryFlow`) with the Select Workspace Directory dialog, driving the local Host's `host.listDirectory` and `host.createDirectory` primitives through `ctx.workspaces`. Its node counterpart is `dsh-host-directory-picker-browse`; mounting this package composes the surface with that backend from one cordis.yml row, so no client code branches on a capability kind. Unlike the `-native` surface, the dialog needs no local operating-system chooser, so it also serves in-process and remote-browser deployments.

UI & clientPluginsWeb UI
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Included in DSH

dsh-client-ui-directory-picker-native

Included in DSHBuilt-in source

Native directory-picker surface: the browser half of the native picking interaction. It fills ui-workspace's two directory-flow holes (`conversation.hero.workspace.directoryFlow` and `sidebar.workspaces.directoryFlow`) with a renderless occupant that answers each `open` request by driving the local Host's OS chooser through `ctx.workspaces.pickDirectory()`, then reports exactly one outcome — a picked path, a cancellation, or a failure — back through the owner conversation. The OS dialog itself belongs to `dsh-host-directory-picker-native`; mounting this package composes the surface with that backend from one cordis.yml row, so no client code branches on a capability kind.

UI & clientPluginsWeb UI
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Included in DSH

dsh-client-ui-goal

Included in DSHBuilt-in source

Goal surface plugin, browser half: the `GoalBar` strip is the second standalone card in the `conversation.input.dock` composer-context stack (order 10, after Todo and before Queue). The live goal arrives through `useProjection('goal')` — the host-computed whole value seeded by the history tail page and updated by `session/projection` frames — so the plugin owns no domain store, refresh chain, or event listener. The slot inject face carries only the four mutation verbs (edit / pause / resume / clear through `ctx.remote.goals` — an active goal offers the pause action, a paused one resume); each reads the CAS ref from the session's current projected value at call time and surfaces the rejected Remote error inline. The strip single-flights mutations synchronously because React's pending render cannot fence same-frame clicks; after a successful clear it immediately suppresses that exact goal id while the authoritative null projection catches up. Goal creation stays on the `/goal` host command; loading, absent, completed, and successfully cleared goals render nothing.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-input-trigger

Included in DSHBuilt-in source

Input trigger pipeline plugin: `/` and `@` detection under the caret (word-boundary + guard-tier rules), the grouped candidate menu, and pick routing to registered sources. `ctx.inputTriggers` owns the source roster and resolves one `InputTriggerController` per session scope (`sessionOf`); the conversation wiring layer drives `track`/`arbitrate`/`onSpace`/`adjudicate` on the controller. The same controller exposes `toggleSource` for a chrome launcher to open exactly one registered source over a synthetic selection span; the resulting candidates still use the ordinary menu, keyboard arbitration, pick callback, and scoped input mutations. Sources receive a `ClientSessionContext` projection per call — sessions are always agent-backed, so the projection is the session identity alone. A source is warmed in every session controller it can reach: the roster present at scope birth warms during controller construction, and a source registered later is warmed into every live controller by the registration itself. Sources whose `lexicon` roll changes after warm implement `subscribeLexicon(session, listener)`; the controller re-polls on each notification and publishes the aggregation through its `lexicon` snapshot store. The pipeline is command-agnostic: space/enter adjudication polls the optional `matchSpace`/`matchEnter` hooks in registration order and the first non-undefined answer wins.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-jobs

Included in DSHBuilt-in source

Web background-job feature owner: contributes one entry to `conversation.session.header.actions` listing the `ctx.jobs` records this session can see. The data arrives entirely through the `jobsBySession` list mirror that `dsh-client-runtime` folds from `session/jobs` frames, so this package issues no RPC and holds no state beyond popover visibility.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-layout

Included in DSHBuilt-in source

Shell plugin: three-column AppFrame (drag handles and concession chain) plus the `ctx.layout` panel-geometry service; it registers into the runtime-owned `root` slot and declares `sidebar`, `conversation`, `details`, and `conversation.empty`. The sidebar resize boundary is an invisible hit strip, while the details boundary retains its floating pill; only details shrinks during concession and then auto-closes. A closed sidebar retains a 56px control rail while details closes to zero width. The package also seats the theme presenter: it consumes resolved `ctx.theme` snapshots and projects them onto the document (`html { color-scheme }` for native UA chrome, `body[data-ds-dark-theme]` from the active color scheme, the theme's alias tokens as inline variables on body, and one owned `<meta name="theme-color">` whose content follows the computed body background). Measuring after palette and token application keeps the rendered background as the single color authority; disposing the presenter removes its metadata node with its other global writes.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-message-feedback

Included in DSHBuilt-in source

Per-message feedback plugin, browser half: a Like/Dislike pair plus an optional note, contributed as the `feedback` entry (order 10) of the `conversation.chat.assistant-actions` strip. The strip is declared by `ui-conversation` and rendered inside the finalized assistant message's IconActions row, between copy and branch, so the controls inherit that row's chrome and hover behavior. Only finalized messages reach the slot — an interruption-frozen partial carries no `messageId` and therefore no feedback controls. The strip renders once per turn, on the closing assistant message that owns the turn's IconActions row: earlier steps of a multi-step turn produce tool rows rather than a rateable body, so they present no controls even though the Host would accept them as targets.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-model-selection

Included in DSHBuilt-in source

Model selection plugin, browser half: TWO entries over ONE per-session directory owned by `ModelDirectoryResolver` (`ctx.modelDirectories`). For ordinary sessions, the `/model` popupSelect contribution (registered through `ctx.commandUi`) and the composer's named `conversation.input.model` seat both load the session's advisory directory through `session.models` and submit through `session.selectModel` via the same `ModelDirectory` instance. The compact composer trigger opens a two-level Model/Effort menu: models stay provider-grouped, while the selected exact model supplies its adapter-owned effort names, descriptions, and default. `/model` applies the selected model's default effort, and the composer can then choose any advertised effort.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-permission-presets

Included in DSHBuilt-in source

Permission browser surfaces for two different lifetimes. The General-settings row reads the explicitly exposed `permission` Settings descriptor, derives its options from the host's dynamic `defaultPreset` enum, and writes one `settings.mutate` path operation with the descriptor revision. Its observable rides the slot system's `hooks` compartment, so the renderer owns React hook binding; a push invalidation refetches the descriptor. This value applies only when a later session is created; changing it does not switch the current session. Choosing Full access requires an explicit risk acknowledgement before the row writes it.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-plan

Included in DSHBuilt-in source

Plan-mode status chip, a pure browser surface plugin. The browser half occupies the conversation-declared `conversation.input.plan` single seat (to the right of the access-mode control); the node half is an empty apply (the roster row). Plan behavior itself — the `/plan` command, the boundary-or-idle-committed `plan/mode` state, the `plan` projection unit, and the policy section — is owned by `@deepseek-ai/dsh-plan-mode`, composed independently on the host roster.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-settings

Included in DSHBuilt-in source

The settings domain's base layer, with two roles and no presentation of its own. It provides `ctx.settingsScope`, the Host transport every preference row binds its durable namespace section through, and it declares the settings slot types registrants fill: `settings.trigger` / `settings.header` / `settings.close` (chrome content), `settings.action` (ordered content-header actions), `settings.section` (one page per feature), `settings.plugins.tab` (feature-owned pages inside the Plugins section), and `settings.onboarding` (ordered feature-owned pages). It depends on no `ui-*` presentation package, so any feature that owns a preference can reach it; the settings SHELL — the `sidebar.settings` occupant, its navigation, and the chrome — lives in ui-settings-general, because a shell dependency on ui-sidebar would close a reference graph cycle through ui-layout and ui-theme. The shell's own contract types live beside the shell for the same reason.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-settings-general

Included in DSHBuilt-in source

Settings shell, ownerless copy, and durable product-onboarding namespace. It occupies `sidebar.settings` with the trigger chrome and modal settings panel, projects the `settings.section` ledger into the navigation and the `settings.onboarding` ledger into one mounted step at a time, and registers everything on the Settings pages that belongs to no single feature — the trigger/header/close chrome content, the local configuration-file action, the General section and its `settings.general.item` slot, and the `settings` dictionaries. The slot types it renders into belong to ui-settings, the settings domain base; only the shell's own contract types live here, because they reference ui-sidebar's slot type and the base layer must depend on no `ui-*` package. Feature-owned rows (Permission, Language, Appearance), sections (Models), and conditional onboarding steps stay with their feature packages.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-settings-models

Included in DSHBuilt-in source

Models settings and product-onboarding plugin. The same client Cordis plugin registers the Models page plus two ordered first-run dialogs: a versioned internal-testing notice and the conditional official-DeepSeek credential step. Both steps share one modal wrapper and remain sequenced by `settings.onboarding`. The Models plane joins three wire domains into one shared snapshot — `llm.providers` (the configurable-provider directory with each route's live/dormant state), `settings.describe` (serialized schemas, layered redacted values, secret slots), and `credentials.describe` (value-free configured/source/writable badges) — and renders provider rows with one editor card at a time, without presenting route liveness as provider status.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-settings-plugin-inventory

Included in DSHBuilt-in source

Read-only **Plugin list** tab for Web Settings. The browser plugin registers one localized `settings.plugins.tab` contribution with id `all`; the Plugins section owns the navigation entry and tab chrome. It performs no Remote read during plugin activation. Selecting the tab for the first time mounts it and lazily calls `ctx.remote.pluginInventory.list()` through `api-remotes`.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-settings-plugins

Included in DSHBuilt-in source

The **Plugins** settings section and its **Plugin configuration** tab. The section owns the heading and compact tab chrome; feature plugins contribute pages through `settings.plugins.tab`. This package's own tab shows one expandable card per Host plugin whose configuration a user owns. A card shows the plugin's name and what it governs; expanding it in place reveals hand-written controls bound to that plugin's settings namespace, each field marking whether the user overrode it and offering a reset back to the value the deployment composed.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-sidebar

Included in DSHBuilt-in source

Sidebar shell plugin: the wordmark, New Session action, layout-owned collapse control, scroll-aware region seat, and bottom-pinned Settings seat. ui-workspace owns the Workspace and Session browser rendered into `sidebar.workspaces`; this package neither derives its rows nor owns its view preferences. Collapse into the layout-owned 56px rail remains presentation-local. Contract: the slot system standard.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-skill

Included in DSHBuilt-in source

Skill invocation source, browser half: registers the `/`-trigger `skill` source into `ctx.inputTriggers`. Ordinary-session candidates come from the `skill.list` RPC addressed by the per-call `ClientSessionContext` projection's `{sessionId}`, with the host resolving `cwd` from the session header. The host serves every user-invocable skill; a `modelInvocable: false` entry (a `disable-model-invocation` skill, whose only entry point is this path) wears the user-only marker as a description prefix in the active language. Catalog-addressed continuable children resolve no skill candidates locally because the existing skill RPC requires an attached session; viewing their persisted history must not activate them. Catalogs cache per ordinary session with a single-flight fetch; the scope-birth `warm` hook prewarms the session's entry, the forwarded `agent-preset/selected` owner event drops that one session's entry (the catalog belongs to the preset, and a blank session may switch after the warm), and `connection/reset` clears everything. Results filter by `startsWith(query)`.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-subagent

Included in DSHBuilt-in source

Web subagent feature owner: contributes the lazily expandable catalog tree to `conversation.session.header.actions`, reason-specific read-only replacements to the conversation composer chain, and the existing `@` reference source to `ctx.inputTriggers`.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-theme

Included in DSHBuilt-in source

Theme plugin: ThemeRuntime over the --dsw-* token base stylesheets (static scale + alias semantic layers). The service owns the live theme preference (`light`/`dark`/`system`), resolves `system` through `prefers-color-scheme`, and publishes immutable `ThemeSnapshot`s on the `theme/change` event; it never touches the DOM — ui-layout's presenter applies the resolved snapshot (`html { color-scheme }`, `body[data-ds-dark-theme]`, and inline alias tokens). A loopback browser provides the service immediately with `system`, then loads `ui-theme.preference` in the background and writes each built-in selection through the Host settings API, whose local provider stores it in `$DSH_HOME/settings.yaml` by default; pushed settings changes and reconnects refetch it, rapid selections are serialized in gesture order with namespace revisions, and a rejected latest write reloads the durable value. A remote browser cannot access the privileged settings API, so its selection remains process-local. Third-party registered theme ids remain an in-process extension and do not cross the built-in settings schema; removing one never overwrites the last durable built-in preference. The Host-backed preferences decision owns the persistence boundary.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-tool

Included in DSHBuilt-in source

Client Tool presentation plugin. `ui-conversation` dispatches each ordered `tool-call` Conversation Node through the matching key of `conversation.chat.node`; this package renders its root and Code Dispatch children, then dispatches every atomic call through the keyed `tool.call.toolview` slot. Unregistered Tool names use the generic card.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-trajectory

Included in DSHBuilt-in source

Trajectory renders a turn-aware event ledger with selectable User, Assistant, Tool, and nested Subtool records. Thick rules mark Turn boundaries, compact inline markers identify Steps, and the main ledger keeps only index, event, and content; selection opens a local inspector for token usage, duration, Input, Output, and Timing. Scrollable Summary regions keep their scrollbar thumbs transparent until the region is hovered or contains keyboard focus, without changing the reserved scroll geometry. A standalone compaction request appears chronologically in its own `Between turns` section, while a numbered compaction remains inside its owning turn. Long ledgers open at the current tail, load one older page when the user reaches the loaded range's top, and mount only the visible row window plus a small overscan; request-only separators share the next measurable virtual item, while semantic row keys and ARIA indexes survive prepends. Selection, timeline navigation, folding, search, and Request totals cover the currently loaded window. The ledger covers records with an explicit loading row until the initial tail is positioned. While an older prefix remains unloaded, a first-row control precedes the loaded records, loads one earlier page on click, and changes in place to a disabled loading status while that page is pending. A fixed Overview above the ledger projects real record start/duration timing from left to right; when earlier records remain unloaded and the viewport includes the loaded domain's start, a neutral ellipsis control identifies the omitted prefix and loads one earlier page without assigning unknown history fabricated duration. Assistant spans divide recorded TTFT from decoding, and a 500 ms hover reveals exact clock and duration details. Dragging an interval focuses the ledger on every record active at any point in that inclusive range, while clearing the selection restores the full loaded ledger. Wheel gestures zoom the time domain. A right-button click clears the selected interval, while a right-button drag pans an already zoomed viewport without changing it. The initial view and streaming updates stay at the tail; scrolling upward suspends following so new records do not interrupt inspection of earlier rows. Content-only stream frames preserve virtual row keys and heights, reuse measurements, and do not issue repeated tail-scroll writes. Completed replies retain assembled blocks, timing, and usage in Trajectory target State, while the shared Session window keeps the raw Events. Trajectory asks the conversation shell to float the composer over the full-height ledger, while its responsive vertical scrollers reserve the composer's live height so final rows remain reachable. Trajectory-owned Definitions assemble business records, including cancellation-frozen Assistant and Tool records, from the shared Session window, so Trajectory neither reads nor changes the Chat conversation snapshot. The package provides no service and declares no Context merge; it registers target-specific Event Definitions, a Trajectory view builder, and one tab in the conversation's `'conversation.view'` slot ring. Contract: api-contracts v3 §8.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-user-questions

Included in DSHBuilt-in source

Web question feature plugin: its browser half registers the `question` entry in the conversation-owned `conversation.composer` keyed slot. Its host half is empty on purpose — mounting `dsh-tool-ask-user` there put the tool in the registry's GLOBAL layer, which merges into every agent regardless of the preset that composed it, so a two-tool benchmark preset really presented three. Rendering a question is a host UI capability; having the tool is an agent capability, so the `tool-ask-user` row belongs to the presets that want it (and to the TUI composition, which has no presets).

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-workflow-run

Included in DSHBuilt-in source

The browser plugin that reconstructs durable top-level workflow runs as independent Chat nodes. It consumes the four `tool-workflow/*` Session events owned by `dsh-tool-workflow`, registers one `ConversationNodeDefinition`, and renders through the keyed `conversation.chat.node` slot without changing the existing workflow tool card.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-client-ui-workspace

Included in DSHBuilt-in source

Shared Workspace browser and picker plugin. `WorkspaceBrowser` fills the sidebar's `sidebar.workspaces` slot, while `WorkspacePicker` fills the page-local Session Intent hero's `conversation.hero.workspace` slot; both surfaces use the same Workspace menu and add flow.

UI & clientPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-code-runtime-worker-thread

Included in DSHBuilt-in source

Worker-thread implementation of the `@deepseek-ai/dsh-code-runtime` seam: `WorkerThreadCodeRuntime` runs each program in ONE fresh Node `worker_threads.Worker` — TypeScript in, type-stripped host-side, bindings bridged over the message port, `{ value, logs, error? }` out. **Containment, not a security boundary**: trust posture is bash-equivalent by design (the Code Mode Agent Note § Trust posture), with containment bash does not have — separate isolate, empty environment, heap cap, hard termination.

RuntimePluginsConfigurableheadlessweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-command-compact

Included in DSHBuilt-in source

Human-facing `/compact` control over `ctx.compaction`. The plugin registers one global command through `ctx.commands`, so every composed command adapter discovers and executes it without a model turn. The queued manual compaction Agent Note owns the admission, lock, and durability decisions.

compactionPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-compaction-basic

Included in DSHBuilt-in source

The **basic compaction backend**: a `BasicCompactionEngine` implementing the `@deepseek-ai/dsh-compaction` Service Definition with reusable `ctx.tokenMeter` pressure, token-budget retention, and summarization as a direct one-shot `ctx.llm.stream()` call that replays the conversation prefix to reuse the provider's KV cache (interceptable at `llm/stream`).

compactionPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-compaction-tool-result-pruner

Included in DSHBuilt-in source

The replay-safe model-free pruning service (`ctx.toolResultPruner`). It rewrites over-budget `tool/result` surface nodes to a bounded head, a fixed omission marker, and a bounded tail while retaining the full original event in the append-only session log.

compactionPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-agent-instructions

Included in DSHBuilt-in source

Per-session workspace instruction loading for `AGENTS.md`-compatible files. The plugin injects the initial user-global and project instruction chain into durable history, then discovers nested files and reports later changes or removals after successful filesystem tool calls.

contextPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-reference

Included in DSHBuilt-in source

`ctx.sessionReferenceResolver` prepares bounded, read-only snapshots of other sessions as sourced model-facing context. It consumes `ctx.sessionQuery` and the backend-independent compact checkpoint marker; SQLite FTS is not required. Hosts that support cross-session mentions may opt into the service.

contextPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-time-context

Included in DSHBuilt-in source

Opt-in durable context with the current zoned time, the browser zone attached to the open request, and elapsed time sampled during model-request preparation. Default compositions leave it disabled; the Schedule Web overlay mounts it so the model can interpret otherwise-unqualified dates and times in the user's browser zone. Decision record: the durable time-context Agent Note.

contextPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-tmux-context

Included in DSHBuilt-in source

Opt-in durable context naming the tmux session, window, and pane this agent process runs in, plus the window's pane-tree layout. It is sampled once per turn during model-request preparation and is not part of the shipped Web/headless composition. Decision record: the tmux-context Agent Note.

contextPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-agent

Included in DSHBuilt-in source

Agent interface, registry, process-local initiator scope, and `agent/*` event vocabulary. Every plugin (UI, hooks, orchestrators) programs against the `Agent` handle defined here — it has zero loop dependency, so the loop is swappable.

CorePluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-agent-default-model

Included in DSHBuilt-in source

The deployment default used when an entry point creates an Agent that has no session-local model selection. `AgentDefaultModelConfig` provides `ctx.agentDefaultModel`; direct entry points such as `dsh --profile headless` and Host-backed entry points such as ApiProxy read the same service instead of owning parallel provider/model defaults.

CorePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-agent-loop

Included in DSHBuilt-in source

THE concrete agent plugin and loop driver. Its package-internal implementation satisfies the `Agent` interface and drives the session/turn/step lifecycle.

CorePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-agent-tool-presentation

Included in DSHBuilt-in source

The row an agent preset carries to say which form of its tools the model sees: `native` (every schema), `code` (only `run_code` plus a generated TypeScript SDK), or `both`.

CorePluginsConfigurablepreset:code
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-session

Included in DSHBuilt-in source

Event-sourced session log and in-memory store. A `Session` is the append-only source of truth for an agent's whole interaction history — the LLM message history is *derived* from it. A **surface** layer (an ordered projection of message-producing events) is maintained on top of the raw log for efficient derivation and compaction.

CorePluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-system-prompt

Included in DSHBuilt-in source

System prompt assembly registry. Plugins contribute ordered sections, tool schemas, and named variables. The loop assembles once per step and renders the result as the complete model prompt. This plugin owns the static harness identity and global deployment persona; an agent-scoped persona shadows the global default.

CorePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tools

Included in DSHBuilt-in source

Tool registry and execution pipeline. Tool plugins register their schemas and executors; the agent loop executes each call through `tools/pre-execute` (the extensible allow/deny gate) → monotonic registered guards → `tools/execute` (an around-dispatch wrapper for timeout/retry/metrics plugins) → `tools/post-execute` (inspect/replace the result, attach context) → the definition-owned `finalizeContent` boundary → the observe-only `tools/result` notification. The registry also owns HOW its tools are presented to the model — its `mode` config selects native function calling, Code Mode, or both, and one agent shadows that default for itself with `presentAs`.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-credentials-local

Included in DSHBuilt-in source

File-backed credentials provider: four layers, one honest precedence.

credentialsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-e2b

Included in DSHBuilt-in source

Shared lifecycle owner for one E2B sandbox. The filesystem and subprocess adapters inject `ctx.e2b`, await its single SDK handle, and therefore inhabit the same remote Linux working tree and process world. The package pins `e2b@2.29.1`; the family map lists the opt-in composition.

e2bPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-fs-e2b

Included in DSHBuilt-in source

E2B implementation of the `@deepseek-ai/dsh-fs` provider contract. It has no config: load `@deepseek-ai/dsh-e2b` first, then this service in place of `dsh-fs-local`. The provider uses the owner's remote cwd and SDK handle, so file tools observe the same world as E2B-backed Bash processes.

e2bPlugins
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-subprocess-e2b

Included in DSHBuilt-in source

E2B implementation of the `@deepseek-ai/dsh-subprocess` seam. Load `@deepseek-ai/dsh-e2b` first, then this service in place of `dsh-subprocess-local`. Existing Bash, PTY, and LSP consumers then execute in the shared remote sandbox without E2B-specific capability packages.

e2bPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-acp-demo

Included in DSHBuilt-in source

ACP automation server app: the default agent spine, client-created agents through `@deepseek-ai/dsh-acp`, JSONL persistence, and semantic checkpointing behind one JSON-RPC stdio bin. Programmatic clients create fresh sessions; this package mounts no human UI.

examplesPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-agent-spine-demo

Included in DSHBuilt-in source

The **default executor-less, UI-less agent spine** as ONE Cordis bundle plugin. It loads the fixed set of services every harness agent needs, including the local skill provider, and forwards the loop's `agents` list as its own config — so an app package composes a working agent by adding only an entry point and the swappable backends.

examplesPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-cordis-client-runner

Included in DSHBuilt-in source

Browser half of dynamic dual-half plugin packages. The host-side runner holds every definition's code in process memory and asks the open pages, over a `cordis/request-run` event, whether to run one; this package answers that request, turns the definition into a live browser plugin, and turns a `dynamicCordisRunner/retract` event back into a clean page.

PlatformPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-cordis-host-runner

Included in DSHBuilt-in source

The host half of model-mounted dynamic packages: the definition registry, the `node:vm` sandbox and fiber lifecycle for host halves, the invoke handler table, and the run round trip a browser page carries out. Provided as `ctx.dynamicCordisRunner`. The model-facing tools live in `@deepseek-ai/dsh-tool-cordis`; the browser half is loaded by `@deepseek-ai/dsh-cordis-client-runner`.

PlatformPluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-cordis

Included in DSHBuilt-in source

The self-referential Cordis toolset: five model-facing tools over the live runtime in the current DSH process. The registry, the vm sandbox, and the browser broadcast belong to `@deepseek-ai/dsh-cordis-host-runner` (`ctx.dynamic`), which this toolset injects — a composition with these tools but no runner never activates them. Design home — sandbox semantics, dynamic-package lifecycle and composition, standing decisions: the toolset Agent Note.

Model toolsPluginspreset:cordis
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-client-ui-cordis

Included in DSHBuilt-in source

Cordis dynamic-plugin surfaces, browser half: a frame-wide panel that operates every definition the host holds, and a read-only `cordis_define` card that records what a session defined.

PlatformPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-command-feedback

Included in DSHBuilt-in source

Trigger-independent session feedback plus human-facing `/feedback` capture. The package exports `recordFeedback(session, text)`, which appends one log-only `feedback/record` event. Its plugin registers one global command through `ctx.commands`, so every composed command adapter discovers it; the shipped Web client executes it without a model turn.

feedbackPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-message-feedback

Included in DSHBuilt-in source

Host-owned editable feedback for one finalized assistant message. The package registers `ctx.messageFeedback`, persists one lifecycle-bound sidecar row per Session in storage-domain, and publishes the Host `messageFeedback.list`, `messageFeedback.put`, and `messageFeedback.delete` unary Remote contract. It is separate from the immutable Session-level `feedback/record` event and performs no telemetry handoff. The message-feedback sidecar Agent Note owns the design boundary.

feedbackPluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-fs-local

Included in DSHBuilt-in source

The **local-filesystem implementation** of the `ctx.fs` provider contract (`@deepseek-ai/dsh-fs`). Backs the twelve `FileSystem` primitives with the host filesystem; loading it as a plugin populates `ctx.fs`.

RuntimePluginsConfigurablepreset:minimal
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-fs-observation-policy

Included in DSHBuilt-in source

The **fs-observation-policy plugin**: it records observed presence or absence and adds read-before-edit plus guarded write/edit on top of the `ctx.fs` provider contract (`@deepseek-ai/dsh-fs`) — through the `fs/*` event gate, **NOT** through a method service. This plugin registers **no** `ctx.fsPolicy` service and has no public `read`/`write`/`edit`/`resolve` methods. It is the policy third of the filesystem stack: not a swappable seam, but the policy that does not belong on the `FileSystem` provider base class.

RuntimePluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-fs-sandbox

Included in DSHBuilt-in source

`SandboxedFileSystem` extends `LocalFileSystem` and registers as `ctx.fs`. It inherits every text-storage mechanic verbatim (resolve, stat, read/stream, list, the atomic write, the read-match-write edit critical section) and adds only a per-call MODE fence on `writeText`/`editText`. Reads always pass through — every mode permits reading.

RuntimePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-fs

Included in DSHBuilt-in source

The **model-facing filesystem tools** — `read`, `read_image`, `write`, `edit` — and their **executor**. This is the consumer layer of the filesystem stack: it owns tool names, JSON schemas, argument validation, prompt sections, **read windowing**, and result formatting. It reads/writes/edits through the `ctx.fs` provider contract (`@deepseek-ai/dsh-fs`) **directly**. The freshness/observation policy is contributed by a separate plugin (`@deepseek-ai/dsh-fs-observation-policy`) through the `fs/*` event gate; the tool is not method-coupled to it. Under a confining provider, the shared sandbox-policy service is required for per-session execution and the tool exposes escalation for filesystem mutations.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-fs-search

Included in DSHBuilt-in source

The **model-facing filesystem discovery tools**—`glob`, `grep`—are backed by the **packaged ripgrep binary** (`@vscode/ripgrep`), not by `ctx.fs` provider methods and not by a system `rg` install. Registration is unconditional: the binary ships inside the npm dependency, so there is no load-time availability probe. Each call spawns the binary through the `ctx.subprocess` seam with a fixed argv vector (`--no-config` prepended so a host `RIPGREP_CONFIG_PATH` cannot inject a `--pre` preprocessor into the unconfined spawn; model-controlled values are plain argv elements — no shell layer exists, so no quoting applies), parses the raw `rg` output, and returns a workdir-relative canonical value. The package injects `tools`, `systemPrompt`, and `subprocess`—deliberately **not** `fs`; `ctx.spillStore` is read opportunistically with `ctx.get()` because formatted-result spill is optional.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-str-replace-editor

Included in DSHBuilt-in source

Standalone model-facing `str_replace_editor` over `ctx.fs`. It can be composed with persistent Bash, one-shot Bash, sandboxed Bash, or another terminal surface.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-command-goal

Included in DSHBuilt-in source

Human-facing `/goal` control over `ctx.goals`. The plugin registers one global command through `ctx.commands`, so every composed command adapter discovers and executes it without a model turn. The human goal-command Agent Note owns the UX and composition decisions.

goalPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-goal

Included in DSHBuilt-in source

Event-sourced same-session goal state. The service retains one current completion objective in an agent's existing session while keeping permission to continue as process-local activation. The goal-domain Agent Note owns the design rationale; the goal type catalog records the literal data shapes.

goalPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-goal-round-driver

Included in DSHBuilt-in source

Same-session continuation driver for `ctx.goals`. It turns an active, armed goal into sequential goal rounds through the public `Agent` and session services; the same-session driver Agent Note owns the race and lifecycle rationale.

goalPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-goal

Included in DSHBuilt-in source

The model-facing control tools for `ctx.goals`: `get_goal`, `create_goal`, and `update_goal`. The goal-tool Agent Note owns the authority split and Codex-shaped UX.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-repeat-tool-reminder

Included in DSHBuilt-in source

An advisory loop-breaker, not a model-facing tool: it never appears in the tool list, never vetoes or rewrites a call, and adds exactly one behavior — it watches each agent's stream of tool calls, counts runs of consecutive calls to the same tool with identical canonicalized arguments, and at configured run lengths injects an escalating advisory reminder telling the model to stop repeating itself, re-read the last result, and either change approach or conclude. The decision (retry differently, gather more evidence, or finish) stays entirely with the model: a legitimately repeated call is delayed by nothing and blocked by nothing. Decision record: the repeat-tool-reminder Agent Note.

guardPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-call-timeout-policy

Included in DSHBuilt-in source

Tool-call timeout enforcer: a single `tools/execute` around-dispatch listener that arms a per-call cooperative deadline on `exec.signal` for a tool declaring `timeoutMs` on its `ToolDefinition` and returns a structured `TOOL_TIMEOUT` result when that deadline wins. The budget is read from the tool's own declaration (`ToolDefinition.timeoutMs`, set by the owning tool plugin), so this plugin is **zero-config**. It is the reference `tools/execute` wrapper and the enforcement home for model-facing tool-call budgets (timeout-library Agent Note).

Model toolsPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-hooks-claude-code

Included in DSHBuilt-in source

A cordis plugin that runs the supported command-hook subset of a user's existing **Claude Code** hook config (a `hooks.json`, or a settings file's `hooks` key) on the harness's canonical interception points. It is the **CC dialect** half of the hooks subsystem: it owns the bridge's CC-shaped per-event stdin payloads, CC's env + `${CLAUDE_PLUGIN_ROOT}`/`${CLAUDE_PROJECT_DIR}` substitution, and the mapping from a hook's neutral outcome onto the harness's typed Decisions. The dialect-agnostic primitives (matcher, exit-code/stdout codec, `ctx.shell` execution, most-restrictive merge, the `hook/*` events) come from `@deepseek-ai/dsh-hook-protocol`.

hooksPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-hooks-codex

Included in DSHBuilt-in source

A cordis plugin that runs the supported subset of a user's existing **Codex** hook config on the harness's canonical interception points. The **Codex dialect** half of the hooks subsystem. The dialect-agnostic primitives come from `@deepseek-ai/dsh-hook-protocol`; this bridge owns the Codex-shaped payloads, matcher mode, and decision mapping.

hooksPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-host-apiproxy

Included in DSHBuilt-in source

The API gateway shared by every client consists of the TypeScript API contract (`src/api/`, zero Node dependencies, importable from the browser), the fetch carrier pair (`src/fetch/`: `toFetchHandler` on the host side, `AbstractApiClient` plus platform subclasses on the client side), and the host-side implementation (`src/api-proxy.ts`: `createApiProxy` plus the default-exported `ApiProxyService` gateway plugin — config `{nativeOpen?, sessionExportCompressionLevel?, coldBlankProbeMaxBytes?}`, provides `ctx.apiProxy`). This package registers no routes; carriers such as HTTP wrap `ctx.apiProxy` themselves. The shipped Web composition lives in `packages/bundle/web-app/cordis.patch.yml`, while its default Agent model selection belongs to `@deepseek-ai/dsh-agent-default-model` in the base bundle.

PlatformPluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-host-directory-picker-auto

Included in DSHBuilt-in source

The **adaptive chooser** of the directory-picker seam: a node-half-only plugin that resolves the host's situation once at boot and mounts the matching dual-face backend — `-native` or `-browse` — as a real Loader entry in the in-memory root tree (never persisted to a config file; the root tree's `write()` is a no-op). Because the backend arrives as an ordinary entry, its browser half is discovered by the client module table exactly as a config-row's would be, so the seam's one-row-swaps-both-faces invariant holds for the resolved choice. Unloading the chooser removes the entry again, unloading both faces with it.

PlatformPluginsweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-host-directory-picker-browse

Included in DSHBuilt-in source

The **in-app browsing backend** of the directory-picker seam: `BrowseDirectoryPicker` registers `ctx.directoryPicker` with the `browse` capability — one-level directory listing and child-directory creation over Node's stdlib, which already carries the per-OS adaptation. Nothing renders on the host display, so this backend serves remote clients the native backend cannot.

PlatformPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-host-directory-picker-native

Included in DSHBuilt-in source

The **native-OS-chooser backend** of the directory-picker seam: `NativeDirectoryPicker` registers `ctx.directoryPicker` with the `native` capability, whose `pick(signal)` opens one native chooser per call and resolves the chosen absolute path (`null` on cancel). Platform tools run without a shell: `osascript` on macOS and Zenity with a KDialog fallback on Linux; the caller's abort terminates the native process. Windows opens the modern `IFileOpenDialog` in a spawned child process — a koffi-driven COM conversation on the child's main thread with the best thread DPI awareness the host accepts (per-monitor-v2 first), aborted by posting `WM_CLOSE` to the dialog thread. Only viable when the operator sits at the host's display — remote deployments compose `-browse` instead. The command boundary (`DirectoryPickerRunner`) and platform facts are injectable. The shared no-shell subprocess runner lives in `dsh-native-command`.

PlatformPlugins
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-host-frontend-static

Included in DSHBuilt-in source

SPA dist server for the Web shell: a function plugin (config `{distIndex}`) that claims the webserver's single fallback seat and serves the built frontend directory with the shell's locked semantics — traversal outside the dist root is 403, any miss falls back to `index.html` with HTTP 200 (SPA routing), unknown extensions ship as `application/octet-stream`, and non-GET/HEAD without a matching named route is 405. Every index response runs through the webserver's registered index taps (`applyIndexTaps`), which is how the boot manifest reaches the page. `distIndex` is an assembly fact of the composing application: `dsh-web-app` resolves it through the frontend package's exports and mounts this plugin; a deployment never hardcodes it.

PlatformPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-host-plugin-inventory

Included in DSHBuilt-in source

Read-only Host projection of the current Cordis Loader tree. `PluginInventoryGateway` registers the `pluginInventory` service and publishes one generated direct Remote, `pluginInventory/list`. Every call reads `ctx.loader.entries()` directly, skips structural group rows, and returns the remaining entries in Loader order with only their Loader entry id, module specifier, effective enablement, and current root Fiber phase.

PlatformPluginsweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-host-webserver

Included in DSHBuilt-in source

Web HTTP and upgrade-route registration plugin (default-exported `WebServer`, config `{host, port}`): a `node:http` server that listens on activation and provides `ctx.webServer`. `register(route)` adds a named `exact`/`prefix` HTTP route; `registerUpgrade(route)` adds an upgrade route for an exact pathname. A duplicate path within either table throws because route patterns are a composition-level contract and a collision is a misconfiguration; both methods return a disposer that removes the registration. `registerFallback(handler)` registers the one handler for requests that match no named route. A second registration throws; the SPA dist server `dsh-host-frontend-static` is the shipped owner, and the server returns 404 while none is registered. `tapIndex(transform)` adds an index.html transform, and `applyIndexTaps(html)` runs a body through the registered transforms in order; the fallback handler calls it on every index response. `port` reads the listening port (the OS-assigned value when `port` is 0), and `host` reads the configured bind host (composition-time facts other plugins adapt to, e.g. the directory-picker chooser). HTTP match order is fixed: exact over the whole table, then longest prefix, then the fallback handler. Upgrades match exactly and unmatched connections are closed; registration order carries no request-facing semantics.

PlatformPluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-commands

Included in DSHBuilt-in source

Plugin-owned human-command registry consumed by interactive UI adapters. The plugin command registration Agent Note owns the boundary and dispatch contract.

interactionPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-permission-presets

Included in DSHBuilt-in source

User-facing permission presets through `ctx.permissionPresets` (`PermissionPresetService`). Each configured name bundles `sandbox/mode` with `approval/policy`; the defaults are `workspace-write` (`workspace-write` + `ask`) and `danger-full-access` (`danger-full-access` + `never`). UI adapters may expose the table as one selector, while sandbox execution and approval continue to consume their own knobs.

interactionPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-ask-user

Included in DSHBuilt-in source

Model-facing `ask_user_question` tool over `ctx.userQuestions`. It lets the model ask the human a concise question when it needs confirmation, a choice, or missing information before continuing.

Model toolsPluginspreset:codepreset:cordis
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-user-approval

Included in DSHBuilt-in source

Channel-neutral one-shot approval seam. `ctx.approval.request(req)` returns `allowed-once`, `rejected`, `cancelled`, or `unavailable`; missing or failing answerers fail closed, and a grant applies only to the requested action. Exact event signatures live in the generated region of approval.md.

interactionPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-user-questions

Included in DSHBuilt-in source

User-interaction Service Definition. It owns `ctx.userQuestions`, the service a model-facing tool or permission plugin uses when it needs to pause work and ask the human for a decision.

interactionPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-jobs-local

Included in DSHBuilt-in source

Process-local implementation of the `@deepseek-ai/dsh-jobs` registry contract: `LocalJobRegistry` keeps every record in memory, issues per-kind `<kind>-N` ids, and hands out fresh snapshots, never live state. Load it as a plugin and it registers as `ctx.jobs`.

OrchestrationPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-jobs

Included in DSHBuilt-in source

The model-facing controller for `ctx.jobs`: three kind-independent tools, completion notices, and one background-work prompt section. Loading the plugin attaches the controller required by `ctx.jobs.start()`.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-llm

Included in DSHBuilt-in source

Provider-neutral LLM vocabulary and abstract service. This package defines the canonical language spoken by the agent loop, session logs, and every plugin.

ModelsPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-llm-deepseek

Included in DSHBuilt-in source

DeepSeek chat-completions adapter for the harness LLM seam: direct `fetch` + SSE (framed by `eventsource-parser`) translating the official wire format (source of truth: the API docs — guides/thinking_mode, guides/tool_calls, api/create-chat-completion) into the `StreamChunk` protocol.

ModelsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-llm-pi-ai

Included in DSHBuilt-in source

Generic multi-provider adapter for the harness LLM seam backed by `@earendil-works/pi-ai`. One plugin instance owns a dict of provider profiles keyed by route; every request selects a profile with `GenerateOptions.provider` and resolves `GenerateOptions.model` against that route's configured catalog. A route naming an installed pi-ai provider inherits its endpoint, wire protocol, and model catalog as defaults and overrides them field by field; a route pi-ai does not ship is declared outright, so an OpenAI-compatible gateway, a self-hosted server, or a provider newer than the installed catalog is configuration rather than a code change.

ModelsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-llm-retry

Included in DSHBuilt-in source

Function plugin that applies exact-provider retry policy through the agent loop's closed-step `agent/request-error` waterfall. It does not wrap `ctx.llm.stream()`: every adapter call remains one provider attempt, and every retry opens a fresh numbered turn.

ModelsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-token-meter

Included in DSHBuilt-in source

Replay-aware token measurement through the singleton `ctx.tokenMeter` service. It advances one isolated fold per session from the durable log, so compaction and other pressure-sensitive plugins can share accounting without depending on `CompactionEngine`.

ModelsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-lsp

Included in DSHBuilt-in source

The **LSP capability seam**: an abstract `LspService` (`ctx.lsp`) defining WHAT semantic code navigation the harness has — go to definition, find references, find implementations, hover — over language-server providers, without binding the model contract to local subprocesses.

lspPlugins
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-lsp-stdio

Included in DSHBuilt-in source

A **generic stdio language-server backend** for `ctx.lsp`. One plugin instance accepts a named server table and registers one isolated provider per entry. It reads through `ctx.fs` and launches through `ctx.subprocess`, so the server and source always inhabit the mounted execution world. This is a generic host, not a language-server catalog or installer — deployments configure commands and mappings explicitly; presets belong in `cordis.yml` overlays.

lspPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-tool-lsp

Included in DSHBuilt-in source

The model-facing **`lsp` tool** over `ctx.lsp`: one read-only tool with four operations for precise code navigation. It owns the model schema, prompt guidance, coordinate conversion, result limits and formatting, and UI presentation; it imports no provider.

Model toolsPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-mcp-client

Included in DSHBuilt-in source

MCP client bridge plugin: connects to external Model Context Protocol servers and registers their tools on `ctx.tools`, making them available to the model as native tools under server-qualified names (`mcp__<serverName>__<rawName>`).

mcpPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-plan-mode

Included in DSHBuilt-in source

Logged, per-agent plan collaboration state with deployment-owned guidance, direct `/plan [message]` entry and `/plan off` exit commands, and the reviewed `exit_plan_mode` exit. Plan mode is soft guidance; sandbox mode and approval policy enforce restrictions independently and do not read or write plan state.

planPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-agent-presets

Included in DSHBuilt-in source

Per-preset agent composition. A **preset** is a directory holding one `agent.cordis.yml`; the roster mounts it ONCE per process under a standing scope, and each session that names it joins by having its agent scope key parented to the mount's (`dsh-scope`'s parent chain). The mount's tools, prompt sections, and projection units exist exactly once and cover every joined agent — its plugins key their state by Session/Agent, so sessions stay apart inside one shared instance — and a host reader with no agent at all (a cold transcript read) resolves the same standing registrations by preset id.

presetPluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-persona

Included in DSHBuilt-in source

The agent persona as a composable row. It can either shadow the deployment persona or own the complete system prompt.

presetPluginsConfigurablepreset:codepreset:cordis
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-invariants

Included in DSHBuilt-in source

Configurable registry service for package-owned runtime invariant checks. The root plugin registers `ctx.invariants`; it contains no product checks or product-package imports. Every workspace package publishes a `./invariant` companion that registers its exact npm package name.

runtime-diagnosticsPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-sandbox-local

Included in DSHBuilt-in source

Local implementation of the `dsh-sandbox` seam. It selects and caches one platform runner: Linux prefers a working `bwrap` then Landlock; macOS uses Seatbelt; Windows uses the ACL restricted-token runner. Multiple candidates are probed in order, while a sole candidate is selected directly.

RuntimePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-sandbox-policy

Included in DSHBuilt-in source

The single owner of sandbox-policy resolution: the deployment's default `SandboxMode` and fallback root, plus each session's durable mode override and immutable workspace root. Every enforcing capability receives one resolved mode-and-root policy per call; before each request, the model receives the current policy without a separate capability inventory.

RuntimePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-schedule

Included in DSHBuilt-in source

`dsh-schedule` gives future live root Agents three Session-scoped tools for durable reminders. Version 1 accepts positive safe-integer `after_seconds` delays, explicit absolute `at` targets, and fixed-rate `every_seconds` intervals of at least five minutes. The Session event log owns reminder state; timers, tool values, and model follow-ups are disposable projections of that log.

schedulePlugins
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-sdk-jsonrpc-server

Included in DSHBuilt-in source

The `jsonrpc` plugin serves newline-delimited JSON-RPC over stdio so out-of-process SDK clients can drive harness agents. `HarnessSdkJsonRpcServer` owns the protocol methods and notifications; the transport and the named wire types live in `dsh-sdk-protocol`, shared with the client SDKs; `jsonrpc-demo` supplies the surrounding `cordis.yml` application.

sdkPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-session-log-export

Included in DSHBuilt-in source

Web Session-log download control over the host-streamed ZIP endpoint owned by `dsh-host-apiproxy`. The Host half registers `/export`; the browser half owns a 111×32 `Session log` action in the Session Header, one download controller, and one modal shared by that button and the slash command. ZIP generation, raw JSONL/zstd reads, descendants, attachments, backpressure, and HTTP error semantics remain owned by the ApiProxy download implementation.

SessionsPluginsWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
UI
1
Availability
Web

dsh-session-query-sqlite

Included in DSHBuilt-in source

Concrete `ctx.sessionQuery` provider. `SqliteSessionQueryEngine` inherits exact reads, traces, and provider-independent filters from the Service Definition package and implements its two full-text methods with SQLite FTS5. Search uses the live-preferred logical session corpus and groups cross-session results by their strongest event.

SessionsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-session-query

Included in DSHBuilt-in source

Workspace-authorized model tools over `ctx.sessionQuery`. The opt-in package depends only on the unified interface and registers `session_search`, `session_event_search`, `session_trace`, `session_event_trace`, and `session_event_read`; shipped host compositions do not mount it by default.

Model toolsPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-session-checkpoint-policy

Included in DSHBuilt-in source

Semantic durability policy for persisted agents. It checkpoints the event-sourced session before a model adapter receives a request, before a top-level tool body may produce an external side effect, and at each `agent/pre-step` boundary so the preceding response and ordered tool results are durable before the next request.

SessionsPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-persistence-jsonl

Included in DSHBuilt-in source

The JSONL durable session-persistence backend — a concrete `SessionPersistence` (the `dsh-session-persistence` seam). Each session has one append-only logical JSONL log, stored as `.jsonl.zstd` by default or raw `.jsonl` when compression is disabled.

SessionsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-persistence-sqlite

Included in DSHBuilt-in source

A SQLite durable session-persistence backend — a second `SessionPersistence` provider (session persistence) satisfying the same contract as `dsh-session-persistence-jsonl` (append-only, contiguous-seq, lazy materialization, interrupted-turn close on load), expressed over `node:sqlite` rows instead of file bytes.

SessionsPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-session-projection

Included in DSHBuilt-in source

Session-projection Service Definition and drive registry. It owns `ctx.sessionProjections`, the registry that drives every registered projection unit over committed session events and serves finished whole values to carriers, currently the api-proxy history tail page and `session/projection` push frame. A domain registers pure mathematics; the framework owns the drive. The session-projection RFC records the design rationale.

SessionsPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-projection-cache

Included in DSHBuilt-in source

The persisted projection cache (`ctx.sessionProjectionCache`): durable checkpoints of every registered projection unit's state, one record per session on the domain data form (`session_projcache` domain — the shipped json backend lands it beside `workspace.json` under the configured storage root). Design authority: the session-projection RFC (persisted projection cache section).

SessionsPluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-stats

Included in DSHBuilt-in source

Function plugin registering the `sessionStats` projection unit: whole-log conversation figures — turn/step counts and the LLM, tool, first-token, and decode wall times — folded from step boundaries, stream chunks, tool pairs, and assembled assistant messages, and served through the session-projection seam (registry snapshot, change feed, and every projection carrier: history tail page, `session/projection` push frames, session list rows). Clients render full-session figures that paging and compaction cannot change; the reference consumer is the web chat stats strip, whose window fold mirrors these field names as its no-unit fallback.

SessionsPluginsweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-telemetry-otel

Included in DSHBuilt-in source

The OpenTelemetry backend for the telemetry seam — the only entry a deployment loads. Its `mode` decides whether the seam follows session events live, replays the canonical log only at recorded feedback, or keeps telemetry local. Uploading modes compose the OTel JS SDK as-is (`LoggerProvider` → `BatchLogRecordProcessor` → OTLP/HTTP log exporter) and map each handed-over record onto `logger.emit()`, under two instrumentation scopes: ledger records on `@deepseek-ai/dsh-session-sessionTelemetry-otel`, operational records on `@deepseek-ai/dsh-session-sessionTelemetry-otel/ops`. Resource identity contains `service.name`/`service.version` from `dsh-llm`'s `APP_IDENTITY` plus this package's anonymous `user.id` (`$DSH_HOME/.anonymous-user-id`, a random UUID created on first use and reset by deleting the file), carried once per export batch rather than per record.

SessionsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-title

Included in DSHBuilt-in source

Log-backed session titles with an immediate deterministic fallback and one optional asynchronous provider. Every accepted revision is a log-only `session/title` event; `foldSessionTitle()` and `ctx.sessionTitle.get()` select the latest event and return its event seq and timestamp.

SessionsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-session-title-all-prompts-llm

Included in DSHBuilt-in source

Optional `ctx.sessionTitle` provider that summarizes every eligible human message through `ctx.llm`. It registers the `all-prompts` cadence and starts a new revision after each new human prompt, using seeded history as well as child-session prompts. A newer revision aborts and supersedes older work; even a provider that ignores cancellation cannot commit stale output.

SessionsPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-session-title-first-prompt-llm

Included in DSHBuilt-in source

Optional `ctx.sessionTitle` provider that summarizes the first eligible human message through `ctx.llm`. It registers the `first-prompt` cadence, runs automatically only when a fresh non-fork session first creates its fallback, and attributes the result to that message's exact seq. An automatic failure retains the fallback and is retried only through `ctx.sessionTitle.refresh()`.

SessionsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-settings-file

Included in DSHBuilt-in source

File-backed settings provider. One YAML or JSON document carries every namespace section; external edits hot-publish through `ctx.settings`, and `update()` re-reads the document under a writer lock before writing back atomically, preserving the user's YAML comments, any section owned by a plugin that is not currently loaded, and any on-disk change this process has not observed yet.

settingsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-bash-local

Included in DSHBuilt-in source

Local Service Provider for the `@deepseek-ai/dsh-shell` executor seam over the `@deepseek-ai/dsh-subprocess` service: `LocalBashExecutor` spawns `bash -c <command>` per call as a managed process group through `ctx.subprocess`, and owns everything bash-shaped — command defaulting and caps, timeout/cancel classification, the model-friendly terminal environment, and the model-facing stdout/stderr merge for background reads. Group mechanics (bounded spill-backed output, credential scrub, kill escalation, disposal) are the subprocess service's.

RuntimePluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-bash-sandbox

Included in DSHBuilt-in source

Sandbox-consuming Service Provider for the `@deepseek-ai/dsh-shell` executor seam. Load it **instead of** `@deepseek-ai/dsh-bash-local`, together with a `ctx.sandbox` provider (e.g. `@deepseek-ai/dsh-sandbox-local`) and a `ctx.sandboxPolicy` (which owns the default mode + workspace root, shared with the sandboxed filesystem) — no alternate tool plugin is needed; `dsh-tool-bash` detects the executor's `sandboxMode` capability and adds the escalation fields.

RuntimePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-pwsh-local

Included in DSHBuilt-in source

Local PowerShell Service Provider for the `@deepseek-ai/dsh-shell` executor seam over the `@deepseek-ai/dsh-subprocess` service: `PwshLocalExecutor` spawns `pwsh -NoLogo -NoProfile -NonInteractive -Command <command>` per call as a managed process through `ctx.subprocess`, and owns everything PowerShell-shaped — executable resolution, command defaulting and caps, timeout/cancel classification, the model-friendly terminal environment, and the model-facing stdout/stderr merge for background reads. Group mechanics (bounded spill-backed output, credential scrub, kill escalation, disposal) are the subprocess service's.

RuntimePluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-pwsh-sandbox

Included in DSHBuilt-in source

Sandbox-consuming PowerShell implementation of the `ctx.shell` executor seam: every command runs as `pwsh -NoLogo -NoProfile -NonInteractive -Command <command>` **confined through `ctx.sandbox`**, with the selected mode, enforcement, and denial facts stamped on each settled result. The pwsh twin of `@deepseek-ai/dsh-bash-sandbox`, a call-for-call mirror per the pwsh executor and tool decision — the confinement substance is platform-neutral: on Windows the sandbox seam resolves to the ACL restricted-token runner chain (`@deepseek-ai/dsh-sandbox-windows-acl`), on Linux/macOS to bwrap/Landlock/Seatbelt.

RuntimePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-shell-env

Included in DSHBuilt-in source

The tool-independent shell environment plugin: owns the `ctx.shellEnv` registry of trusted, per-execution `DSH_*` variables that the model-facing shell tools (`dsh-tool-bash`, `dsh-tool-pwsh`) collect into every shell call's environment. Built-in shell facts (`DSH_HOME`, `DSH_SHELL=1`, `DSH_SESSION_ID`) are owned by the registry itself; other plugins register additional enumerable facts with effect-scoped disposal, and duplicate ownership or undeclared runtime keys fail loudly.

RuntimePluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-bash

Included in DSHBuilt-in source

The model-facing `bash` tool registered over the `ctx.shell` executor seam. Foreground execution stays behind that seam; a background process handle is registered with the generic `ctx.jobs` runtime and controlled through `job_output`, `job_list`, and `job_kill` from `@deepseek-ai/dsh-tool-jobs`.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Tools
1
Availability
Web

dsh-tool-bash-persistent

Included in DSHBuilt-in source

Model-facing `bash(command)` backed by one owner-scoped `ctx.terminals` shell. The package owns the tool contract and shell reuse; deployments select the PTY backend and sandbox policy.

Model toolsPluginsConfigurablepreset:minimal
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-tool-pwsh

Included in DSHBuilt-in source

The model-facing `pwsh` tool registered over the `ctx.shell` executor seam. Intended for Windows compositions where a PowerShell executor (e.g. `@deepseek-ai/dsh-pwsh-local`) backs `ctx.shell`; the tool contract is PowerShell-dialect: native `C:\...` paths and `$env:NAME` variables. Behavior mirrors `dsh-tool-bash` call-for-call — foreground and `run_in_background` execution through the generic job runtime, the managed `DSH_*` environment through the shared `shell-env` registry, the sandbox denial rendering with the same-turn `sandbox_permissions` escalation surface, and the bash marker/truncation rendering story (a clean exit produces no marker).

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-skill

Included in DSHBuilt-in source

Pure agent skill provider registry.

skillPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-skill-badge

Included in DSHBuilt-in source

Optional bundled skill provider that contributes `dsh-badge` to `ctx.skills`. The skill supplies the official “powered by dsh” Markdown snippets and the packaged PNG for systems that cannot import a remote image reliably.

skillPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-skill-filesystem

Included in DSHBuilt-in source

Local filesystem provider for the `ctx.skills` registry.

skillPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-skill

Included in DSHBuilt-in source

The model-facing skill catalog and `skill` tool.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-spill-local

Included in DSHBuilt-in source

The **local-filesystem** implementation of the `@deepseek-ai/dsh-spill` storage seam. Registers as `ctx.spillStore` and persists a tool's oversized text to a private, session-scoped file; its locator is the file path and its retrieval hint tells the model to use `read` or `grep` on that path.

spillPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-spill-policy

Included in DSHBuilt-in source

The **tool-result spill policy**: a `tools/post-execute` transformer that keeps oversized plain-text tool results out of the model's context. When a final result exceeds `maxInlineBytes`, it saves the FULL text through `ctx.spillStore` and replaces the model-facing result with a bounded head/tail preview plus the backend's locator and retrieval hint.

spillPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-storage

Included in DSHBuilt-in source

Storage hub (`ctx.storage`) for non-session data: a named backend registry plus mounted data-form facilities. The hub performs no IO itself — backends own media, and data forms own semantics. The storage family overview maps those packages; the domain KV storage Agent Note records the design rationale.

StoragePluginsweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-storage-domain

Included in DSHBuilt-in source

Domain data form for the DeepSeek Harness storage hub: exposes the injectable `ctx.storageDomain` service and the matching `ctx.storage.domain` projection after every configured backend is registered. A domain is declared once with `defineDomain` (zod record schemas, `z.infer`-derived types), opened through `DomainFacility.open`, and served from authoritative in-memory state — reads are synchronous, writes serialize on one per-domain chain, reach durability on the routed backend first, then update memory and emit `domain/changed`. The opening consumer owns the handle's lifecycle and releases it with `Domain.close()` (idempotent; typically its own `ctx.effect` disposer); domains still open when the plugin unmounts are closed by the facility.

StoragePluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-storage-json

Included in DSHBuilt-in source

JSON backend for the storage hub: one human-readable `<unit>.json` file per unit under a configured root, registered as backend `json`. Design: domain KV storage Agent Note.

StoragePluginsConfigurableweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-storage-sqlite

Included in DSHBuilt-in source

SQLite backend for the storage hub: registers as backend `sqlite`, serving the `kv` facet over one `node:sqlite` database file (or `:memory:`). Design and trade-offs: domain KV storage Agent Note.

StoragePluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-subagent

Included in DSHBuilt-in source

The subagent seam lets one agent delegate work to a child through a named provider. Callers use one service API (`ctx.subagents`); providers decide whether the child runs in this process, in another process, or through a future transport.

OrchestrationPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-subagent-acp

Included in DSHBuilt-in source

The ACP provider runs each subagent in a fresh subprocess and drives it as an Agent Client Protocol client. It is the out-of-process alternative to spawn and fork: the child has its own runtime, session, model configuration, and tools.

OrchestrationPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-subagent-claude-code

Included in DSHBuilt-in source

This package registers the fixed `claude-code` subagent provider. Each accepted run invokes the official Claude Agent SDK in the delegating Session's workspace, resolves the native `claude` executable through the shared subprocess service, submits one self-contained text task, and returns only the final answer through the shared `dsh-subagent` result contract.

OrchestrationPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-subagent-codex

Included in DSHBuilt-in source

This package registers the fixed `codex` subagent provider. Each accepted run starts the official `codex app-server --stdio` command in the delegating Session's workspace, creates one ephemeral Codex thread, submits one self-contained text task, and returns only the final answer through the shared `dsh-subagent` result contract.

OrchestrationPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-subagent-dsh-sdk

Included in DSHBuilt-in source

The SDK provider runs each subagent as a complete DeepSeek Harness runtime in a fresh subprocess, driven over stdio JSON-RPC through the TypeScript SDK client. It is the second out-of-process backend beside `subagent-acp`, differing in the wire and the child contract: the ACP backend drives any Agent Client Protocol agent; this backend drives specifically a harness SDK runtime (`dsh-jsonrpc-agent` bin or packaged executable), so the child is a full peer harness — own `cordis.yml`-decided composition, session persistence, model route, and tools.

OrchestrationPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-subagent-fork-in-process

Included in DSHBuilt-in source

The fork provider creates an in-process child seeded with the parent's completed conversation turns. It shares all run mechanics with spawn; the session seed is the only behavioral difference.

OrchestrationPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-subagent-spawn-in-process

Included in DSHBuilt-in source

The spawn provider creates a fresh child `Agent` in the current process. The child has its own session, sees no parent conversation history, and reuses the host's agent factory and LLM/tool services.

OrchestrationPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-subagent

Included in DSHBuilt-in source

The model-facing delegation tool over one configured `ctx.subagents` provider. Changing the provider changes transport without changing the execution contract.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-subagent-control

Included in DSHBuilt-in source

The optional, globally named `send_message`, `interrupt_agent`, and `list_agents` tools are thin adapters over `ctx.subagents`. Provider-bound `@deepseek-ai/dsh-tool-subagent` instances register distinct delegation tools per transport; this separately loaded package registers shared control tools once, so multiple delegation tools never register duplicate global controls. The root plugin registers `send_message` and `interrupt_agent` and requires only `subagents`; the separately loadable `./list-agents` plugin registers `list_agents` and declares `subagents` plus `agents` as load-time dependencies. Its catalog reads additionally require the session store and projection registry at call time, but no query service. A deployment can keep the root tools while omitting the list tool. No tool's presence determines whether a delegation tool starts continuable work. These tools own only the parent-to-child direction; the independently installed `@deepseek-ai/dsh-tool-subagent-report` owns the child-to-parent direction.

Model toolsPluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-subagent-report

Included in DSHBuilt-in source

The optional child-scoped `report` tool is a thin adapter over `ctx.subagents.reportFrom()`. It gives every continuable in-process child a return channel to the Agent that started it, and installs the prompt section that instructs the child to use it. The package registers a continuable-child setup contribution instead of a global tool, so the tool and its guidance exist only inside those children. Roots, one-shot subagents, remote subagent providers, sibling scopes, and agentless tool execution never present or execute it. Installing this package grants only that child-scoped capability; the parent-to-child direction remains the independent `@deepseek-ai/dsh-tool-subagent-control`, and continuable mode depends on neither package.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-subprocess-local

Included in DSHBuilt-in source

Local Service Provider for the `@deepseek-ai/dsh-subprocess` seam. `LocalSubprocessRuntime` resolves local executables, spawns ordinary detached process trees with explicit stdio, and implements terminal processes through `node-pty` plus platform process inspection. It has no config: every disposition, limit, terminal dimension, grace, and directory arrives from the calling capability seams (`dsh-bash-local`, `dsh-lsp-stdio`, and `dsh-terminal-bash`).

RuntimePluginsbaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-terminal

Included in DSHBuilt-in source

Owner-scoped persistent PTY seam. `TerminalSessionService` registers as `ctx.terminals`, mints opaque session ids, routes creation through named backends, fences every operation to the exact live `Agent`, and awaits backend quiescence when that agent or the service disposes.

RuntimePluginspreset:minimal
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-terminal-bash

Included in DSHBuilt-in source

Persistent shell backend for `ctx.terminals` over `ctx.subprocess.spawnTerminal`. It starts an interactive shell under the shared `ctx.sandboxPolicy`, retains bounded line-oriented output, and detects readiness while the subprocess provider owns PTY allocation, environment scrubbing, foreground process groups, signalling, and complete terminal-session cleanup. The same PTY backend therefore composes with local or remote execution-world providers.

RuntimePluginsConfigurablepreset:minimal
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-tool-terminal

Included in DSHBuilt-in source

Six model-facing tools over `ctx.terminals`: `terminal_open`, `terminal_send`, `terminal_read`, `terminal_signal`, `terminal_close`, and `terminal_list`. Every operation requires the exact initiating `Agent`, so a model cannot address another agent's terminal even if it learns the id.

Model toolsPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-llm-replay

Included in DSHBuilt-in source

A replay LLM plugin for keyless snapshot tests. It yields model streams reconstructed from a recorded **session JSONL** fixture, so a test can boot the real agent against a fixed model transcript with no API key. With `providers` configured it registers a replay-only adapter whose catalog is available to scenarios that exercise model discovery; without `providers` it installs the catch-all `llm/stream` waterfall used by tests that do not need discovery.

test-supportPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-tool-todo

Included in DSHBuilt-in source

The model-facing `todo_write` tool: the agent's whole task list, replaced wholesale on each call.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-typert-loader

Included in DSHBuilt-in source

Node-only Loader integration for generated Typert artifacts. The plugin requires `ctx.loader` and `ctx.typert`; it does not provide the registry itself.

typertPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-web

Included in DSHBuilt-in source

The model-facing web tool suite — `web_search` and `web_fetch` — over the web capability seam (`ctx.web`). It owns model-facing concerns only: tool names, JSON schemas, snake_case argument names, prompt sections, the result-count bound, result formatting, HTML→markdown presentation, and the UI presentation projection — `presentCall`, `presentResult` (a `card: 'web'` result card discriminated by `kind: 'search' | 'fetch'`), and the `output.presentationMeta` that carries the structured search sources or the fetch summary the lossy render text cannot (see the web-result-card Agent Note). All web access goes through `ctx.web`; this package never imports a concrete provider. Neither tool exposes a model-facing timeout — each tool's cooperative tool-call budget is declared here via config (`fetchTimeoutMs`/`searchTimeoutMs`, attached as `ToolDefinition.timeoutMs`) and enforced by `@deepseek-ai/dsh-tool-call-timeout-policy` (a `tools/execute` wrapper); each tool just forwards `exec.signal` to the seam.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-web

Included in DSHBuilt-in source

The **`WebRuntime`** (`ctx.web`) defines WHAT web access the harness has — search the web, fetch a URL — over multiple providers, without binding the model contract to one vendor's API shape.

webPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-web-fetch-http

Included in DSHBuilt-in source

An anonymous public HTTP(S) `WebFetchProvider` for the harness web capability seam (`ctx.web`). It retrieves a concrete URL and returns a status code plus bounded decoded content.

webPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-web-search-deepseek

Included in DSHBuilt-in source

A DeepSeek-backed `WebSearchProvider` for the harness web capability seam (`ctx.web`). It calls DeepSeek's **Anthropic-compatible Messages API** (`POST {baseURL}/messages`) with the native `web_search_20250305` server tool enabled, and maps the structured `web_search_tool_result` blocks DeepSeek returns into the seam's normalized `WebSearchResult`.

webPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-web-search-exa

Included in DSHBuilt-in source

An Exa-backed `WebSearchProvider` for the harness web capability seam (`ctx.web`). It calls Exa's `POST /search` endpoint with highlight contents and maps the flat `results[]` into the seam's normalized `WebSearchResult`.

webPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-web-search-perplexity

Included in DSHBuilt-in source

A Perplexity-backed `WebSearchProvider` for the harness web capability seam (`ctx.web`). It calls Perplexity's OpenAI-compatible `POST /chat/completions` endpoint and maps the generated answer plus citations into the seam's normalized `WebSearchResult`.

webPluginsConfigurable
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Included in DSH

dsh-tool-ralph

Included in DSHBuilt-in source

The model-facing `ralph` tool runs a fixed foreground workflow that gives one immutable objective to a sequence of fresh child agents. It demonstrates a specialized orchestration policy as an ordinary plugin over `ctx.workflowEngine` and `ctx.subagents`: no Ralph mode or fresh-agent loop is added to `agent-loop`, and the same-session goal domain remains independent. The Ralph Agent Note owns the policy and deferred work.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-tool-workflow

Included in DSHBuilt-in source

The model-facing **`workflow` tool**: run a JavaScript orchestration script that fans out subagents, and return the script's final value. This package owns the model-facing schema and run lifecycle over `ctx.workflowEngine`; script parsing, execution, caps, and cancellation live behind the seam, while the consumer retains ownership of the parent-facing schema and result envelope.

Model toolsPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-workflow-worker-thread

Included in DSHBuilt-in source

This package implements `WorkflowEngine` with one Node worker thread per run. The worker executes the orchestration script; child agents remain on the host and are reached through `ctx.subagents` over a typed host/worker protocol.

OrchestrationPluginsConfigurablebaseheadless
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-workspace

Included in DSHBuilt-in source

Workspace entity registry (`ctx.workspaceRegistry`) for the DeepSeek Harness: durable workspace records, stable workspace order, and a newest-first candidate session index stored through the domain data form. Consumers see the `Workspace` interface; the entity implementation stays package-private.

workspacePluginsweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0-rc.5
Type
Plugins
Availability
Web

dsh-open-in-vscode

External Git bundleCommunity · source reviewed

Adds an Open in VS Code action to each workspace row in the DSH web sidebar.

UI & clientBundlesConfigurableWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.5
UI
1
CLI installs

dsh-at-file

External Git bundleCommunity · source reviewed

Adds Codex-style @file mentions to the web composer and expands selected workspace files into the model request.

interactionBundlesConfigurableWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.0
UI
2
CLI installs

@dsh-external/dsh-automation

External Git bundleCommunity · source reviewed

Runs recurring or one-shot coding tasks in fresh DSH agent sessions and manages them from the web UI or agent tools.

OrchestrationBundlesConfigurableWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.5
UI
1
CLI installs

dsh-notification

External Git bundleCommunity · source reviewed

Shows configurable browser desktop notifications when a DSH session finishes a turn.

UI & clientBundlesConfigurableWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.1
UI
1
CLI installs

@omdsh-dev/dsh-genui

External Git bundleCommunity · source reviewed

Renders interactive components, charts, forms, and panels from model-produced dsh-ui fences inside assistant replies.

UI & clientBundlesWeb UIweb
HOSTCLIENTUITOOLDATAFLOW
Version
0.8.0
UI
2
CLI installs

dsh-cc-tui

External Git bundleCommunity · source reviewed

A full-screen Claude Code-style terminal front door for DSH agents, mounted as a Cordis bundle.

interactionBundlesConfigurablecc-tui
HOSTCLIENTUITOOLDATAFLOW
Version
0.1.6
Type
Bundles
CLI installs

DSH / DISCOVER / INSTALL / PUBLISH

Find, install, and publish DSH plugins

dsh.pub turns the DeepSeek Harness plugin ecosystem into an inspectable directory instead of an unverified list of links.

What is the DSH plugin registry?

A source-backed catalog of built-in Harness modules and public community bundles. Each record exposes its source, version, license, runtime, tools, UI contributions, and availability.

How do I install a DSH plugin?

Installable community bundles include a pinned npx dshpub command. Built-in modules already ship with DeepSeek Harness and do not need a separate install.

npx dshpub add owner/repository --ref commit