Skip to main content
Watch: I Built an AI App Without Leaving Databricks

OpenCode CLI reference - Keyboard shortcuts

OpenCode keybinds and keyboard shortcuts

OpenCode documents 118 keyboard shortcuts, including leader, app_exit and command_list. These work inside the OpenCode terminal UI. Each row gives the docs' description, accepted values and an example where one is documented.

Last verified 4 official pagesFull OpenCode reference

OpenCode keyboard shortcuts
ShortcutDescriptionExample
leader

Leader key used by many keybinds (press it, then the shortcut).

Default: ctrl+x

Docs: leader
-no example
app_exit

Exit the application.

Default: ctrl+c,ctrl+d,<leader>q

Docs: app_exit
-no example
command_list

List available commands.

Default: ctrl+p

Docs: command_list
-no example
editor_open

Open external editor.

Default: <leader>e

Docs: editor_open
-no example
theme_list

List available themes.

Default: <leader>t

Docs: theme_list
-no example
sidebar_toggle

Toggle sidebar.

Default: <leader>b

Docs: sidebar_toggle
-no example
status_view

View status.

Default: <leader>s

Docs: status_view
-no example
session_export

Export session to editor.

Default: <leader>x

Docs: session_export
-no example
session_new

Create a new session.

Default: <leader>n

Docs: session_new
-no example
session_list

List all sessions.

Default: <leader>l

Docs: session_list
-no example
session_timeline

Show session timeline.

Default: <leader>g

Docs: session_timeline
-no example
session_rename

Rename session.

Default: ctrl+r

Docs: session_rename
-no example
session_delete

Delete session.

Default: ctrl+d

Docs: session_delete
-no example
session_interrupt

Interrupt current session.

Default: escape

Docs: session_interrupt
-no example
session_compact

Compact the session.

Default: <leader>c

Docs: session_compact
-no example
session_child_first

Enter the first child session from the parent when subagents create child sessions.

Default: <leader>down

Docs: session_child_first
-no example
session_child_cycle

Cycle to the next child session.

Default: right

Docs: session_child_cycle
-no example
session_child_cycle_reverse

Cycle to the previous child session.

Default: left

Docs: session_child_cycle_reverse
-no example
session_parent

Return to the parent session.

Default: up

Docs: session_parent
-no example
stash_delete

Delete stash entry.

Default: ctrl+d

Docs: stash_delete
-no example
model_provider_list

Open provider list from model dialog.

Default: ctrl+a

Docs: model_provider_list
-no example
model_favorite_toggle

Toggle model favorite status.

Default: ctrl+f

Docs: model_favorite_toggle
-no example
model_list

List available models.

Default: <leader>m

Docs: model_list
-no example
model_cycle_recent

Next recently used model.

Default: f2

Docs: model_cycle_recent
-no example
model_cycle_recent_reverse

Previous recently used model.

Default: shift+f2

Docs: model_cycle_recent_reverse
-no example
agent_list

List agents.

Default: <leader>a

Docs: agent_list
-no example
agent_cycle

Next agent.

Default: tab

Docs: agent_cycle
-no example
agent_cycle_reverse

Previous agent.

Default: shift+tab

Docs: agent_cycle_reverse
-no example
variant_cycle

Cycle model variants.

Default: ctrl+t

Docs: variant_cycle
-no example
messages_page_up

Scroll messages up by one page.

Default: pageup,ctrl+alt+b

Docs: messages_page_up
-no example
messages_page_down

Scroll messages down by one page.

Default: pagedown,ctrl+alt+f

Docs: messages_page_down
-no example
messages_line_up

Scroll messages up by one line.

Default: ctrl+alt+y

Docs: messages_line_up
-no example
messages_line_down

Scroll messages down by one line.

Default: ctrl+alt+e

Docs: messages_line_down
-no example
messages_half_page_up

Scroll messages up by half page.

Default: ctrl+alt+u

Docs: messages_half_page_up
-no example
messages_half_page_down

Scroll messages down by half page.

Default: ctrl+alt+d

Docs: messages_half_page_down
-no example
messages_first

Navigate to first message.

Default: ctrl+g,home

Docs: messages_first
-no example
messages_last

Navigate to last message.

Default: ctrl+alt+g,end

Docs: messages_last
-no example
messages_copy

Copy message.

Default: <leader>y

Docs: messages_copy
-no example
messages_undo

Undo message.

Default: <leader>u

Docs: messages_undo
-no example
messages_redo

Redo message.

Default: <leader>r

Docs: messages_redo
-no example
messages_toggle_conceal

Keybind for: messages toggle conceal.

Default: <leader>h

Docs: messages_toggle_conceal
-no example
input_clear

Clear input field.

Default: ctrl+c

Docs: input_clear
-no example
input_paste

Paste from clipboard.

Default: ctrl+v (preventDefault: false)

Docs: input_paste
-no example
input_submit

Submit input.

Default: return

Docs: input_submit
-no example
input_newline

