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 asStalled · 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 pressEnter 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,
PLANin 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 showsnew o4 installed · restart to updateuntil you restart.
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
Navigation Mode is for moving around the transcript. Letter keys run commands instead of typing text. PressEsc 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 withCtrl+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. PressDown 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.
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.