Introduction¶
DeepSeek Harness (DSH) adopts a plugin-based architecture. By default, models use bash or PowerShell when executing tasks. dsh-nushell-only is a Profile Bundle that takes over DSH’s shell execution layer, forces all shell execution to use Nushell, and works with prompt-based guidance to prevent the model from outputting Bash or PowerShell syntax.
Features¶
This plugin mainly includes modifications across four aspects:
-
Taking over the execution layer
The plugin disables DSH’s built-inbash-sandboxandpwsh-sandbox, replacing them with a customdsh-nushell-only/executor. All calls throughctx.shell(including model tools, background tasks, Hook bridging, etc.) becomenu --no-config-file -c "<command>". Parameter settings (such as timeout, output limit, spill file) follow the first-party implementation; only the execution command is replaced. -
Enforcement guard
The executor has a built-in guard mechanism that rejects attempts by the model to switch to other shells (such asbash -c,sh -c,cmd /c,pwsh -Command,wsl, etc.). This feature is enabled by default and can be disabled or configured with an allowlist. -
Teaching layer
It providesnushell-rulesandnushell-guide. The plugin rewrites the tool descriptions andcommandparameter descriptions seen by the model into Nushell dialect, includes a syntax manual and a Bash/PowerShell comparison table, and attaches the detected Nushell version during each assembly. -
Dialect pre-check and correction
Before execution, it intercepts common Bash/PowerShell habits (such as2>&1,2>$null,$env:VAR,Get-Content,foreach, etc.) and suggests specific Nushell syntax alternatives. When execution fails, it appends a hint based on the actual Nushell error code.
Installation and Enablement¶
Run the following command to install the plugin:
dsh plugin --profile web add dsh-nushell-only
After installation, restart the Profile.
Configuration and Verification¶
If the Profile already contains the old dsh-nushell plugin, you must first uninstall it to avoid conflicts:
dsh plugin --profile web remove dsh-nushell
After installation, you can verify that the configuration is active with the following command:
dsh --profile web --dump-config | grep -n "nushell"
Configuration options include:
- enforceNushellOnly: false: Disables the enforcement guard.
- foreignShellAllowlist: Sets the allowlist for calling other shells.
Notes¶
- Version compatibility: The plugin is compatible with DSH
0.2.0-rc.2. - Runtime requirement: Node.js version must be
>=22.19.0. - Dependencies: The installer validates runtime versions according to
peerDependenciesand refuses installation if they do not match.
Conclusion¶
dsh-nushell-only is suitable for developers who want to standardize the shell ecosystem or cultivate Nushell habits for their models from scratch. By taking over the execution layer and the prompt layer, it forces the model to use Nushell and reduces errors caused by environment differences.
Catalog page: dsh-nushell-only - SkillHub
Source code: YMRwithNoworry/dsh-nushell-only - GitHub