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 reference

Quick lookup for the default Veyyon TUI shortcuts. For the full guide on customizing, remapping, and Vim mode, see Keybindings and Vim mode.

Global

BindingAction
ctrl-tOpen transcript scrollback
ctrl-gOpen external editor for the current draft
ctrl-oCopy the last agent response to the clipboard
ctrl-lClear TUI history
alt-rToggle raw scrollback mode
(unbound)Toggle Vim mode
(unbound)Toggle Fast mode

Chat

BindingAction
escInterrupt the running turn
alt-, or shift-downDecrease reasoning effort
alt-. or shift-upIncrease reasoning effort
alt-up or shift-leftEdit the most recently queued message

Composer

BindingAction
enterSubmit the current message
tabQueue the current message while a task is running
alt-enterQueue the current message as a follow-up turn
? or shift-?Toggle the composer shortcut helper
ctrl-rOpen reverse history search or move to the previous match
ctrl-sMove to the next match in reverse history search

Editor

BindingAction
ctrl-j, ctrl-m, enter, shift-enter, alt-enterInsert a new line
left or ctrl-bMove cursor left
right or ctrl-fMove cursor right
up or ctrl-pMove cursor up
down or ctrl-nMove cursor down
alt-b, alt-left, ctrl-leftMove cursor left by one word
alt-f, alt-right, ctrl-rightMove cursor right by one word
home or ctrl-aMove cursor to the start of the line
end or ctrl-eMove cursor to the end of the line
backspace, shift-backspace, ctrl-hDelete the character to the left
delete, shift-delete, ctrl-dDelete the character to the right
alt-backspace, ctrl-backspace, ctrl-shift-backspace, ctrl-w, ctrl-alt-hDelete the word to the left
alt-delete, ctrl-delete, ctrl-shift-delete, alt-dDelete the word to the right
ctrl-uDelete from the cursor to the start of the line
ctrl-kDelete from the cursor to the end of the line
ctrl-yPaste the deleted text buffer

Pager

BindingAction
up or kScroll up one row
down or jScroll down one row
page-up, shift-space, or ctrl-bScroll up one page
page-down, space, or ctrl-fScroll down one page
ctrl-uScroll up half a page
ctrl-dScroll down half a page
homeJump to the beginning
endJump to the end
q or ctrl-cClose the pager
ctrl-tClose the transcript view

List

BindingAction
up, ctrl-p, ctrl-k, kMove selection up
down, ctrl-n, ctrl-j, jMove selection down
left or ctrl-hMove selection left
right or ctrl-lMove selection right
page-up or ctrl-bMove up one page
page-down or ctrl-fMove down one page
homeJump to the first item
endJump to the last item
enterAccept the current selection
escCancel and close the list

Approval

BindingAction
ctrl-a or ctrl-shift-aOpen the fullscreen approval view
oOpen the requesting thread
yApprove the current request
aApprove similar requests for the rest of the session
pApprove similar requests matching the command prefix
dDeny the request
esc or nDecline the request and prompt for feedback
cCancel the elicitation prompt

Vim mode

Vim mode adds modal editing to the composer. Type /vim to toggle it, or bind toggle_vim_mode in your config.

ModeBindingAction
NormaliEnter Insert mode
AnyescReturn to Normal mode

Normal-mode basics:

CategoryBindings
Motionsh, j, k, l, w, b, e, 0, $
Operatorsd, y, c
Line operationsdd, yy, cc
Text objectsw, W, (, ), [, ], {, }, ", ', `

For the full list of motions, operators, and text objects, see Keybindings and Vim mode.

Customizing (real path: keybindings.yml)

Custom bindings are shipped — but the config surface is its own file, not a tui.keymap block in config.yml. Set bindings by action ID in ~/.veyyon/agent/keybindings.yml (YAML map of action ID → chord or chord list). A single string, a list of chords, or an empty list (disables the action) are all valid values:

app.model.cycleForward: Ctrl+P
app.history.search: []   # disables the action
app.clipboard.copyLine: [Ctrl+C, Alt+C]

Action IDs are namespaced (app.model.cycleForward, app.plan.toggle, tui.select.pageUp, …), not the global/clear_terminal-style context keys shown in older drafts of this page. Older flat legacy names and keybindings.json files migrate automatically to the namespaced .yml form on load. Run /hotkeys in a session to see active chords.

Spec — not shipped: a /keymap interactive remapper and nested tui.keymap.<context> tables inside config.yml. The customization surface that actually ships is the flat keybindings.yml file above.

For the full action-ID list and Vim mode details, see Keybindings and Vim mode and the engineering reference docs/keybindings.md.