Insert newline in input.

Default: shift+return,ctrl+return,alt+return,ctrl+j

Docs: input_newline
-no example
input_move_left

Move cursor left in input.

Default: left,ctrl+b

Docs: input_move_left
-no example
input_move_right

Move cursor right in input.

Default: right,ctrl+f

Docs: input_move_right
-no example
input_move_up

Move cursor up in input.

Default: up

Docs: input_move_up
-no example
input_move_down

Move cursor down in input.

Default: down

Docs: input_move_down
-no example
input_select_left

Select left in input.

Default: shift+left

Docs: input_select_left
-no example
input_select_right

Select right in input.

Default: shift+right

Docs: input_select_right
-no example
input_select_up

Select up in input.

Default: shift+up

Docs: input_select_up
-no example
input_select_down

Select down in input.

Default: shift+down

Docs: input_select_down
-no example
input_line_home

Move to start of line in input.

Default: ctrl+a

Docs: input_line_home
-no example
input_line_end

Move to end of line in input.

Default: ctrl+e

Docs: input_line_end
-no example
input_select_line_home

Select to start of line in input.

Default: ctrl+shift+a

Docs: input_select_line_home
-no example
input_select_line_end

Select to end of line in input.

Default: ctrl+shift+e

Docs: input_select_line_end
-no example
input_visual_line_home

Move to start of visual line in input.

Default: alt+a

Docs: input_visual_line_home
-no example
input_visual_line_end

Move to end of visual line in input.

Default: alt+e

Docs: input_visual_line_end
-no example
input_select_visual_line_home

Select to start of visual line in input.

Default: alt+shift+a

Docs: input_select_visual_line_home
-no example
input_select_visual_line_end

Select to end of visual line in input.

Default: alt+shift+e

Docs: input_select_visual_line_end
-no example
input_buffer_home

Move to start of buffer in input.

Default: home

Docs: input_buffer_home
-no example
input_buffer_end

Move to end of buffer in input.

Default: end

Docs: input_buffer_end
-no example
input_select_buffer_home

Select to start of buffer in input.

Default: shift+home

Docs: input_select_buffer_home
-no example
input_select_buffer_end

Select to end of buffer in input.

Default: shift+end

Docs: input_select_buffer_end
-no example
input_delete_line

Delete line in input.

Default: ctrl+shift+d

Docs: input_delete_line
-no example
input_delete_to_line_end

Delete to end of line in input.

Default: ctrl+k

Docs: input_delete_to_line_end
-no example
input_delete_to_line_start

Delete to start of line in input.

Default: ctrl+u

Docs: input_delete_to_line_start
-no example
input_backspace

Backspace in input.

Default: backspace,shift+backspace

Docs: input_backspace
-no example
input_delete

Delete character in input.

Default: ctrl+d,delete,shift+delete

Docs: input_delete
-no example
input_undo

Undo in input.

Default: ctrl+-,super+z; on Windows defaults to ctrl+z,ctrl+-,super+z

Docs: input_undo
-no example
input_redo

Redo in input.

Default: ctrl+.,super+shift+z

Docs: input_redo
-no example
input_word_forward

Move word forward in input.

Default: alt+f,alt+right,ctrl+right

Docs: input_word_forward
-no example
input_word_backward

Move word backward in input.

Default: alt+b,alt+left,ctrl+left

Docs: input_word_backward
-no example
input_select_word_forward

Select word forward in input.

Default: alt+shift+f,alt+shift+right

Docs: input_select_word_forward
-no example
input_select_word_backward

Select word backward in input.

Default: alt+shift+b,alt+shift+left

Docs: input_select_word_backward
-no example
input_delete_word_forward

Delete word forward in input.

Default: alt+d,alt+delete,ctrl+delete

Docs: input_delete_word_forward
-no example
input_delete_word_backward

Delete word backward in input.

Default: ctrl+w,ctrl+backspace,alt+backspace

Docs: input_delete_word_backward
-no example
input_select_all

Select all in input.

Default: super+a

Docs: input_select_all
-no example
history_previous

Previous history item.

Default: up

Docs: history_previous
-no example
history_next

Next history item.

Default: down

Docs: history_next
-no example
dialog.select.prev

Move to previous dialog item.

Default: up,ctrl+p

Docs: dialog.select.prev
-no example
dialog.select.next

Move to next dialog item.

Default: down,ctrl+n

Docs: dialog.select.next
-no example
dialog.select.page_up

Move up one page in dialog.

Default: pageup

Docs: dialog.select.page_up
-no example
dialog.select.page_down

Move down one page in dialog.

Default: pagedown

Docs: dialog.select.page_down
-no example
dialog.select.home

Move to first dialog item.

Default: home

Docs: dialog.select.home
-no example
dialog.select.end

Move to last dialog item.

Default: end

Docs: dialog.select.end
-no example
dialog.select.submit

Submit selected dialog item.

Default: return

Docs: dialog.select.submit
-no example
dialog.prompt.submit

