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 size

The 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.

permissionThe agent stopped to ask you to proceed — a tool grant or a plan approval.
questionA questionnaire you have to answer before it can go on.
workingA prompt was submitted or a tool is running.
doneThe turn finished. Your move, whenever you like.
errorA tool call failed.
idleNothing happening — or an idle nudge, kept apart from real requests.

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. AskUserQuestion is 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.
How hook events map to statuses
EventStatus
UserPromptSubmit, PreToolUse, PostToolUseworking
PermissionRequest for AskUserQuestionquestion
PermissionRequest for any other toolpermission
Notification · permission_promptpermission
Stopdone
PostToolUseFailureerror

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.

  1. FoundationThe status engine, the vertical rail, themes, and a Tauri 2 shell with an auto-updater.Done
  2. Real terminalA Rust PTY, xterm.js panes and per-process CPU and RAM.Next
  3. Agent integrationHook events from real sessions, matched to their tabs, with attention on the rail, taskbar and voice.Planned
  4. 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.

From a checkout
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.