Skip to main content
This page lists the keys o4 responds to, grouped by where you are. The keys an open pane or dialog accepts take priority over the rest, and most panes list them in their footer. To see a short version inside o4, press ? on an empty prompt or run /help. Keys marked as remappable can be moved to other keys. See Change key bindings.

Everywhere

These keys work in the main view, whether you’re typing or navigating.

Prompt Mode

Prompt Mode is the default. Keys type into the prompt unless listed here.

Send and edit

Shift+Enter in your terminal

o4 sees Shift+Enter only when the terminal reports it as a key of its own. Terminals that support the kitty keyboard protocol do; others send the same byte as Enter, so Shift+Enter sends the message instead. Ctrl+J inserts a line break in every terminal.
Works without changes. Inside tmux, kitty needs this mapping as well as the tmux settings below:
~/.config/kitty/kitty.conf
Inside tmux, o4 uses standard key reporting, so tmux decides what o4 receives. tmux 3.5 or later passes Shift+Enter through with these two settings, then restart tmux:
~/.config/tmux/tmux.conf
The csi-u line is required: with tmux’s default xterm format, o4 can’t read the key and drops it. The kitty and WezTerm bindings send the sequence to every program, not only o4, so other programs may show it as stray text.

History and completion

While a completion list is open, Up and Down move through it and Esc closes the list. Enter runs the highlighted slash command, or inserts the highlighted file or model, whether or not a turn is running: /cos with /cost highlighted runs /cost. Only when nothing is highlighted, because what you typed matches no command, does Enter send the prompt exactly as you typed it; while a turn is running or messages are queued, the list’s footer then reads Enter Submit draft and the prompt is queued as a message.

While the model is working

When you edit a queued message with Alt+Q, Enter saves your change and Esc cancels the edit.

Images, chips, and suggestions

These keys work on an empty prompt when the item they act on is shown.

Open views

Ctrl+M works only in terminals that report it as a separate key from Enter. o4 turns that reporting off inside tmux, so there Ctrl+M acts as Enter. /model opens the same model selector in any terminal, but while the model is working it waits until the turn finishes.

Remappable actions

These keys work in Prompt Mode and Navigation Mode. Alt+A goes through ask, accept-edits, plan, review, auto, and bypass. Before it switches to bypass, o4 asks you to confirm; if you decline, the mode goes back to ask. Alt+S also asks before it switches to a less strict sandbox tier.

Session tabs

Press Esc in an idle prompt to enter Navigation Mode. Letter keys run commands instead of typing.

Approval panel

The approval panel replaces the prompt when a tool call needs your answer. Pattern choices are offered for calls such as file edits, not for shell commands. Without them, the panel lists Yes, proceed, No, cancel, and No, and tell o4 what to do instead, and 2 and 3 choose the second and third of those. While you type a note, Enter sends it with your answer and Esc goes back to the choices.

Package install scripts

When a package install would run install-time scripts, the panel offers different choices:

Network approval

Plugin permissions

When a plugin asks for a capability, such as running a command:

Questions from the model

When the model asks you a question with a list of answers, the list appears in the transcript and takes the keyboard until you answer. While you type your own answer, Enter sends it and Esc goes back to the list.

Confirmation dialogs

Yes-or-no dialogs, such as the one for switching to bypass mode:

Transcript Reader

While you type a search, Enter runs it, Backspace deletes a character, and Esc cancels it.

Other views

Opened with Ctrl+F. Opened with Ctrl+R.

Session Diff

Opened with Ctrl+D or Alt+D.

Tool output

Opened with Enter or t on a tool block.

Activity log

Opened with l in Navigation Mode.

Agent and task selector

Opened with Down in the prompt (when you aren’t recalling earlier prompts) or a in Navigation Mode, while sub-agents or background tasks are running. Any other key closes the selector and works as usual.

Agent view

Shown when you open a sub-agent’s conversation.

Agents dashboard

The agents dashboard, titled Agent command center, opens with /agents or with e in the agent and task selector. See Todos and background tasks for what each row and status means.

Panes

The todo list, the task board, Workspace Radar, and the panes that slash commands open below the prompt share these keys. They work while the prompt is empty; once you type, keys go to the prompt. Some panes add their own keys: The Help pane (? or /help) scrolls with j / k or Up / Down, and 8 lines at a time with PageUp / PageDown. Esc or q closes it. The /context and /stats pane switches between its Context, Session, and Optimize tabs with Tab / Shift+Tab or Right / Left, and r refreshes it. See Context and cost.

Settings

In /config, Up / Down or j / k move between rows, Enter changes the selected row, and Tab / Shift+Tab or Right / Left switch tabs. Each change is saved as soon as you make it. Esc or q closes the panel, and Backspace goes back from a row’s details. On the Providers tab, a adds a provider.

Browsers

The plugin browser (/plugins), MCP browser (/mcp), agent definitions browser (/sub-agents), and skills browser (/skills) share these keys: The Errors tab and, in the plugin browser, the Marketplaces tab have no filter. On the MCP browser’s Registry tab, typing edits the registry search query instead; see MCP servers.

Session picker

/resume opens the session picker. Type to filter, Enter resumes the selected session, Tab switches between this checkout and every directory, and Esc closes it. A, R, and P open the actions menu, rename, and pin, and are uppercase because lowercase letters go into the filter. See Sessions for all its keys.

Side chat

/hey opens the side chat. Type a question and press Enter to send it, and Up / Down scroll the answers. Once there’s an answer, y copies the last question and answer, and f sends them to the main conversation. Esc closes the side chat. See Writing prompts.

Setup wizards and Project Scout

  • Setup wizard (/onboard): Up / Down or k / j move, Enter goes to the next screen, Tab skips a screen where the footer offers it, and Esc goes back one screen, or closes the wizard from the first screen. See Quickstart.
  • Add custom provider (a on the Providers tab of /config): Enter or Tab goes to the next field, Shift+Tab goes back, and Esc cancels. See OpenAI-compatible endpoints.
  • Project Scout (/scout): Space selects or clears a suggestion, a selects all, n clears all, Enter applies, and Esc cancels. See Code intelligence.

Model and command pickers

The model selector (Ctrl+M), provider selector (Ctrl+P), and command palette (/ in Navigation Mode) work the same way.

Time Machine

The Time Machine sidebar lists the turns of the session. Open it with /rewind or a key you bind to toggle_time_machine. If you resize the window to fewer than 60 columns while it’s open, it closes. See Undo and rewind.