dsh-nushell
English | 中文
dsh-nushell is a DeepSeek Harness profile bundle that runs the built-in bash tool with Nushell.
The model-facing tool keeps the stable bash name and arguments, but commands are evaluated as nu --no-config-file -c <command>. User config.nu and env.nu cannot affect tool calls; DSH background jobs, permission approvals, sandbox integration, timeouts, and output handling remain available.
Requirements
- DSH
0.1.0-rc.7compatible release running on Node.js>=22.19.0. - Nushell available as
nuonPATH. To use another executable, setDSH_NU_PATHto its absolute path before launching DSH.
Install
dsh plugin --profile web add dsh-nushellRestart the profile after installation. Substitute web with the profile you use.
Local development
Install dependencies and build the package:
pnpm install
pnpm run buildGenerate a patch that references the local build through absolute paths:
pnpm run patch:localThis generates the Git-ignored cordis.patch.local.yml from cordis.patch.yml, replacing sandbox.js and tool.js with absolute file:/// paths to the local dist directory.
Start DSH with the generated patch:
dsh web --patch ./cordis.patch.local.ymlAfter a source change, rebuild and run pnpm run patch:local again.
Usage
The tool is still named bash, but write Nushell:
ls | where type == file | get name
open package.json | get name
$env.DSH_WEB_URLEach invocation is a new process. Use the tool's workdir argument rather than depending on a prior cd command.
Limitations
- Shell state, aliases, and variables do not persist between tool calls.
- For compatibility, the public tool name remains
bash; this package's own consumer makes its schema description and system prompt Nushell-specific. - The executor delegates confinement to the DSH sandbox and classifies file denials and sandbox-runner failures with the active runner's diagnostics.