Skip to main content
o4 runs as a full-screen app in your terminal. This page explains what each part of the screen shows, how the two input modes differ, and how panes, overlays, and approval prompts take over the keyboard. For every key in one place, see Keyboard shortcuts.

Screen layout

From top to bottom, the screen has these parts: The terminal must be at least 40 columns wide and 10 rows tall. In a smaller window, o4 shows Terminal too small (min 40x10) until you make it bigger.

Transcript

The transcript shows the conversation. Each tool call gets its own block with the tool name and a short preview of its input and output. Long output is collapsed. Move to the block in Navigation Mode to expand it or open the full output. o4 turns on mouse reporting, so the mouse wheel scrolls the transcript rather than the terminal’s scrollback. Drag across text to select it; o4 copies the selection to the clipboard when you release the button.

Status row

While a turn runs, the status row shows a spinner, what the model is doing (for example, the command it’s running), and how long the turn has taken. It also shows how many messages are queued, and the context-window use. If the model and its sub-agents have been silent for three minutes, the row turns into a warning such as Stalled · no activity for 184s · Esc to interrupt. Slow models can think quietly for a while, so this doesn’t always mean something is wrong. When the model is idle, the row summarizes ongoing work, for example Plan 2/5, 3 todos Alt+L, and 1/2 work ↓ select. While an approval is waiting, it shows Awaiting approval · main agent, or the name of the sub-agent that asked.

Prompt and metadata rows

Type in the prompt and press Enter to send. The prompt grows as you type more lines. The two rows below the prompt show session information:
  • First row: context use such as ctx 42%, the session tabs when more than one is open, and the current model on the right. Context use changes to your theme’s warning color at 75%, and to its error color at 90%.
  • Second row: the security state when it’s elevated, PLAN in Plan mode, the number of queued messages, the session cost, and the workspace folder and git branch on the right. After you install a newer o4, it also shows new o4 installed · restart to update until you restart.
The security state appears only when it differs from the default. It reads sandbox:<tier> approve:<mode>, for example sandbox:guarded approve:Auto. See Permissions and Sandbox.

Input modes

The keyboard is always in one of two modes. The same key can do different things in each, so it helps to know which one you’re in.

Prompt Mode

Prompt Mode is where o4 starts. Keys you type go into the prompt. While a completion list is open, Up and Down move through it, Tab inserts the highlighted item, and Esc closes the list. Esc does other jobs before it switches modes: it first closes an open completion list, action chips, suggestions, an image selection, or an error notice waiting to be dismissed. Press it again to switch. After a turn that changed files or hit an error, o4 may show action chips below the reply, such as Run Tests, View Diff, Fix This, and Undo. On an empty prompt, press Tab to move through the chips and Enter to run the selected one. Typing or Esc hides them. You can turn chips off in Themes and display. The Undo chip doesn’t work like /undo; see The Undo chip before you use it. Navigation Mode is for moving around the transcript. Letter keys run commands instead of typing text. Press Esc in an idle prompt to enter it, and press i to go back to the prompt. In Navigation Mode, a cursor marks one transcript block at a time: The complete list is in Keyboard shortcuts.

Panes and overlays

Some features open in a pane below the prompt. Others open as an overlay that takes over the screen. Either way, the pane or overlay owns the keyboard until you close it. Its footer lists the keys it accepts. Most panes share the same keys: Up and Down (or j and k) to move, Enter to act on the selected row, and Esc or q to close. A pane below the prompt takes these keys only while the prompt is empty. In a pane with tabs, such as /config, Tab and Shift+Tab switch tabs. The browsers that /plugins, /mcp, /sub-agents, and /skills open filter the list as you type.

Transcript Reader

The Transcript Reader shows the whole conversation in place of the live view, with complete tool output. Open it with Ctrl+T. Scroll with j and k, jump between your prompts with [ and ], search with /, and switch between full and compact detail with o. Press Ctrl+T or q to close it. To change an earlier prompt, jump to it with [ or ] and press Enter. o4 forks the session just before that prompt, opens the fork in a new tab, and puts the prompt in the input box so you can edit it and send it again. The original session stays as it was. Esc does the same when the reader is on one of your prompts, so use q to close the reader without forking. See Undo and rewind.

Agent view

When the model starts sub-agents, you can follow each one. Press Down in the prompt (when you aren’t recalling earlier prompts), or a in Navigation Mode, to open the selector. Pick an agent and press Enter to open its conversation. Anything you type there steers that agent. Press Esc to return to the main conversation. See Subagents.

Approval prompts

When the model wants to run a tool call that needs your approval, an approval panel replaces the prompt. The panel shows:
  • a title: Would you like to run the following command? for shell commands, or Would you like to run the following tool? for other tools;
  • the security state, such as Security: sandbox guarded · approval Ask;
  • who is asking, such as Requested by the main agent — it is paused until you decide;
  • the reason the model gave for the call;
  • the command, or the tool and its input. For a file change, the lines it adds and removes;
  • your choices, numbered.
For a file edit, the choices look like this:
Move with Up and Down and press Enter, or press the key shown next to a choice. The two pattern choices appear for calls such as file edits, where o4 can suggest a pattern. Shell commands always get the shorter list: Yes, proceed, No, cancel (esc), and No, and tell o4 what to do instead. Rules are saved to the project’s .o4/config.toml. When the pattern choices are offered, Tab approves the call and lets you add a note for the model. While an approval is waiting, the status row shows who’s waiting, and the approval takes the screen back from the Transcript Reader and from a pane below the prompt. If a dialog such as /config is open, the approval appears when you close it. You can also press Alt+Y to approve or Alt+Z to deny from anywhere in the main view. A request to reach a new network host shows a network approval panel instead, with Allow once (y), Always allow this domain (a), and Deny (n or Esc). See Permissions to change when o4 asks.

Session tabs

You can run several sessions side by side in tabs. Each tab is its own session with its own model and history. When more than one tab is open, the tabs appear in the first metadata row as 1 2 3. A * after a number means that tab has new output you haven’t seen.