> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open4rena.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# The interface

> How the o4 terminal interface is laid out, and how its input modes work.

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](/reference/keyboard-shortcuts).

## Screen layout

From top to bottom, the screen has these parts:

| Part | What it shows |
| - | - |
| Transcript | Your messages, the model's replies as they stream, and a block for each tool call. |
| Status row | What the model is doing right now, or a summary of plans, todos, and background work. Hidden when there's nothing to show. |
| Approval panel | A tool call waiting for your answer. It replaces the prompt while it's open. |
| Prompt | The box where you type messages and slash commands. |
| Metadata rows | The model, context use, open tabs, and session state. |
| Pane area | Panes you open, such as `/config`, `/help`, or the todo list. |

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](#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](/safety/permissions) and [Sandbox](/safety/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.

| Key | Action |
| - | - |
| `Enter` | Send the message. While the model is busy, queue it as a follow-up. |
| `Shift+Enter` | Insert a line break. |
| `/` | Start a slash command. A completion list opens. |
| `@` | Mention a file. A completion list opens. |
| `Up` / `Down` | Recall earlier prompts when the prompt is empty. |
| `Ctrl+R` | Search your prompt history. |
| `Esc` | Stop the running turn. When idle, switch to Navigation Mode. |

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](/configuration/appearance#display-options).
The **Undo** chip doesn't work like `/undo`; see
[The Undo chip](/guides/checkpoints#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. 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:

| Key | Action |
| - | - |
| `j` / `k` or `Down` / `Up` | Move the cursor to the next or previous block. |
| `Space` | Expand or collapse the block. |
| `Enter` | Open the block: a tool's full output, or a sub-agent's conversation. |
| `t` | Open the full output of the tool under the cursor. |
| `c` | Copy the block. |
| `o` | Open the Transcript Reader at the cursor. |
| `a` | Open the agent and task selector. |
| `/` | Open the command palette. |
| `?` | Open help. |
| `q` | Quit o4. |

The complete list is in
[Keyboard shortcuts](/reference/keyboard-shortcuts#navigation-mode).

## 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.

| Surface | How to open it | What it's for |
| - | - | - |
| Help | `?` on an empty prompt, or `/help` | Keyboard reference and slash commands. |
| Settings | `/config` | All settings, grouped in tabs. |
| Model selector | `Ctrl+M` or `/model` | Switch the model for this session. Type to filter. |
| Command palette | `/` in Navigation Mode | Search and run slash commands. |
| Transcript Reader | `Ctrl+T`, or `o` in Navigation Mode | Read the full transcript with search. |
| Transcript search | `Ctrl+F` | Find text in the transcript. |
| Session Diff | `Ctrl+D` | Review every file change in the session. |
| Todo List | `Alt+L` or `/todo` | View and edit the session's todos. See [Todos and background tasks](/guides/tasks-and-todos). |
| Task Board | `Alt+B` | Inspect and steer background tasks and sub-agents. |
| Agents dashboard (**Agent command center**) | `/agents`, or `e` in the agent and task selector | Every agent, background task, and campaign in the session. See [Todos and background tasks](/guides/tasks-and-todos#see-and-control-background-work). |
| Workspace Radar | `Alt+T` or `/radar` | Open items in the project that need attention. See [Code intelligence](/guides/code-intelligence#workspace-radar). |
| Time Machine | `/rewind` | The session's turns, to rewind or fork from one. See [Undo and rewind](/guides/checkpoints). |
| Session picker | `/resume` | Earlier sessions to switch to. See [Sessions](/guides/sessions). |
| Context and stats | `/context` or `/stats` | What fills the context window, and usage statistics. See [Context and cost](/guides/context-and-cost). |
| Activity log | `l` in Navigation Mode | Recent session events. |

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](/guides/checkpoints).

### 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](/guides/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:

```text theme={null}
› 1. Yes, proceed (y)
  2. Always allow pattern: Edit(/Users/you/code/my-project/src/**) (p)
  3. Always deny pattern: Edit(/Users/you/code/my-project/src/**) (d)
  4. No, and tell o4 what to do instead (t)
```

| Key | Choice |
| - | - |
| `y` | **Yes, proceed.** Run the call. |
| `p` | **Always allow pattern.** Run the call, and save a rule that allows matching calls. |
| `d` | **Always deny pattern.** Refuse the call, and save a rule that refuses matching calls. |
| `t` | **No, and tell o4 what to do instead.** Refuse the call and type a note for the model. |
| `Esc` | Refuse the call. |

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](/safety/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.

| Key | Action |
| - | - |
| `Alt+N` | Open a new tab. |
| `Alt+W` | Close the current tab. |
| `Alt+J` / `Alt+K` | Switch to the next or previous tab. |
| `Ctrl+X`, then `1`–`9` | Switch to the tab at that position. |

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.
