Back to directory

dsh-bash-rtk

In a curated listMaintenance: Active

deeptrial/dsh-bash-rtk

DeepSeek Harness bash executor plugin that routes eligible commands through rtk (Rust Token Killer) to compress tool output and save tokens.

View on GitHubHomepage
$ dsh plugin --profile web add "<path-to-this-dir>"

18

stars

7

forks

TypeScript

Language

MIT

License

2026-08-14

Created

2026-10-18

Last push

MIT DSH plugin that wraps whitelisted shell commands with rtk to compress output, passing complex commands through untouched and doing nothing when rtk is absent.

DSH integration

Native runtime

Author-claimed

Safety audit

Unaudited

Last verified

2026-11-12

License

MIT

01What can it help you accomplish?

  • Cut the tokens that verbose shell output costs in a DSH session

    Eligible commands rewritten to `rtk <subcommand> …` so rtk compresses their output, while workdir, timeout, env, exit code and sandbox confinement stay unchanged

    DSH users whose sessions are dominated by `git`, `cargo` and test-runner output

  • Keep the deployment behaving exactly like the stock executor when rtk is missing

    Identity fallback: with no `rtk` binary on PATH, commands run untouched, and complex shell commands always pass through natively

    Teams that want the optimisation to be strictly optional and reversible

02How to install into DeepSeek Harness

Prerequisites

  • Node.js ≥ 20.0.0
  • `rtk` installed separately (e.g. `cargo install rtk`) with `rtk --version` exiting 0 on PATH — the plugin never installs or manages it
  • A DSH profile you can edit; the plugin is verified against `dsh` 0.2.1-alpha.1 and keeps the 0.1.x line working

Installation steps

  1. 01

    Install from a local checkout with `dsh plugin --profile web add "<path-to-this-dir>"`, or directly from the latest release tarball URL

    $ dsh plugin --profile web add "<path-to-this-dir>"

  2. 02

    Enable it: the plugin is disabled by default, so add the overlay to your profile's `cordis.patch.yml` — set `bash-sandbox` to `disabled: true` and `bash-rtk` to `disabled: false`

  3. 03

    Restart with `dsh web` to apply the profile change

    $ dsh web

Verify the integration

Not specified by the author

Rollback

  • Remove the overlay entries (or flip `bash-rtk` back to disabled) and restart `dsh web`; with rtk absent or the overlay removed the executor behaves like the stock one

03DSH integration and capability boundaries

DSH integrationNative runtime

DSH plugin that replaces the stock bash executor with `RtkBashExecutor` / `RtkSandboxBashExecutor` and rewrites commands at the `resolve()` boundary

  • Command rewriting at `resolve()`

    A shell command from the model→`rtk <subcommand> …` for eligible commands; the input command unchanged for everything else

    The rewrite happens before anything runs, so the workdir, timeout, env and exit code are inherited unchanged
  • Three independent guards

    A candidate command→Complexity (any shell metacharacter disqualifies), whitelist (only dev tools rtk implements), availability (identity when the binary is missing)

    Commands with pipelines, `&&`, `;`, redirects, `$( )` or env assignments always run natively
  • Independent rtk versioning

    The `rtk` binary found on PATH at `dsh` startup→Whatever rtk version you installed decides which subcommands and behaviour you get, with no plugin update needed

    The plugin does not bundle or pin rtk, so plugin and rtk versions move independently
  • `rtkAvailable` override

    A boolean in the executor config→Force-enable or force-disable rtk wrapping regardless of the PATH probe

    Intended for tests or deployments where the binary lives at a non-standard path

04Who is it for? When not to use it?

Good for

  • DSH users whose sessions are dominated by `git`, `cargo` and test-runner output
  • Teams that want the optimisation to be strictly optional and reversible

Not for

  • rtk is not bundled or managed: you install and update it yourself, and without it on PATH the plugin is a silent no-op passthrough.
  • Verified against `dsh` 0.2.1-alpha.1, and the README notes the `dsh` aggregate and its `@deepseek-ai/dsh-*` sub-packages sit on separate semver tracks, so each supported release line needs its own peer range branch.

05Compatibility, maintenance and safety notes

  • Complex commands — pipelines, `&&`/`;`, redirects, `$( )`, env assignments — always run natively regardless of the whitelist, so they get no token saving.
  • rtk is not bundled or managed: you install and update it yourself, and without it on PATH the plugin is a silent no-op passthrough.
  • The plugin is disabled by default — installing it changes nothing until you enable the overlay and restart `dsh web`.
  • Verified against `dsh` 0.2.1-alpha.1, and the README notes the `dsh` aggregate and its `@deepseek-ai/dsh-*` sub-packages sit on separate semver tracks, so each supported release line needs its own peer range branch.
2026-08-142026-10-18v0.1.1

MIT source; every claim here comes from the repository README at the recorded commit, with no independent safety audit.

06Frequently asked questions

Which commands actually get wrapped?

Only simple commands from the whitelist of dev tools that rtk implements — `git status` and `cargo build --release` qualify, `ls -la` does not. Any shell metacharacter (`| & ; < > \` $`) disqualifies a command, so pipelines, redirects and env assignments always run natively.

Does the plugin install rtk for me?

No. It does not bundle or pin rtk; you install and update it yourself (e.g. `cargo install rtk`) so that `rtk --version` exits 0 on PATH. When the binary is missing the transform is the identity and the deployment behaves like the stock executor.

Why does nothing change after installing it?

The plugin is disabled by default. You have to enable it through the overlay in your profile's `cordis.patch.yml` — `bash-sandbox` set to `disabled: true` and `bash-rtk` to `disabled: false` — and restart `dsh web`.

Which DSH versions are verified?

The README says the plugin is verified against `dsh` 0.2.1-alpha.1 and keeps the 0.1.x line working, and it explains that the `dsh` aggregate and its sub-packages use separate semver tracks, which is why the peer ranges carry explicit branches.

Can I force rtk on or off?

Yes — the executors accept an optional `rtkAvailable` boolean that overrides the `resolveRtk()` PATH probe, which the README says is useful for tests or deployments where the binary lives at a non-standard path.

08Data and sources

  • Author-claimedgithub.comd6559654d328…

    > Route eligible shell commands through [rtk](https://github.com/rtk-ai/rtk) (Rust Token Killer) inside the DeepSeek Har…

  • Author-claimedgithub.comd6559654d328…

    The plugin rewrites commands at the `resolve()` boundary — before anything runs:

This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-12. Found an error? Submit a correction.

🏆

Best DeepSeek Harness Plugins

Twelve plugins worth installing first — picked from the whole catalog, across every category.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.