Global shortcuts
These shortcuts work throughout the application:Chat page shortcuts
When in the main chat interface:The
i key only focuses the editor when you’re not already typing. This mimics vim’s insert mode behavior.Editor shortcuts
When the message editor is focused:Message navigation
Navigate through the conversation history:These vim-style navigation keys (
b, f, Ctrl+U, Ctrl+D) work throughout the message area for efficient scrolling.Session dialog shortcuts
When the session switcher is open (Ctrl+S):
Model dialog shortcuts
When the model selection dialog is open (Ctrl+O):
Permission dialog shortcuts
When the AI requests permission to perform an action:The permission dialog displays diffs, commands, or URLs for you to review before approving. Use the viewport navigation shortcuts to scroll through large previews.
Command dialog shortcuts
When the command palette is open (Ctrl+K):
Theme dialog shortcuts
When the theme switcher is open (Ctrl+T):
File picker shortcuts
When the file picker is open (Ctrl+F):
Logs page shortcuts
When viewing logs (Ctrl+L):
Completion dialog shortcuts
When using the@ completion feature:
Vim-style navigation summary
OpenCode embraces vim keybindings for familiarity:Movement
j/kfor up/downh/lfor left/rightCtrl+U/Ctrl+Dfor half-page scrolls
Modes
ito enter insert mode (focus editor)Escto exit insert mode?for help (similar to vim’s:help)
Quick reference table
Print this table for quick reference:Core actions
Core actions
Dialogs
Dialogs
Permissions
Permissions
Custom keybindings are not currently supported, but shortcuts follow common terminal application conventions and vim patterns for familiarity.