@deepseek-ai/dsh-sandbox
@deepseek-ai/dsh-sandbox is a DeepSeek Harness capability seam: Process-sandbox seam (ctx.sandbox): the confinement vocabulary and the SandboxProvider contract that backends implement.
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-sandboxWhat it does in a profile
Process-sandbox seam (ctx.sandbox): the confinement vocabulary and the SandboxProvider contract that backends implement. 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: a command is refused with sandbox mode "<mode>" is requested but no sandbox backend is usable on this host; refusing to run the command unconfined. That message is this package declining to degrade silently — better than running unconfined and calling it a success.
What breaks if you remove or replace it
Remove the seam and policy has nowhere to attach. SandboxMode is read-only, workspace-write or danger-full-access and governs file effects only; SandboxEnforcement reports full or partial per kernel ABI instead of pretending the confinement is equal everywhere. Policy rides each call, so two consumers can confine under different policies at the same instant.
The package it gets confused with
It is not dsh-sandbox-local. This package owns the contract and the vocabulary; the local package supplies the backends — bwrap, the npm-distributed landlock-run launcher, macOS Seatbelt, or the Windows ACL restricted-token runner — and probes them at runtime. Installing backends changes no policy by itself.
Common questions
How do I remove it again?
Use dsh plugin --profile <name> remove @deepseek-ai/dsh-sandbox, 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.