The chat screen
The parts of the terminal chat screen, its footer chips, side panel, modals and mouse support.
Layout#
| Part | Shows |
|---|---|
| Header | The session title, then the message and turn counts, the environment and the working directory when they fit. The ▢ chip toggles the side panel. |
| Transcript | Your messages, the agent's text, its tool calls and their results |
| Status line | Extension status text, when an extension sets some |
| Bottom slot | The prompt, or whatever waits for you: a file-edit approval, a tool approval, a plan or a question |
| Prompt hints | The keys that work right now, on the prompt's top border, plus @ files, / skills and # chat |
| Footer | Chips for the agent, the model, skills, todos, keys and live run state |
| Context meter | Tokens in the context window, at the right of the footer |
The bottom slot shows one thing at a time, so an approval hides the prompt: see approvals in the terminal.
The footer#
A chip with a key opens what it names, by key or by click.
| Chip | Means | Key |
|---|---|---|
shift+tab Build | The agent profile, shown when you have more than one | ShiftTab cycles |
ctrl+m/l Opus 4.6 medium | The model, its reasoning effort and the options you turned on | CtrlM model, CtrlL options |
✦ 3 skills | Skills pinned to this session | |
2/5 todos | Progress on the agent's todo list (Settings › UI › Todo indicator) | CtrlT |
ctrl+shift+x session | Session details | CtrlShiftX |
ctrl+o settings | Settings | CtrlO |
↑ v8.1.0 | A newer release exists. ↻ means it is installed: restart. | |
| Usage | Your subscription's rate-limit use (Settings › UI › Usage indicator) | CtrlP |
Detail after the model name:
| You see | Means |
|---|---|
+2 | The fallback chain has two more models |
(Work) | The model runs on the account named Work |
(signed out) | The pinned account is gone. The next run says so. |
| Warning color | A fallback model serves this run, and the chip names it |
While a run is busy#
| Chip | Means |
|---|---|
ctrl+k cancel (2) | Two tool calls or background tasks run. Press the key to pick one to cancel. With one, the chip reads cancel. |
ctrl+esc abort | Stop the run |
esc sessions | Go to the sessions list. The run keeps going. |
| The model | The model that serves this run, with no key. The picker opens only when the run ends. |
1m 15s ↓1.2k 41 tok/s | Run time, output tokens so far and the stream rate. ↓~ marks an estimate. |
| Cost | The session's cost so far, marked as an estimate while a turn streams |
retrying 2/5 | The provider stream stalled and zidane retries. (child-3) names a sub-agent's stream. |
Compacting... ~12k 8s | zidane is writing a compaction summary |
cache break in system: +12.3k tok | The last turn missed the prompt cache. The chip names the part of the request that changed (warning color, 8 seconds). |
cache expired | The cache timed out between your messages (dim) |
Both cache chips show the tokens billed again.
Other footer states#
| State | Footer |
|---|---|
| Settings › UI › UI mode set to Minimal | Only the agent, the model and settings. CtrlY still lists every key. |
| Daemon or remote host | A dot before the context meter: connected, connecting or disconnected (the daemon) |
| Remote session | Adds host: <name> |
| Agent idle, background tasks still run | ctrl+k cancel task, or cancel task (N) for more than one |
| Agent idle | Extensions can add their own chips |
The transcript#
Tool calls read as one line each, such as ↳ Read src/limits.ts. Edits show as a diff. A dim receipt closes each run with the model, wall time, turns, cost, and tokens in and out (unknown cells are left out):
[claude-sonnet-4] [2m14s] [↻3] [$0.04] [↑4.2k ↓812]In compact density, the work of each exchange folds into one row. While the agent works, the row names its latest action, or Thinking. Once the work is done, it says what the work did, such as Read a file, ran a command +2. Workers that no spawn call shows, because a script started them, add , 1 worker. An exchange with no tool calls reads Delegated to 2 workers, Thought or Worked. Opened, the row has one line per step. A thought reads Thinking while it streams, then Thought.
When nothing has moved on screen for a moment, the live row reads Waiting for the model instead, or Retrying 2/3 during a retry. Once a wait or a retry passes five seconds, a badge after the words shows how long it has lasted. A model stream that goes silent for 5 minutes is retried, then moved to the next model of the chain.
A run that fails or that you stop ends on one quiet line: ✗ Stopped: and the reason, or ⏹ Stopped by you. When that line is the last one and the agent is idle, click ↻ continue to let the agent go on, or ↻ retry to send your message again when the run had done nothing yet.
A session opens on its latest rows, about five screens. Scroll up and older rows load from the session's host, a page at a time. The rows on screen stay still while a page lands.
The Transcript group in Settings sets density, thinking blocks, tool output, diffs, receipts and more (display settings for both apps). Two rows exist only here: Edit diff density (full or compact) and Compaction summaries.
While the agent works#
| You want | Do |
|---|---|
| Send another message | Type it: it waits in the queue above the prompt |
| Stop one tool call | CtrlK, then pick it |
| Stop the run | CtrlEsc. It also denies pending approvals. |
| Leave the run going | Esc goes to the sessions list. The run continues. |
The side panel#
A column docked right of the transcript, with tabs: Artifacts (pull requests, branches, commits and files the session produced) and one tab per extension panel.
| Key | Does |
|---|---|
| CtrlShiftA | Show or hide the panel (or click ▢ in the header) |
| CtrlShift] | Next tab |
| CtrlShift[ | Previous tab |
The panel never takes keyboard focus. Click a row or an action, or right-click a row for its actions. The footer link opens the artifacts modal, where you copy or remove an artifact.
It hides on narrow terminals and returns when the window widens. Its open state is per window and resets on restart. Settings › UI › Artifacts removes the Artifacts tab.
Modals#
| Key | Modal |
|---|---|
| CtrlT | Todos: the agent's live todowrite list |
| CtrlK | Cancel: running tool calls and background tasks, with their age. Enter cancels one, A cancels all. The run keeps going. |
| CtrlShiftG | Context: a stacked bar of tokens per category (system prompt, skills, MCP tools, rule files) and the free space. ~ marks an estimated category. The modal says so when the provider reports no exact counts. |
| CtrlP | Usage: rate-limit windows per subscription (models) |
| CtrlShiftP | Command palette: every action, command, panel, session and setting |
| CtrlY | Keybindings: every shortcut (keyboard map) |
| CtrlShiftX | Session details (sessions) |
| CtrlH | Folder picker: moves the session to the folder you pick |
Conversation preset, in the command palette, opens Focused, Balanced and Detailed, with the one in effect checked. Pick one to set every transcript setting of that preset. The open session draws again at once, so you see the result. The setup wizard page describes each preset.
Extension status and banners#
The status line under the transcript joins each extension's short status, with a spinner while it works. Banners sit above the prompt, next to the todo indicator. Both take no space when empty. To write one: extensions.
Mouse and links#
Settings › UI › Clickable UI is on by default. Turn it off to give mouse selection back to your terminal.
| You click | It does |
|---|---|
A key hint, such as ctrl+o settings | The same as pressing that key. On ↑↓ navigate it moves down. |
| A sessions-list badge or a side panel row, with the right button | Opens that item's actions |
| A link, such as a sign-in URL | Opens it in your browser (the terminal must support OSC 8 links) |