@deepseek-ai/dsh-shell
@deepseek-ai/dsh-shell is a DeepSeek Harness capability seam: Bash executor seam (ctx.shell). On Windows, dsh-pwsh-local supplies the PowerShell implementation instead.
Published on npm at 0.0.1-rc.5. 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-shellWhat it does in a profile
Bash executor seam (ctx.shell). On Windows, dsh-pwsh-local supplies the PowerShell implementation instead. Currently 0.0.1-rc.5. 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: a command runs and never comes back, or background work vanishes. run(spec) resolves when the command finishes and rejects only for infrastructure failures — a nonzero exit is a result, not a rejection. start(spec) returns a ShellProcess handle immediately and applies no timeout.
What breaks if you remove or replace it
Remove it and every tool that shells out fails. On Windows the shipped profile does not use this package: windows.cordis.patch.yml disables tool-bash and mounts the PowerShell executor instead, so a “bash is broken on Windows” report is usually this swap, not a fault.
The package it gets confused with
It is not dsh-jobs. The executor runs a command; jobs tracks it. Job ids, ownership, collection, cancellation and completion notices belong to ctx.jobs. The per-session sandbox override rides the sandbox/mode event and the effectiveSandboxMode(events) fold, not the shell call.
Common questions
How do I remove it again?
Use dsh plugin --profile <name> remove @deepseek-ai/dsh-shell, 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.