DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-shell

L

dsh-shell

Manifest valid

DSH 插件:为智能体一次性命令与持久终端选择 Shell(Bash、Zsh、fish、PowerShell、Git Bash、MSYS2、Cygwin、WSL)。 / DSH plugin: choose the shell for agent one-shot commands and persistent terminals (Bash, Zsh, fish, PowerShell, Git

UI (client)hasBundlePatchMachine translated

dsh-shell

Tests

English | 中文

Selects the shell for DSH agent commands and the minimal persistent terminal. v0.3.0 adds Default Native Passthrough, verified against DSH 0.2.0-rc.2. The saved default remains auto; existing selections are not migrated.

Modes

SelectionBehavior
autoPreserves dsh-shell's existing executor, startup and exported-environment inheritance behavior. It is not native passthrough.
defaultDirectly assembles DSH's official sandboxed Bash (POSIX) or PowerShell (Windows) executor and keeps official preset tools, terminal backend and persistent tools.
A detected shell / legacy shell nameManual selection; all existing shell adapters and startup behavior remain supported.

Default does not instantiate a SelectedExecutor, wrap shell commands, collect a login-shell environment, inject dsh-shell startup code, rewrite tool registrations or adopt Job kinds. Bash jobs keep official kind: 'bash', IDs, owners, lifecycle, cancellation, timeout and output management. It leaves DSH's parent-environment scrubbing, allowed env/dshEnv injection, sandbox and approvals intact. Credentials filtered by official DSH stay filtered; Default does not make every ambient variable available.

Verified on macOS 15+ (arm64) with DSH 0.2.0-rc.2: the official executor class mounts by identity with the official row's configuration and expression scope, jobs, terminal and persistent registration differ from the official modules only in the adapter's own rows, and the real sandbox, subprocess and PTY outcomes match the official baseline. Windows and WSL behavior is asserted with the real official modules on a simulated platform, not on a Windows host.

Configuration is selected during Cordis composition, not execution. The official executor rows remain disabled declarations; the assembly plugin loads exactly one official or selected executor. Default reads the original official row's configuration (including user overrides), not the selected executor's timeout. Shipped POSIX timeout is 60s; PowerShell's schema default is 120s. Missing, duplicate, enabled or non-official native declarations fail explicitly without falling back.

The four shipped presets are no longer restated wholesale. A scoped runtime configuration hook adapts only the official preset-standard, preset-ptc, preset-cordis and preset-minimal carriers in Auto/Manual; Default leaves their configuration unchanged. User plugin rows, nested groups, expressions and overrides are retained. Independent custom presets are not automatically rewritten. For selected shells they can opt in through dsh-shell/preset or the existing adapters; their global executor still follows the selected mode. Identical stock minimal descriptions use the previous adapter guidance in Auto/Manual; different custom descriptions are retained.

Environments

PlatformSelectable
macOS / LinuxBash, Zsh, sh, dash, ksh, mksh, ash, fish, csh, tcsh
WindowsPowerShell 7, Windows PowerShell, Git Bash, MSYS2, Cygwin, WSL

Only detected installations are listed, found through common locations, PATH, /etc/shells, the Git registry, and MSYS2_ROOT / CYGWIN_ROOT. POSIX IDs derive from installation paths, so they survive other installations changing; a legacy name such as bash still selects that family's first installation.

Usage

Open Plugins → dsh-shell, choose a shell (and a WSL distribution when asked), save, then restart DSH and start a new session. Restart again after installing new environments to refresh the list.

SelectionStartup
Zsh.zshenv, .zprofile, .zshrc, .zlogin, honoring ZDOTDIR
POSIX Bash/etc/profile, then the first of .bash_profile, .bash_login, .profile; .bashrc only when none exists
Other POSIXThe original user shell loads first, carrying exported variables over
Windows BashAfter a capability check, uses the same profile rules as POSIX Bash; a profile controls whether to source .bashrc

Default uses the official platform tool names. Manual tool names follow the shell that actually runs (zsh, fish, etc.; Windows Bash environments report bash), with matching syntax guidance. Custom presets can point at dsh-shell/tool-posix or dsh-shell/tool-windows.

shellPath in the profile patch overrides a detected installation with a same-family executable; it cannot accompany auto, default or wsl. Modes are startup-only: after saving, restart the entire DSH runtime and create a new session. Existing sessions and terminal state must not be reused as a hot-switch mechanism. Re-enabling the plugin with a different selection in the same runtime fails with a restart-required error.

Install

Desktop — open Plugins in the sidebar, click Add plugin, paste one of the specs below, then choose Enable now and restart DSH:

github:Luca4Don3/dsh-shell
/absolute/path/to/dsh-shell

CLI-managed Web profile — add both installs and selects the bundle; restart DSH to compose it:

dsh plugin --profile web add github:Luca4Don3/dsh-shell
# or from a local checkout
dsh plugin --profile web add /absolute/path/to/dsh-shell

The github: spec downloads over HTTPS from codeload.github.com; an npm mirror does not proxy it, so the host needs reachable GitHub access.

Limits

  • WSL requires danger-full-access and fails in confined modes; other Windows shells keep DSH's sandbox.
  • v0.3.0 declares the exact DSH 0.2.0-rc.2 peer: its runtime preset hook uses Cordis's internal configuration seam (Cordis 4.0.4 / Loader 1.0.5). Other DSH releases require renewed verification, not a version exemption. Auto/Manual persistent compatibility code is unchanged and still validates the known command frame.
  • Independent custom preset registrations are not auto-adapted. Their official tools may still describe Bash while a manually selected global executor runs another shell; use the opt-in adapters. Runtime preset views show adapted rows in Auto/Manual, while the official config editor persists authored raw configuration.
  • Configuration saves do not live-switch shells. Restart after enabling/disabling/upgrading/downgrading the bundle. DSH rc.2 can keep the GUI running with a failed optional plugin; a failed assembly is reported, but this bundle does not force the entire application to exit. Resolve that error before running commands.
  • Custom executor scopes (isolate/intercept/inject on the official or assembly row) and a native row moved into another loader group fail explicitly. Keep the official rows and dsh-shell/assembly in the same unmodified scope; moving them changes sandbox scope semantics.
  • The official executor row stays disabled, so live profile edits of its raw config take effect on the next full restart, like a mode change. Auto/Manual keep their existing volatile-config behavior.
  • Verified on macOS 15+ (arm64) with DSH 0.2.0-rc.2 and a complete extracted official tree. Windows / WSL, non-PowerShell confinement and the desktop GUI activation flow have no native Windows-host run; Linux CI is not covered by the shipped workflow.
  • Bash, Zsh, sh, dash, ksh, csh and tcsh are covered by isolated local tests. fish, mksh and ash startup tests are pending, and Windows / WSL has no Windows-host acceptance run.
  • Two cases carry a known: skip on hosted CI (CI=true): the fish frame and sh's initialization handshake fail there while passing in a local macOS run. The skip reason is inline in the test; remove both once the PTY interaction is fixed.
  • npm test requires Node.js 24, plus Python 3 for PTY tests only.

Upgrade, disable and rollback

Back up your profile and retain the previous installation spec/commit before upgrading. Update the bundle through the same plugin manager or CLI installation path, restart DSH, and create a new session. auto remains the default; no existing selection or preset file is rewritten. Older profile copies that explicitly name dsh-shell/shell for the executor need the new dsh-shell/assembly composition before selecting Default; the old SelectedExecutor fails explicitly in Default. Review any stale name assertions reported by the Loader.

For rollback, first choose the previous Auto/manual selection, collect or cancel live jobs, close persistent terminals, then stop DSH. Reinstall the previous spec/commit (v0.2.0 does not understand default) or disable/remove the bundle through the plugin manager. Restart and create a new session. Bundle removal restores the base official composition; it cannot remove adapters that you explicitly put in custom profile/preset configuration. Retain those custom files and remove/update references deliberately, never overwrite the whole preset.

Verification

npm test runs the portable/mock lane and shell regression fixtures. Real official-source tests are opt-in and must not be confused with the mock lane:

DSH_OFFICIAL_ROOT=/absolute/path/to/isolated/dsh npm run test:native

Use a DSH 0.2.0-rc.2 directory containing its complete node_modules, including the matching native PTY bindings. No active profile is needed or modified. Tests compare actual official constructors, registrations, execution, environment predicates, timeout, sandbox denial and PTY behavior. They never dump ambient environment values. Native test skips are explicit; without the root, the native-only command fails rather than claiming acceptance.

License

MIT

Comments

Loading…

Similar plugins

dsh-bash-terminal-ts

DSH plugin: one shell tool that runs commands through PowerShell, Git Bash, MSYS2, or WSL on Windows, with a user-chosen default terminal in the Web UI settings. TypeScript rewrite of MAXeaglet/dsh-bash-terminal with working MSYS2/MINGW64 support.

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

dsh plugin --profile web add dsh-bash-terminal-ts

by MAXeaglet

DSH plugin: one shell tool that runs commands through PowerShell, Git Bash, or WSL on Windows, with a user-chosen default terminal in the Web UI settings.

Terminal & ClientsManifest valid

★ 23

↓ 218/wk

MIT

JavaScript

Sep 11, 2026

dsh plugin --profile web add dsh-bash-terminal

by liu-zhengdong

DSH 插件:给 Agent 多个跨平台持久后台 shell(zsh/cmd/gitbash/pwsh),侧边栏面板跟随 PTY 流

Manifest valid

★ 0

MIT

JavaScript

Oct 18, 2026

dsh plugin --profile web add dsh-shells

by KannaKuron

DSH plugin: Git Bash shell for all agent modes on Windows (replaces pwsh executor)

Terminal & ClientsManifest valid

★ 38

↓ 2.9k/wk

MIT

JavaScript

Oct 18, 2026

dsh plugin --profile web add dsh-gitbash-shell

by kiterunner1

DSH 插件:任务结束或命令卡死时用本机人声提醒,自动中断卡住的 pwsh 调用并把「怎么继续」写回工具结果,并在 spawn 之前拦掉已知的性能陷阱写法。仅 Windows。 / Beeps + stuck-command watchdog + command guard for DeepSeek Harness. Windows only.

Manifest valid

★ 0

MIT

JavaScript

Sep 15, 2026

dsh plugin --profile web add dsh-attention-beep

by tianyaojiudi-prog

DSH(DeepSeek Harness) 插件:把一段可在设置页随时改写的文字,作为全局系统提示词段注入到所有会话,含子代理与工作流内部子代理;文本与开关即时生效,无需重启。

Tools & CapabilitiesManifest valid

★ 8

MIT

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-djy-xttsc