dsh-shell-select
提供可配置且受限的Shell执行工具 适合需要让智能体在指定且安全的Shell环境中执行系统命令的用户。
安裝
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:athif23/dsh-shell-select說明文件
閱讀完整 README ↗Configuration
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.