DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Shell — DSH Plugin for DeepSeek Harness
← Plugins
S

dsh-shell

Shell

Select the shell for DSH agent commands and persistent terminals

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Luca4Don3/dsh-shell#950cb827d1ea18bbf926b5eba2548687c676020c
READMECompatibilityVersions

Compatibility and provenance

Shell is published as dsh-shell and currently resolves to version 0.3.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/10/2026

Versions

0.3.0stable
10/10/2026
0.2.0stable
10/9/2026

Related plugins

Loading related plugins…

Latest
0.3.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/10/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in developer-tools.

Cc Safety Netcc-safety-netA coding agent CLI hook - block destructive commands and secret file accessRemotedsh-remoteRemote-work assistant for DeepSeek Harness: connect SSH (password/key/agent/keyboard-interactive/proxy jump), pick a remote workspace, operate on it with 22 rw_* tools (incl. rw_edit/rw_stat/rw_mkdir/rw_remove/rw_move/rw_forward), conflict-aware mirror syFind Plugindsh-find-pluginFind DeepSeek Harness plugins inside the agent — live GitHub dsh-plugin topic search, ranked by stars.Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)

README

dsh-shell

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