ruri
One desktop workspace for all your projects — each one lead you talk to, with a team of agents behind it.
Projects are folders
Each holds its own sessions, side by side: named for you, warm in the background, back after a relaunch.
Any harness
Claude Code, Codex, OpenCode, Gemini or any ACP agent, picked per chat from one dropdown.
A queue you can steer
Line up prompts while a turn runs. Reorder, merge and edit them, or cut in with ⌘Enter.
Rewind anything
ruri's own checkpoints put files, commits and context back, on every harness. Fork at any turn.
The bridge
A session opens what it built in a hidden window, clicks through it, and looks.
A memory that grows
Catch-up notes, a sheet for every layer and a component library, kept for whoever comes next.
A lead, and a team behind it
Every project is one chat: its lead. You talk to it; it hands each job to the teammate whose layer it is, and brings the answer back. Teammates sleep between jobs, wake when they're messaged, and all of them can work at once.
- Leadtalks with you, hands out jobsat work
- Webthe page you're readingat work
- Serverthe API behind itasleep
- Liaisonjobs from other projectsasleep
The dragon gauges
Your context and your account's limits, either side of the composer. Each dragon fills from his feet up, and past 80% he starts to sweat.
Install
Built on your machine with one command: a Mac with Apple silicon, or Linux on x64 or arm64.
ruri runs the coding CLI you already use, so have one signed in: Claude Code, Codex, OpenCode, Gemini or any ACP agent.
Build it, install it, open it
You'll need bun, and on Linux Node.js 20 or later. make builds ruri,
installs it and opens it; make update brings it up to date later. On a Mac it signs ruri with a
local identity, so macOS remembers what you let it do.
$ git clone https://github.com/justin06lee/ruri.git
$ cd ruri
$ make