DSH Toolbox

@deepseek-ai/dsh-session

@deepseek-ai/dsh-session is a DeepSeek Harness capability seam: Event-sourced session store. Sessions are appended as events, which is why a session file grows by frames rather than being rewritten.

Published on npm at 0.0.1-rc.1. It installs into $DSH_HOME/profiles/<name> as a dependency of that profile.

Install

Plugin management forwards to pnpm inside the profile directory, so this behaves like pnpm add.

dsh plugin --profile web add @deepseek-ai/dsh-session

What it does in a profile

Event-sourced session store. Sessions are appended as events, which is why a session file grows by frames rather than being rewritten. Currently 0.0.1-rc.1. To check whether it is already installed, read the dependencies in $DSH_HOME/profiles/<name>/package.json, or read the composed tree with --dump-config.

When you need to look at this package

Symptom: the list shows a session id that will not open, or the transcript you see stops matching the log. SessionStore (ctx key sessions) is the append-only source of truth, and the model message history is derived from it — a mismatch is a derivation problem, not a missing file.

What breaks if you remove or replace it

Without it there is no append-only log, so compaction has no surface to project and nothing is durable. The package also ships the chunk-row codec that writes the on-disk rows, and the lossless JSON utilities used when reading them back.

The package it gets confused with

It is not dsh-workspace. The workspace registry holds the list and attachment records; the session store holds the events. A session can exist as events and still be absent from the workspace list — that is exactly the state Session Index Doctor reports.

Common questions

How do I remove it again?

Use dsh plugin --profile <name> remove @deepseek-ai/dsh-session, the mirror of the install command.

What if the version does not match my dsh?

Plugins declare a compatible range through engines.dsh or DSH peer dependencies. Outside that range the CLI skips the plugin and prints the requirement instead of booting a combination that may crash.