Submit dialog prompt.

Default: return

Docs: dialog.prompt.submit
-no example
dialog.mcp.toggle

Toggle MCP server.

Default: space

Docs: dialog.mcp.toggle
-no example
prompt.autocomplete.prev

Move to previous autocomplete item.

Default: up,ctrl+p

Docs: prompt.autocomplete.prev
-no example
prompt.autocomplete.next

Move to next autocomplete item.

Default: down,ctrl+n

Docs: prompt.autocomplete.next
-no example
prompt.autocomplete.hide

Hide autocomplete.

Default: escape

Docs: prompt.autocomplete.hide
-no example
prompt.autocomplete.select

Select autocomplete item.

Default: return

Docs: prompt.autocomplete.select
-no example
prompt.autocomplete.complete

Complete autocomplete item.

Default: tab

Docs: prompt.autocomplete.complete
-no example
permission.prompt.fullscreen

Toggle permission prompt fullscreen.

Default: ctrl+f

Docs: permission.prompt.fullscreen
-no example
plugins.toggle

Toggle plugin.

Default: space

Docs: plugins.toggle
-no example
dialog.plugins.install

Keybind for: dialog plugins install.

Default: shift+i

Docs: dialog.plugins.install
-no example
terminal_suspend

Suspend terminal.

Default: ctrl+z; forced to none on Windows

Docs: terminal_suspend
-no example
which_key_toggle

Toggle which-key panel.

Default: ctrl+alt+k

Docs: which_key_toggle
-no example
which_key_layout_toggle

Switch which-key layout.

Default: ctrl+alt+shift+k

Docs: which_key_layout_toggle
-no example
which_key_pending_toggle

Toggle which-key pending preview.

Default: ctrl+alt+shift+p

Docs: which_key_pending_toggle
-no example
which_key_group_previous

Previous which-key group.

Default: ctrl+alt+left,ctrl+alt+[

Docs: which_key_group_previous
-no example
which_key_group_next

Next which-key group.

Default: ctrl+alt+right,ctrl+alt+]

Docs: which_key_group_next
-no example
which_key_scroll_up

Scroll which-key up.

Default: ctrl+alt+up,ctrl+alt+p

Docs: which_key_scroll_up
-no example
which_key_scroll_down

Scroll which-key down.

Default: ctrl+alt+down,ctrl+alt+n

Docs: which_key_scroll_down
-no example
which_key_page_up

Page which-key up.

Default: ctrl+alt+pageup

Docs: which_key_page_up
-no example
which_key_page_down

Page which-key down.

Default: ctrl+alt+pagedown

Docs: which_key_page_down
-no example
which_key_home

Jump to first which-key binding.

Default: ctrl+alt+home

Docs: which_key_home
-no example
which_key_end

Jump to last which-key binding.

Default: ctrl+alt+end

Docs: which_key_end
-no example
tab

Cycles through primary agents during a session (agent_cycle).

Default for agent_cycle

Docs: tab
-no example
ctrl+t

Cycles through model variants (actual reasoning effort), unlike /thinking which only toggles display.

Default for variant_cycle

Docs: ctrl+t
-no example
@

References files in a message via fuzzy file search; configured references also appear (@alias, @alias/).

Docs: @
How is auth handled in @packages/functions/src/api/index.ts?
!

Starting a message with ! runs a shell command; output is added to the conversation as a tool result.

Docs: !
!ls -la
ctrl+p

Opens the command palette, used for TUI customizations like username display and auto-approve permissions.

Default for command_list

Docs: ctrl+p
-no example
Cmd+Esc / Ctrl+Esc

IDE extension quick launch: opens OpenCode in a split terminal view or focuses an existing session (Mac / Windows-Linux).

Docs: Cmd+Esc / Ctrl+Esc
-no example
Cmd+Shift+Esc / Ctrl+Shift+Esc

IDE extension: starts a new OpenCode terminal session even if one is open.

Docs: Cmd+Shift+Esc / Ctrl+Shift+Esc
-no example
Cmd+Option+K / Alt+Ctrl+K

IDE extension: inserts file references such as @File#L37-42.

Docs: Cmd+Option+K / Alt+Ctrl+K
-no example

The rest of the OpenCode reference

FAQ

How many keyboard shortcuts does OpenCode have?

The official OpenCode docs list 118 keyboard shortcuts, including leader, app_exit and command_list. All of them are in the table above, in the docs' order.

What does leader do in OpenCode?

Leader key used by many keybinds (press it, then the shortcut). Values: Default: ctrl+x.

Where are OpenCode keyboard shortcuts documented?

On 4 official docs pages at opencode.ai, last read on October 17, 2026. Every row in the table links the exact section it came from.

More on OpenCode

Sources

Last verified . Names and examples are copied verbatim from the 4 official pages below, and every row above links the exact section it came from.

Newsletter

Know when your tools change

One email per week. New coding agent releases, the flags and commands they add, and what they mean for how you work.