DSH Toolbox

@deepseek-ai/dsh-base

@deepseek-ai/dsh-base is a DeepSeek Harness profile bundle: The shared core as a profile bundle: every profile's first patch layer, inserting the base plugin rows over the empty profile root.

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-base

What it does in a profile

The shared core as a profile bundle: every profile's first patch layer, inserting the base plugin rows over the empty profile root. 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

You notice it when a profile boots oddly: a row that should apply does not, or a Windows host runs bash when you expected PowerShell. dsh --profile web --dump-config prints the composed tree; the base rows are the ones you never added by hand — model adapters, agent-default-model, tools, persistence, policy, settings and credentials, telemetry, subagent providers.

What breaks if you remove or replace it

Removing it leaves nothing to patch: every later bundle overrides rows by id, and those ids come from this layer. On Windows it also ships windows.cordis.patch.yml, which disables the POSIX bash stack (bash-sandbox, tool-bash) and mounts dsh-pwsh-sandbox and dsh-tool-pwsh instead. A half-restored bash recipe fails at load, because both executor families register the same bash service.

The package it gets confused with

It gets confused with dsh-tools. dsh-base is a patch layer: it inserts rows. dsh-tools is the registry those rows point at. You can replace the registry; removing the layer removes the pointers. Also note that mounting dsh-fs-local next to fs-sandbox double-registers ctx.fs and fails the load.

Common questions

How do I remove it again?

Use dsh plugin --profile <name> remove @deepseek-ai/dsh-base, 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.