Skip to content

The chat screen

The parts of the terminal chat screen, its footer chips, side panel, modals and mouse support.

zidane
The agent searched the code, read a file and answered.

Layout#

PartShows
HeaderThe session title, then the message and turn counts, the environment and the working directory when they fit. The ▢ chip toggles the side panel.
TranscriptYour messages, the agent's text, its tool calls and their results
Status lineExtension status text, when an extension sets some
Bottom slotThe prompt, or whatever waits for you: a file-edit approval, a tool approval, a plan or a question
Prompt hintsThe keys that work right now, on the prompt's top border, plus @ files, / skills and # chat
FooterChips for the agent, the model, skills, todos, keys and live run state
Context meterTokens 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.

A chip with a key opens what it names, by key or by click.

ChipMeansKey
shift+tab BuildThe agent profile, shown when you have more than oneShiftTab cycles
ctrl+m/l Opus 4.6 mediumThe model, its reasoning effort and the options you turned onCtrlM model, CtrlL options
✦ 3 skillsSkills pinned to this session
2/5 todosProgress on the agent's todo list (Settings › UI › Todo indicator)CtrlT
ctrl+shift+x sessionSession detailsCtrlShiftX
ctrl+o settingsSettingsCtrlO
↑ v8.1.0A newer release exists. ↻ means it is installed: restart.
UsageYour subscription's rate-limit use (Settings › UI › Usage indicator)CtrlP

Detail after the model name:

You seeMeans
+2The 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 colorA fallback model serves this run, and the chip names it

While a run is busy#

ChipMeans
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 abortStop the run
esc sessionsGo to the sessions list. The run keeps going.
The modelThe model that serves this run, with no key. The picker opens only when the run ends.
1m 15s ↓1.2k 41 tok/sRun time, output tokens so far and the stream rate. ↓~ marks an estimate.
CostThe session's cost so far, marked as an estimate while a turn streams
retrying 2/5The provider stream stalled and zidane retries. (child-3) names a sub-agent's stream.
Compacting... ~12k 8szidane is writing a compaction summary
cache break in system: +12.3k tokThe last turn missed the prompt cache. The chip names the part of the request that changed (warning color, 8 seconds).
cache expiredThe cache timed out between your messages (dim)

Both cache chips show the tokens billed again.

StateFooter
Settings › UI › UI mode set to MinimalOnly the agent, the model and settings. CtrlY still lists every key.
Daemon or remote hostA dot before the context meter: connected, connecting or disconnected (the daemon)
Remote sessionAdds host: <name>
Agent idle, background tasks still runctrl+k cancel task, or cancel task (N) for more than one
Agent idleExtensions 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):

Text
[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 wantDo
Send another messageType it: it waits in the queue above the prompt
Stop one tool callCtrlK, then pick it
Stop the runCtrlEsc. It also denies pending approvals.
Leave the run goingEsc goes to the sessions list. The run continues.
zidane
A run in progress, with a second message queued above the prompt.

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.

KeyDoes
CtrlShiftAShow 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#

KeyModal
CtrlTTodos: the agent's live todowrite list
CtrlKCancel: running tool calls and background tasks, with their age. Enter cancels one, A cancels all. The run keeps going.
CtrlShiftGContext: 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.
CtrlPUsage: rate-limit windows per subscription (models)
CtrlShiftPCommand palette: every action, command, panel, session and setting
CtrlYKeybindings: every shortcut (keyboard map)
CtrlShiftXSession details (sessions)
CtrlHFolder picker: moves the session to the folder you pick
zidane
The command palette lists actions with their keys.

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.

Settings › UI › Clickable UI is on by default. Turn it off to give mouse selection back to your terminal.

You clickIt does
A key hint, such as ctrl+o settingsThe same as pressing that key. On ↑↓ navigate it moves down.
A sessions-list badge or a side panel row, with the right buttonOpens that item's actions
A link, such as a sign-in URLOpens it in your browser (the terminal must support OSC 8 links)