Skip to content
OpenCode
Esc
navigateopen⌘Jpreview
On this page

Keybinds

Customize bindings in cli.json:

{
  "keybinds": {
    "leader": "ctrl+space",
    "command.palette.show": "ctrl+k",
    "app.exit": ["ctrl+c", "ctrl+d"],
    "app.debug": false
  },
  "leader": {
    "timeout": 1500
  }
}

Use a string for one key:

{
  "keybinds": {
    "command.palette.show": "ctrl+k"
  }
}

Separate alternatives with commas:

{
  "keybinds": {
    "app.exit": "ctrl+c,ctrl+d"
  }
}

Disable a binding with "none" or false:

{
  "keybinds": {
    "app.debug": "none",
    "help.show": false
  }
}

Use an object for event behavior:

{
  "keybinds": {
    "prompt.paste": {
      "key": "ctrl+v",
      "preventDefault": false
    }
  }
}

leader defaults to ctrl+x. <leader> in another binding refers to that key.

{
  "keybinds": {
    "leader": "ctrl+space",
    "model.list": "<leader>m"
  },
  "leader": {
    "timeout": 2000
  }
}

Unknown command IDs are rejected.

Application

ID Default Description
leader ctrl+x Leader key for keybind combinations
app.exit ctrl+c,ctrl+d,<leader>q Exit the application
app.debug none Toggle debug panel
app.console none Toggle console
app.scrap none Open scrap screen
app.toggle.animations none Toggle animations
app.toggle.file_context none Toggle file context
app.toggle.diffwrap none Toggle diff wrapping
app.toggle.paste_summary none Toggle paste summary
command.palette.show ctrl+p List available commands
help.show none Open help dialog
docs.open none Open documentation
opencode.settings none Open settings
server.pair none Pair device
service.restart none Restart service
permission.mode none Toggle auto-approve permissions

Diff Viewer

