Starts fast
0.90 ms, one ninety-eighth of dsh's 88 ms.
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.
| Harness | Passed | Median | Total |
|---|---|---|---|
| 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).
0.90 ms, one ninety-eighth of dsh's 88 ms.
Anything that is not a native command goes to dsh.
Token counts, search, sessions and doctor run without Node.js.
Read-only commands change nothing and send no credentials.
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 |
No matches
A small page for state and token counts.
rdsh settings set extras.enable serverdsh serve Optional, Node.js 22 or newer.
rdsh-dashboard project --project <directory> Checks Harness Desktop and wires plugin connections.
rdsh desktop statusrdsh desktop install --plugins-dir .rdsh desktop verify | Harness | CLI start | Peak RSS | Install | Runtime |
|---|---|---|---|---|
| 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.
curl -fsSL https://github.com/jimoto-no-llm/rustdsh/releases/latest/download/install.sh | bash -s -- --from-release $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 | Rust | 1.85+ when building from source |
|---|---|
| Node.js | 22+ for dsh and the dashboard |
| OS | Linux, macOS, Windows, WSL |
| License | MIT |
From source, run ./install.sh. --as-dsh replaces dsh, --restore puts it back.