DSH Toolbox

@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-sandbox

What 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.