A coding agent for the terminal, in a 3 MB binary.
claude-jr, or Claude Junior, does what Claude Code does: it reads your code, edits files and runs commands, asking before anything changes. It is written in Rust with no runtime, so it starts in 5 ms and sits in 2 MB of memory.
curl -fsSL https://claudejr.iwhitebird.com/install | sh
Linux and macOS, on x86 and ARM; on Windows, inside WSL. Then run claudejr and paste an Anthropic API key.
claude-jr 0.1.3
claude-opus-5-5 · ~/proj/cli
/help for commands · shift+tab to change mode> add a --verbose flag to the cli ● Bash(grep -n "struct Args" -A12 src/cli.rs) ⎿ 9:pub struct Args { … +11 lines ● Edit(src/cli.rs) 13 + /// Print debug output 14 + #[arg(short, long)] 15 + pub verbose: bool, ⎿ Edited src/cli.rs (1 replacement) ● Bash(cargo build) ⎿ Finished `dev` profile in 2.1s ● Added --verbose to Args. The build passes.> ask anything, or /help
Small enough not to notice
There is no Node or Python to install and nothing running in the background. A whole working session, including the commands it runs, fits in a 16 MB container on a twentieth of a CPU core.
| claude-jr | Claude Code | pi | |
|---|---|---|---|
| Install size | 3.2 MB | 324.5 MB | 109.0 MB |
| Memory, idle | 2.0 MB | 135.0 MB | 141.1 MB |
| Memory, working | 2.5 MB | 270.2 MB | 137.5 MB |
| Startup | 5 ms | 167 ms | ~260 ms |
| Its own CPU, 20 tool calls | 30 ms | 1,150 ms | 580 ms |
All three run against the same fake API, so the model's time isn't counted; how it's measured.
And it gets the work done
SWE-bench Verified gives an agent real GitHub issues from projects like Django, sympy and scikit-learn, and checks its fix with the projects' own hidden tests.
of a random sample of 100 tasks resolved with Claude Sonnet 5.5, one attempt each, at about five cents a task. With Claude Opus 5.5, 45 of 50 (90%).
What's in it
- Subagents
- Side tasks go to agents that work in parallel and report back.
- Permission modes
- From asking about everything to an auto mode where a small model reviews each command. shift tab switches.
- A sandbox
- With
--sandboxon Linux it can only write to your project; keys, sockets and the rest of your home stay out of reach. - Rewind and resume
- Go back to before any message with its file changes undone. Every session is saved as it goes.
- Skills and MCP
- Reads your
.claude/skillsand talks to MCP servers, local or remote. - Images and the web
- Drag in a screenshot, and it can search and fetch pages when the task needs them.
- A stash
- ctrl s puts a half-written message aside while you send another.
- Scripting
claudejr -p "…"runs one prompt, with JSON output and a spending limit for CI.
Using it
claudejr | start in this folder |
claudejr -c | continue the last conversation |
claudejr -p "explain main.rs" | one prompt, then exit |
claudejr --sandbox | only write inside this folder |
claudejr --update | get the newest release |
/ | every command, inside it |