# The terminal UI

Documented against OpenRig 0.5.14. Help text uses "node" where these pages say **seat**, for a seat's position in the running rig.

## What it is for

`rig tui` opens mission control: the one screen where you see the whole fleet and the work it is doing without being the router between seats. The left side is an explorer over what exists: hosts, rigs, pods, seats, specs, projects, missions and slices. The right side shows the selected thing on tabs: a table, recent events, an overview, a graph, health, topology, YAML. A command bar at the top takes the same commands the table below lists, and `?` opens a palette that fuzzy-finds every one of them. It is the surface built for a person; the CLI and the terminals are the surface built for agents. Both read the same records.

The tour on the homepage is a staged version of this screen with fictional data. The real one is what you get after `rig up`.

## The three commands you will use first

**Open it.** Standalone by default; `--shared` joins the kernel's existing shared terminal and you detach with Ctrl-b then d.

```
rig tui
rig tui --shared
```

**Find your way.** Inside the TUI, type a rig, pod or seat name to drill into it, `back` to return, and `tab` to switch the content pane between table, recent, overview, graph, health, topology, configuration, yaml and pulse.

```
rig my-rig
pod dev
agent impl
tab graph
back
```

**See the work.** `projects` chooses a project from the workspace catalog, `mission <name>` opens its missions and workflows, `source` reads the selected project, mission or slice file, and `attention` (also `needs` or `feed`) shows human requests separately from outcome and health updates.

```
projects
mission search-experience
source
attention
```

## Every TUI command

This table is the TUI's own command registry, listed by `rig tui commands` (add `--json` for agents).

[//]: # (table:start)
| Command | Aliases | Arguments | What it does |
|---|---|---|---|
| `terminals` |  |  | browse Saved and Derived terminal views; preview before explicit Open |
| `terminal-preview` |  | `<view>` | passively preview a saved:id or rig:name terminal view |
| `attention` | needs, feed |  | inspect human requests and outcome/health updates |
| `read` |  | `<root>/<path>[#heading]` | read a current file within an explicitly configured root |
| `system` |  |  | instance Health, Configuration and Connections |
| `config` |  | `[category]` | browse instance settings; Slack is one category |
| `setting` |  | `<key>` | open a setting with its full value, source and scope |
| `refresh` |  |  | read the current view again; stored values do not prove runtime adoption |
| `timezone` |  |  | show local time setting and persistent rig config instructions |
| `recent` |  | `<transition-id>` | inspect an original event from the served Recent window |
| `connections` |  |  | System Connections: gateway, recipients and routes |
| `back` |  |  | return to the previous view, selection and scroll |
| `projects` |  |  | choose a project from the workspace catalog |
| `project` |  | `<id>` | select an exact catalog project |
| `source` |  |  | read the selected project, mission or slice source |
| `mission` |  | `<name>` | open a mission's work and workflows |
| `workflow` |  | `<instance-id>` | open a workflow in the selected mission |
| `packet` |  | `<qitem-id>` | open current workflow work in the selected mission |
| `:` |  | `<section>` | jump to a section |
| `/` |  | `<text>` | filter rows by text |
| `tab` |  | `<table / recent / overview / graph / health / topology / configuration / yaml / pulse>` | switch the content-pane view tab |
| `graph` | g |  | open the topology graph view |
| `style` |  | `<name>` | set the graph render style (validated by dispatch against the style registry) |
| `scroll` |  | `<up / down>` | scroll the content pane |
| `select-text` | copy |  | toggle terminal-native drag selection and copy |
| `top` |  |  | scroll the content pane to the top |
| `bottom` |  |  | scroll the content pane to the bottom |
| `find` |  | `<text>` | filter rows by text (verb form of the / prefix) |
| `spec-of` |  | `<agent>` | cross-navigate to the spec of the named agent |
| `running` |  | `<spec>` | cross-navigate to agents running the named spec |
| `help` | ? |  | open the command palette (fuzzy-find every command) |
| `reqs` |  |  | toggle mini-requirements collapse (scopes view) |
| `narrative` |  |  | toggle the PROGRESS.md narrative panel (scopes view) |
| `host` |  | `<name>` | drill into the named host |
| `rig` |  | `<name>` | drill into the named rig |
| `pod` |  | `<name>` | drill into the named pod |
| `agent` |  | `<name>` | drill into the named agent |
| `spec` |  | `<name>` | drill into the named spec |

[//]: # (table:end)

## What it does not do

- It does not start agents, launch terminals or resume seats by itself. `terminals` previews a saved or derived view; opening tiles is an explicit action that needs a terminal provider (`rig terminal open`).
- It does not replace the CLI for agents. Every command an agent needs is a `rig` verb with `--json`.
- The older web UI (`rig ui open`) still exists as a verb but is unmaintained and replaced by the TUI. Do not diagnose product behaviour from it.
- Reading a request in `attention` does not approve or deliver it. Resolved settings shown under `system` do not prove runtime adoption.

## Where it goes next

- [Messaging](/docs/messaging): how seats reach each other and how you reach one seat's screen.
- [Coordination](/docs/coordination): the queue rows the `attention` and `pickup` views are built from.
- [Configuration](/docs/configuration): the keys the `system` view browses, with their defaults and sources.

