rdsh

rdsh runs dsh's everyday commands in Rust. Start-up takes 0.90 ms, memory 2.9 MB.

Chat and model calls still go to dsh. Nothing about your workflow changes.

  • Linux, macOS, Windows, WSL
  • single binary, 1.97 MB
  • MIT
rdsh bench --n 5
startup 0.90 ms dsh 88 ms
memory 2.9 MB dsh 66 MB
tokens 12 ms dsh 35 ms
sessions 0.41 s dsh 1.65 s

Results by harness

dsh 7/7 at 24.6 s median, dsh via rdsh 7/7 at 29.6 s, Codex CLI 7/7 at 28.0 s, Claude Code 6/7 at 36.5 s, Gemini CLI 6/7 at 18.2 s, opencode 6/7 at 45.4 s dsh 7/7 at 24.6 s median, dsh via rdsh 7/7 at 29.6 s, Codex CLI 7/7 at 28.0 s, Claude Code 6/7 at 36.5 s, Gemini CLI 6/7 at 18.2 s, opencode 6/7 at 45.4 s
HarnessPassedMedianTotal
dsh (plain) 7 / 7 24.6 s 229.6 s
dsh (via rdsh) 7 / 7 29.6 s 255.9 s
Codex CLI 7 / 7 28.0 s 200.6 s
Claude Code 2.1.296 6 / 7 36.5 s 514.1 s
Gemini CLI 0.63.0 6 / 7 18.2 s 411.3 s
opencode 1.19.4 6 / 7 45.4 s 345.0 s

deepseek-v4.1-flash through the same API and the same prompt on five harnesses, seven tasks, graded by their tests. Seven tasks once each prove no statistic.

Harness names and logos are trademarks of their owners, used here only to identify what was compared. Icons come from Simple Icons (CC0 1.0).

What it does

Starts fast

0.90 ms, one ninety-eighth of dsh's 88 ms.

Same commands

Anything that is not a native command goes to dsh.

Rust commands

Token counts, search, sessions and doctor run without Node.js.

Leaves files alone

Read-only commands change nothing and send no credentials.

Commands

16
Commands
rdsh tokens Measure Token estimate. CJK counts as one token per character. number
rdsh prune Measure Trim context to a token budget. text
rdsh search Search Parallel text search. matches
rdsh sessions Session Session list with token estimates. table
rdsh compact Session Compact a session JSONL. The source file stays. file
rdsh doctor Diagnose Checks dsh, the environment and paths. diagnosis
rdsh profiles Diagnose Available profiles. list
rdsh skills Diagnose Available skills. list
rdsh desktop Runtime Detect the Desktop app and attach plugins. state
rdsh bench Measure Startup comparison between rdsh and dsh. table
rdsh features Diagnose Feature switches and their defaults. list
rdsh auth Runtime Inspect login state and import credentials. state
rdsh guard Runtime Runs as a hook and blocks dangerous commands. verdict
rdsh context Runtime Build, inject and remember turn context. JSON
rdsh deps Diagnose Dependency graph and change impact. graph
rdsh serve Runtime Local-only status page. HTTP

Safety

  1. Conversations stay upstream The agent loop and model calls are dsh's.
  2. Nothing rewritten Read-only commands leave files untouched.
  3. Only named credentials It reads the credentials you point at.
  4. Sandbox is opt-in On Linux, --share-file passes only the files you share.
  5. Off by default serve, search-web, context_engine and agent_tool_sandbox start disabled.

Web UI

:38080rdsh serve:3080dsh

Web UI

A small page for state and token counts.

rdsh settings set extras.enable serverdsh serve

Dashboard

Optional, Node.js 22 or newer.

rdsh-dashboard project --project <directory>

Desktop

Checks Harness Desktop and wires plugin connections.

rdsh desktop statusrdsh desktop install --plugins-dir .rdsh desktop verify

Start-up and size

CLI start: rdsh 1.52ms, Claude Code 8.61ms, Codex 34.76ms, dsh 66.1ms, opencode 369ms, Gemini CLI 1316ms CLI start: rdsh 1.52ms, Claude Code 8.61ms, Codex 34.76ms, dsh 66.1ms, opencode 369ms, Gemini CLI 1316ms
Time until it answers
Install size: rdsh 8.9MB, Gemini CLI 101MB, opencode 205MB, Claude Code 246MB, Codex 430MB, dsh 864MB Install size: rdsh 8.9MB, Gemini CLI 101MB, opencode 205MB, Claude Code 246MB, Codex 430MB, dsh 864MB
Disk it takes
HarnessCLI startPeak RSSInstallRuntime
rdsh 0.12.0 1.52 ms 5.3 MB 8.9 MB single binary
Claude Code 2.1.296 8.61 ms 38.1 MB 246 MB single binary
Codex CLI 0.161.0 34.76 ms 49.7 MB 430 MB Node
dsh 0.2.1-rc.3 66.1 ms 66.7 MB 864 MB Node
opencode 1.19.4 369 ms 128.3 MB 205 MB Node
Gemini CLI 0.63.0 1316 ms 210.2 MB 101 MB Node

Fedora 44 / x86_64, measured 2026-10-25. Start is the median of 10 --version runs, RSS is the peak of one run, size is the resolved install. Conversation-time memory and speed depend on the model and the task, so they are not compared here. rdsh hands off to dsh (Node) after launch, so conversation memory matches dsh.

Install

Linux, macOS, WSL
curl -fsSL https://github.com/jimoto-no-llm/rustdsh/releases/latest/download/install.sh | bash -s -- --from-release
Windows (PowerShell)
$f = Join-Path $env:TEMP 'rdsh-install.ps1'
Invoke-WebRequest -Uri https://github.com/jimoto-no-llm/rustdsh/releases/latest/download/install.ps1 -OutFile $f -UseBasicParsing
& $f
Requirements
Rust1.85+ when building from source
Node.js22+ for dsh and the dashboard
OSLinux, macOS, Windows, WSL
LicenseMIT

From source, run ./install.sh. --as-dsh replaces dsh, --restore puts it back.

Docs