AI Agent Hub
Back to plugins
🖥️

dsh-fish-shell

Client Updated 2026.08.20

Run the following command in DeepSeek Harness:

dsh plugin install nathannli/dsh-fish-shell

Paste the following prompt into your AI chat to install this plugin:

Run dsh plugin install nathannli/dsh-fish-shell inside your DeepSeek Harness session to install this plugin; the source repository is available at https://github.com/nathannli/dsh-fish-shell, and a DSH host restart is required after installation.

About this plugin

Some teams prefer Fish shell for its modern syntax and developer experience, yet DSHs default shell executor is hardwired to Bash and the model-facing tool carries the name bash. This plugin swaps the underlying execution from bash -c to fish -c while keeping every external contract-intact: tool name, schema, sandbox approval, timeouts, and background-job semantics remain unchanged, so Fish-preferring developers never have to rework the upstream pipeline.

Under the hood, the plugin rewrites both foreground and background command executors and injects a system-prompt directive so the model generates Fish-compatible syntax. Persistent PTY terminal sessions are deliberately left untouched. When Babelfish is configured, standalone Bash assignments such as NAME=value, export NAME=value, and NAME=$(command) are pre-processed into Fish set statements before execution, while Fish-native commands pass through unchanged. If a Babelfish translation fails, the tool call is aborted rather than letting untranslated Bash reach the shell, preventing silent runtime errors.

The README itself carries a cautionary note: the plugin should not be adopted casually because syntax rewrites can introduce extra retries, and the design explicitly avoids being a general-purpose Bash compatibility layer. Complex inline assignments and semantics outside Babelfishs coverage should be authored directly in Fish. This makes the plugin a fit for small teams or heavy Fish users who have already standardized on that shell and want the DSH pipeline to honor that preference end-to-end, rather than for projects looking for a drop-in Bash-to-Fish migration path.

Use Cases

  • Team standardized on Fish shell and wants the DSH executor to run commands via Fish
  • Guide the model to emit Fish-compatible syntax through a system-prompt directive instead of default Bash
  • Auto-translate common Bash assignments such as NAME=value into Fish set commands via Babelfish

Best For

  • DSH users who have fully adopted Fish shell as their daily driver
  • Small teams seeking end-to-end shell consistency across the pipeline
  • Developers fluent in Fish syntax who do not need a general-purpose Bash compatibility layer