Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Keybindings

Remap TUI shortcuts from ~/.veyyon/profiles/default/agent/keybindings.yml (YAML map of action ID → chord or chord list). Run /hotkeys in a session to see active bindings.

Customize keybindings

app.model.cycleForward: Ctrl+P
app.model.selectTemporary: Alt+P
app.plan.toggle: Alt+Shift+P
app.history.search: []   # disable

Chord names match the UI (Ctrl+P, Alt+Shift+P, Shift+Enter). Older keybindings.json files migrate to .yml on load.

Action IDs from older releases (interrupt, fork, cursorUp) are renamed to their current IDs (app.interrupt, app.session.fork, tui.editor.cursorUp) the first time veyyon loads the file, and the file is written back. The rename happens where the binding already sits, so your comments, blank lines, and key order come back unchanged:

# hold this one, muscle memory
interrupt: ctrl+x

becomes

# hold this one, muscle memory
app.interrupt: ctrl+x

Common action IDs include app.model.cycleForward, app.model.select, app.plan.toggle, app.history.search, app.tools.expand, app.thinking.toggle, app.thinking.cycle (Shift+Tab), app.editor.external (Ctrl+G), app.message.followUp, app.retry, app.display.reset, and app.clipboard.pasteImage.

Engineering detail: docs/handbook/src/reference/keybindings-config.md.

Slash commands

CommandAction
/hotkeysShow active chords
/settingsSettings UI (includes keymap-related options)

Remap keys by editing keybindings.yml; /hotkeys shows the current bindings.

There is no Vim or modal editing mode; the composer uses the bindings above.