MAXeaglet/dsh-bash-terminal
dsh-bash-terminal is a DeepSeek Harness plugin that provides one shell tool running commands through PowerShell, Git Bash, or WSL on Windows — all following the terminal the user selects in the Web UI settings — plus an interactive terminal tool with persistent PTY sessions. The user picks the default terminal in Settings → General → Default terminal (PowerShell / Git Bash / WSL); the AI cannot override this choice. The shell tool resolves DSH sandbox policy per call and confines PowerShell argv through ctx.sandbox. Each backend has distinct characteristics: PowerShell (default, pwsh -NoLogo -NonInteractive, Windows paths, $env:NAME env vars); Git Bash (bash -lc, POSIX paths /d/WorkSpace, PATH includes /usr/bin and /mingw64/bin, $NAME env vars); WSL (wsl -e bash -lc, Linux paths /mnt/d/, WSLENV bridge). The interactive terminal tool opens persistent real-PTY sessions using node-pty with actions open/send/read/signal/close; shell state persists across calls and sessions are managed as background jobs with auto-close on idle. Background execution is available via the generic jobs registry (run_in_background/job_output/job_kill). Official DSH sandbox seam: SandboxUnavailableError semantics, official sandbox_permissions/justification escalation and denial markers included.
Install
npm install -g dsh-bash-terminal && dsh plugin --profile web add dsh-bash-terminalInstall from npm: npm install -g dsh-bash-terminal (npm 0.3.14, registry-verified 2026-08-23), then dsh plugin --profile web add dsh-bash-terminal (adds to profile bundles and applies the cordis patch). On Windows, also run: powershell -ExecutionPolicy Bypass -File install.ps1 install (patches the DSH settings-UI allowlist to expose the terminal backend selector; re-run after DSH upgrades; install.ps1 install/uninstall restores the original allowlist with a backup). The official dsh.bundle manifest ships with the package — listing dsh-bash-terminal in a profile's dsh.profile.bundles auto-applies the mount, no manual profile edits needed. Restart dsh web after install. Remove with dsh plugin --profile web remove dsh-bash-terminal.
Compatibility
DeepSeek Harness web profile. Windows only for the multi-backend shell selection (PowerShell default, Git Bash, WSL). The shell tool resolves DSH sandbox policy per call and confines PowerShell argv through ctx.sandbox (same fail-closed SandboxUnavailableError as the shipped executors). Git Bash and WSL run unconfined (WSL is its own Linux VM; Git Bash cannot run under DSH's Windows ACL restricted-token runner). The interactive terminal tool uses node-pty: on non-Windows via ctx.subprocess.spawnTerminal, on Windows directly through node-pty (the upstream seam's process inspector is POSIX-only). Background execution via the generic jobs registry (run_in_background / job_output / job_kill).
Details
- Repo: MAXeaglet/dsh-bash-terminal
- Category: Coding & Development
- Stars: 12
- Version: npm package dsh-bash-terminal 0.3.14 (registry-verified 2026-08-23)
- Last push: 2026-09-11
- First seen: 2026-08-13
Recent updates
The current English README documents: the three backends (PowerShell/Git Bash/WSL) with syntax, path, and env-var differences; user-controlled terminal selection (Settings → General, AI cannot override); official DSH sandbox seam (ctx.sandbox.confine for PowerShell, unconfined for Git Bash/WSL with reasons); interactive terminal tool (node-pty, persistent PTY sessions, open/send/read/signal/close, background job auto-close); background execution (run_in_background/job_output/job_kill); install steps (npm install -g, dsh plugin add, Windows PowerShell install.ps1 for settings-UI allowlist patch); official dsh.bundle manifest (auto-apply via dsh.profile.bundles, no manual edits).
FAQ
- Can the AI choose which terminal backend to use?
- No — the user selects PowerShell, Git Bash, or WSL in Settings → General → Default terminal. The AI always obeys this choice and cannot override it.
- Is it sandboxed?
- PowerShell commands are confined through ctx.sandbox (DSH's official sandbox seam, same fail-closed semantics). Git Bash and WSL run unconfined — WSL is an isolated Linux VM and Git Bash cannot run under DSH's Windows ACL restricted-token runner.
- Does it work on macOS or Linux?
- No — the multi-backend shell selection (PowerShell / Git Bash / WSL) is Windows-specific. The interactive terminal tool works cross-platform via ctx.subprocess.spawnTerminal on non-Windows.
Alternatives
Clizo1209/dsh-playwright-browser · omdsh-dev/dsh_workflow · lire1131/dsh-undo-savepoint