An agent-aware terminal · prototype
Every session flies its status.
Run five Claude Code sessions in five tabs and you lose track of which one is waiting on you. Rig puts an agent-status engine at the core of the terminal: a vertical rail shows what each session is doing — and tells a permission request from a question from an idle nudge, instead of flattening them into one ambiguous ping.
This is the real Rig renderer, running in your browser. The four sessions are simulated: they move through working, permission, question, done and idle every few seconds, so the engine has something to coalesce.
Open it full sizeThe engine is the core
Six statuses, and the difference between them.
Where other terminals treat agent status as a plugin, Rig's @rig/core is the spine: a pure TypeScript engine that ingests hook events, maps them to a status, and decides which ones need you.
One prompt, one signal
Agents shout twice. Rig hears once.
A single permission prompt arrives as a burst: the request itself, then a notification about six seconds later. The engine coalesces the pair so the rail — and anything that speaks or flashes — fires once.
- Keyed on the authoritative signal.
AskUserQuestionis a question; every other tool waiting on you is a permission. - Tested on real streams. Every status decision is unit-tested against replayed event bursts.
- No UI inside. The engine never imports Solid, Tauri or the DOM, so any shell can drive it.
| Event | Status |
|---|---|
UserPromptSubmit, PreToolUse, PostToolUse | working |
PermissionRequest for AskUserQuestion | question |
PermissionRequest for any other tool | permission |
Notification · permission_prompt | permission |
Stop | done |
PostToolUseFailure | error |
Roadmap
The foundation is built. The terminal is next.
Rig doesn't run a shell or connect to your real agent sessions yet. Here's where it stands.
- FoundationThe status engine, the vertical rail, themes, and a Tauri 2 shell with an auto-updater.Done
- Real terminalA Rust PTY, xterm.js panes and per-process CPU and RAM.Next
- Agent integrationHook events from real sessions, matched to their tabs, with attention on the rail, taskbar and voice.Planned
- PolishA theme editor, tab grouping and reordering, a bundle budget.Planned
Run it
Clone it and watch the rail.
The renderer runs in a browser with simulated sessions; the desktop shell builds with Tauri on Windows, macOS and Linux.
make install # pnpm install across the workspace make web # renderer only, at http://localhost:1620 make dev # the Tauri desktop shell with hot reload
Needs Node and pnpm; the desktop shell also needs a Rust toolchain and Tauri's system packages. make help lists every target.