ID Default Description
diff.open none Open diff viewer
diff.close escape,q Close diff viewer
diff.down j,down Move diff viewer down
diff.up k,up Move diff viewer up
diff.page.down pagedown,ctrl+f Page diff viewer down
diff.page.up pageup,ctrl+b Page diff viewer up
diff.toggle enter,space Toggle diff viewer item
diff.expand right Expand diff viewer item
diff.expand_all E Expand all diff viewer folders
diff.collapse left Collapse diff viewer item
diff.switch_focus tab Switch diff viewer focus
diff.next_hunk ] Jump to next diff hunk
diff.previous_hunk [ Jump to previous diff hunk
diff.next_file n Jump to next diff file
diff.previous_file p Jump to previous diff file
diff.toggle_file_tree b Toggle diff viewer file tree
diff.single_patch s Toggle single patch view
diff.switch_source d Switch diff viewer source
diff.toggle_view v Toggle diff viewer split or unified view
diff.mark_reviewed m Toggle selected diff file reviewed
diff.help ? Show more diff viewer shortcuts

Appearance And Navigation

ID Default Description
prompt.editor <leader>e Open external editor
theme.switch <leader>t List available themes
theme.switch_mode none Switch between light and dark theme mode
theme.mode.lock none Lock or unlock theme mode
session.sidebar.toggle <leader>b Toggle sidebar
session.toggle.scrollbar none Toggle session scrollbar
opencode.status <leader>s View status
opencode.debug none View debug info

Sessions

ID Default Description
session.export <leader>x Export session to editor
session.copy none Copy session transcript
session.move none Move session
session.new <leader>n Create a new session
session.list <leader>l List all sessions
open.menu ctrl+o Open recent sessions and projects
session.tab.next ctrl+tab,alt+down Switch to next open session tab
session.tab.previous ctrl+shift+tab,alt+up Switch to previous open session tab
session.tab.history.back none Go back in session tab history
session.tab.history.forward ctrl+i Go forward in session tab history
session.tab.next_unread alt+shift+down Switch to next unread session tab
session.tab.previous_unread alt+shift+up Switch to previous unread session tab
session.tab.close <leader>w Close current session tab
session.tab.reopen ctrl+shift+t Reopen last closed session tab
session.timeline <leader>g Show session timeline
session.fork none Fork session from message
session.rename ctrl+r Rename session
session.delete ctrl+d Delete session
session.share none Share current session
session.unshare none Unshare current session
session.interrupt escape Interrupt current session
session.background ctrl+b Background blocking session tools
session.compact <leader>c Compact the session
session.cd none Change working directory
session.queued_prompts <leader>q Manage queued prompts
queued_prompt.delete ctrl+d Delete queued prompt
session.toggle.exploration_grouping none Toggle related tool call grouping
session.child.first down Toggle subagent picker
session.child.next right Go to next child session
session.child.previous left Go to previous child session
session.parent up Go to parent session
session.pin.toggle ctrl+f Pin or unpin session in the session list
session.quick_switch.1 <leader>1 Switch to session in quick slot 1
session.quick_switch.2 <leader>2 Switch to session in quick slot 2
session.quick_switch.3 <leader>3 Switch to session in quick slot 3
session.quick_switch.4 <leader>4 Switch to session in quick slot 4
session.quick_switch.5 <leader>5 Switch to session in quick slot 5
session.quick_switch.6 <leader>6 Switch to session in quick slot 6
session.quick_switch.7 <leader>7 Switch to session in quick slot 7
session.quick_switch.8 <leader>8 Switch to session in quick slot 8
session.quick_switch.9 <leader>9 Switch to session in quick slot 9
session.tab.select.1 <leader>1,ctrl+1 Switch to session tab 1
session.tab.select.2 <leader>2,ctrl+2 Switch to session tab 2
session.tab.select.3 <leader>3,ctrl+3 Switch to session tab 3
session.tab.select.4 <leader>4,ctrl+4 Switch to session tab 4
session.tab.select.5 <leader>5,ctrl+5 Switch to session tab 5
session.tab.select.6 <leader>6,ctrl+6 Switch to session tab 6
session.tab.select.7 <leader>7,ctrl+7 Switch to session tab 7
session.tab.select.8 <leader>8,ctrl+8 Switch to session tab 8
session.tab.select.9 <leader>9,ctrl+9 Switch to session tab 9
session.tab.select.10 <leader>0,ctrl+0 Switch to session tab 10

Models And Agents

ID Default Description
stash.delete ctrl+d Delete stash entry
model.dialog.provider ctrl+a Open provider list from model dialog
model.dialog.favorite ctrl+f Toggle model favorite status
model.list <leader>m List available models
model.cycle_recent f2 Next recently used model
model.cycle_recent_reverse shift+f2 Previous recently used model
model.cycle_favorite none Next favorite model
model.cycle_favorite_reverse none Previous favorite model
mcp.list none List MCP servers
provider.connect none Connect integration
agent.list <leader>a List agents
agent.cycle shift+tab Next agent
agent.cycle.reverse none Previous agent
variant.cycle ctrl+t Cycle model variants
variant.list none List model variants

Session Navigation

ID Default Description
session.page.up pageup,ctrl+alt+b Scroll messages up by one page
session.page.down pagedown,ctrl+alt+f Scroll messages down by one page
session.line.up ctrl+alt+y Scroll messages up by one line
session.line.down ctrl+alt+e Scroll messages down by one line
session.half.page.up ctrl+alt+u Scroll messages up by half page
session.half.page.down ctrl+alt+d Scroll messages down by half page
session.first ctrl+g,home,alt+home Navigate to first message
session.last ctrl+alt+g,end Navigate to last message
session.message.next none Navigate to next message
session.message.previous none Navigate to previous message
session.message.user.next none Navigate to next user message
session.message.user.previous none Navigate to previous user message
session.messages_last_user alt+end Navigate to last user message
messages.copy <leader>y Copy message
session.undo <leader>u Undo message
session.redo <leader>r Redo message
session.toggle.thinking none Toggle thinking blocks visibility

Prompt Commands

ID Default Description
prompt.submit none Submit prompt
prompt.queue alt+return Queue prompt
prompt.editor_context.clear none Clear editor context
prompt.images.view <leader>i View image attachments
prompt.skills none Open skill selector
prompt.stash none Stash prompt
prompt.stash.pop none Pop stashed prompt
prompt.stash.list none List stashed prompts

Input Editing

ID Default Description
prompt.clear ctrl+c Clear input field
prompt.paste {"key":"ctrl+v","preventDefault":false} (ctrl+v; preventDefault: false) Paste from clipboard
input.submit return Submit input
input.newline shift+return,ctrl+return,ctrl+j Insert newline in input
input.move.left left,ctrl+b Move cursor left in input
input.move.right right,ctrl+f Move cursor right in input
input.move.up up Move cursor up in input
input.move.down down Move cursor down in input
input.select.left shift+left Select left in input
input.select.right shift+right Select right in input
input.select.up shift+up Select up in input
input.select.down shift+down Select down in input
input.line.home ctrl+a Move to start of line in input
input.line.end ctrl+e Move to end of line in input
input.select.line.home ctrl+shift+a Select to start of line in input
input.select.line.end ctrl+shift+e Select to end of line in input
input.visual.line.home alt+a Move to start of visual line in input
input.visual.line.end alt+e Move to end of visual line in input
input.select.visual.line.home alt+shift+a Select to start of visual line in input
input.select.visual.line.end alt+shift+e Select to end of visual line in input
input.buffer.home none Move to start of buffer in input
input.buffer.end none Move to end of buffer in input
input.select.buffer.home shift+home Select to start of buffer in input
input.select.buffer.end shift+end Select to end of buffer in input
input.delete.line ctrl+shift+d Delete line in input
input.delete.to.line.end ctrl+k Delete to end of line in input
input.delete.to.line.start ctrl+u Delete to start of line in input
input.backspace backspace,shift+backspace Backspace in input
input.delete ctrl+d,delete,shift+delete Delete character in input
input.undo ctrl+-,super+z Undo in input
input.redo ctrl+.,super+shift+z Redo in input
input.word.forward alt+f,alt+right,ctrl+right Move word forward in input
input.word.backward alt+b,alt+left,ctrl+left Move word backward in input
input.select.word.forward alt+shift+f,alt+shift+right Select word forward in input
input.select.word.backward alt+shift+b,alt+shift+left Select word backward in input
input.delete.word.forward alt+d,alt+delete,ctrl+delete Delete word forward in input
input.delete.word.backward ctrl+w,ctrl+backspace,alt+backspace Delete word backward in input
input.select.all super+a Select all in input
prompt.history.previous up Previous history item
prompt.history.next down Next history item

Composer

ID Default Description
composer.subagent.up up Previous subagent
composer.subagent.down down Next subagent
composer.subagent.select return Navigate to subagent
composer.subagent.interrupt ctrl+d Interrupt subagent
composer.shell.up up Previous shell
composer.shell.down down Next shell
composer.shell.kill ctrl+d Kill shell command

Dialogs And Autocomplete

ID Default Description
dialog.select.prev up,ctrl+p Move to previous dialog item
dialog.select.next down,ctrl+n Move to next dialog item
dialog.select.page_up pageup Move up one page in dialog
dialog.select.page_down pagedown Move down one page in dialog
dialog.select.home home Move to first dialog item
dialog.select.end end Move to last dialog item
dialog.select.submit return Submit selected dialog item
dialog.prompt.submit return Submit dialog prompt
dialog.worktree.generate tab Generate worktree name
dialog.move_session.new ctrl+m New worktree
dialog.move_session.delete ctrl+d Delete worktree
dialog.move_session.refresh ctrl+r Refresh worktrees
prompt.autocomplete.prev up,ctrl+p Move to previous autocomplete item
prompt.autocomplete.next down,ctrl+n Move to next autocomplete item
prompt.autocomplete.hide escape Hide autocomplete
prompt.autocomplete.select return Select autocomplete item
prompt.autocomplete.complete tab Complete autocomplete item
permission.prompt.fullscreen ctrl+f Toggle permission prompt fullscreen
plugins.toggle space Toggle plugin
dialog.mcp.toggle space Toggle MCP server
dialog.plugins.install shift+i Install plugin from plugin dialog

Terminal And Plugins

ID Default Description
terminal.suspend ctrl+z Suspend terminal
terminal.title.toggle none Toggle terminal title
plugins.list none Open plugin manager dialog
plugins.install none Install plugin

Which-Key

ID Default Description
which-key.toggle ctrl+alt+k Toggle which-key panel
which-key.layout.toggle ctrl+alt+shift+k Switch which-key layout
which-key.pending.toggle ctrl+alt+shift+p Toggle which-key pending preview
which-key.group.previous ctrl+alt+left,ctrl+alt+[ Previous which-key group
which-key.group.next ctrl+alt+right,ctrl+alt+] Next which-key group
which-key.scroll.up ctrl+alt+up,ctrl+alt+p Scroll which-key up
which-key.scroll.down ctrl+alt+down,ctrl+alt+n Scroll which-key down
which-key.page.up ctrl+alt+pageup Page which-key up
which-key.page.down ctrl+alt+pagedown Page which-key down
which-key.home ctrl+alt+home Jump to first which-key binding
which-key.end ctrl+alt+end Jump to last which-key binding

Was this page helpful?