dsh-shell-select
DeepSeek Harness plugin: one model-facing `shell` tool whose shell is a user setting. Resolves and validates through the harness's own seams, and refuses to run when the selected shell cannot be confined. 适合需要让智能体在指定且安全的Shell环境中执行系统命令的用户。
설치
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:athif23/dsh-shell-selectConfiguration
Settings live in ~/.dsh/settings.yaml under the shell-select namespace:
shell-select:
shell: gitbash
loginShell: false
| Setting | Default | Meaning |
|---|---|---|
shell | auto | A catalog id, or auto. |
executable | empty | Explicit path for the selected shell. Wins over discovery. A path that cannot be resolved, or that names a different shell, is an error rather than a cue to search. |
loginShell | false | Run a bash-family shell with -l, which sources your profile scripts on every command. |
wslDistro | empty | WSL distribution name; empty uses the distribution's default. |
wslMountRoot | /mnt | Where the distribution mounts Windows drives. |
enableRunInBackground | true | Offer run_in_background on the shell tool. |
The remaining fields are the inherited local executor's budgets, carried through
so one composition row configures the whole executor: cwd, timeoutMs
(120000), maxTimeoutMs (600000), maxOutputBytes (64000), maxSpillBytes
(67108864), and graceMs (3000). pwshPath is the harness's own PowerShell path
setting, still honored for the PowerShell entries so an existing value keeps
working.
Automatic is the default because it reproduces what the deployment already
does: the first catalog entry that resolves, which on Windows is PowerShell
(what the harness's own executor runs) and on Linux follows a $SHELL that names
a catalog entry. An explicit executable override changes the answer, because an
override naming a shell claims that shell: setting executable to a
bash.exe path while shell is auto runs that bash, with bash's arguments.
A settings change applies to subsequent calls. It never alters a call that is already being prepared, a running process, or the facts a finished call recorded.