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
- 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>"
- 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`
- 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 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 unchangedThree 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 nativelyIndependent 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.
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.
07Related DSH workflows
dsh-our-free-model
by ebony-vinyl
Adds model choices, availability checks, usage panels, and a local OpenAI-compatible forwarder.
dsh-routing-suite
by yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
dsh-ops
by t-auto
Run Bash and PowerShell commands, search and edit local files, and manage long-running background jobs from DSH.
brooks-lint
by hyhmrright
Portable AI code quality reviews for Codex, Cursor, Copilot and other coding agents: six Agent Skills for architecture, technical debt, tests and remediation.
08Data and sources
> Route eligible shell commands through [rtk](https://github.com/rtk-ai/rtk) (Rust Token Killer) inside the DeepSeek Har…
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.
