Skip to content

Keybindings

All shortcuts are customizable in ~/.autoc/agent/keybindings.json. After editing, run /reload; use /hotkeys to list effective bindings.

Key format

modifier+key — modifiers: ctrl, shift, alt. Keys: letters, digits, escape, enter, tab, f1f12, etc. Example: ctrl+shift+x.

Common defaults

ActionDefault
Submitenter
New lineshift+enter
Abortescape
Quit (empty editor)ctrl+d
Model pickerctrl+l
Model cyclectrl+p / shift+ctrl+p
Thinking levelshift+tab
Toggle tool outputctrl+o
Follow-up messagealt+enter
External editorctrl+g
Paste image (Windows)alt+v

All actions

Editor cursor movement

Key idDefaultDescription
tui.editor.cursorUpupMove cursor up
tui.editor.cursorDowndownMove cursor down
tui.editor.cursorLeftleft, ctrl+bMove cursor left
tui.editor.cursorRightright, ctrl+fMove cursor right
tui.editor.cursorWordLeftalt+left, ctrl+left, alt+bMove word left
tui.editor.cursorWordRightalt+right, ctrl+right, alt+fMove word right
tui.editor.cursorLineStarthome, ctrl+aMove to line start
tui.editor.cursorLineEndend, ctrl+eMove to line end
tui.editor.jumpForwardctrl+]Jump forward to character
tui.editor.jumpBackwardctrl+alt+]Jump backward to character
tui.editor.pageUppageUpPage up
tui.editor.pageDownpageDownPage down

Editor deletion

Key idDefaultDescription
tui.editor.deleteCharBackwardbackspaceDelete char backward
tui.editor.deleteCharForwarddelete, ctrl+dDelete char forward
tui.editor.deleteWordBackwardctrl+w, alt+backspaceDelete word backward
tui.editor.deleteWordForwardalt+d, alt+deleteDelete word forward
tui.editor.deleteToLineStartctrl+uDelete to line start
tui.editor.deleteToLineEndctrl+kDelete to line end

Input

Key idDefaultDescription
tui.input.newLineshift+enterInsert newline
tui.input.submitenterSubmit input
tui.input.tabtabTab / autocomplete

Kill ring

Key idDefaultDescription
tui.editor.yankctrl+yPaste last deleted text
tui.editor.yankPopalt+yCycle older kills after yank
tui.editor.undoctrl+-Undo last edit

Clipboard and list selection

Key idDefaultDescription
tui.input.copyctrl+cCopy selection
tui.select.upupMove selection up
tui.select.downdownMove selection down
tui.select.pageUppageUpList page up
tui.select.pageDownpageDownList page down
tui.select.confirmenterConfirm selection
tui.select.cancelescape, ctrl+cCancel selection

Application

Key idDefaultDescription
app.interruptescapeCancel / abort
app.clearctrl+cClear editor
app.exitctrl+dQuit (when editor empty)
app.suspendctrl+z (no default on native Windows)Suspend to background
app.editor.externalctrl+gOpen in external editor ($VISUAL / $EDITOR)
app.clipboard.pasteImagectrl+v (Windows: alt+v)Paste image from clipboard

Sessions

Key idDefaultDescription
app.session.new(none)New session (/new)
app.session.tree(none)Open session tree (/tree)
app.session.fork(none)Fork session (/fork)
app.session.resume(none)Open resume picker (/resume)
app.session.togglePathctrl+pToggle path display
app.session.toggleSortctrl+sToggle sort order
app.session.toggleNamedFilterctrl+nToggle named-only filter
app.session.renamectrl+rRename session
app.session.deletectrl+dDelete session
app.session.deleteNoninvasivectrl+backspaceDelete when query empty

Model and thinking

Key idDefaultDescription
app.model.selectctrl+lOpen model picker
app.model.cycleForwardctrl+pNext model
app.model.cycleBackwardshift+ctrl+pPrevious model
app.thinking.cycleshift+tabCycle thinking level
app.thinking.togglectrl+tToggle thinking block

Display and message queue

Key idDefaultDescription
app.tools.expandctrl+oToggle tool output
app.message.followUpalt+enterQueue follow-up message
app.message.dequeuealt+upRestore queued message to editor

Session tree navigation

Key idDefaultDescription
app.tree.foldOrUpctrl+left, alt+leftFold segment or jump to previous segment start
app.tree.unfoldOrDownctrl+right, alt+rightUnfold segment or jump down
app.tree.editLabelshift+lEdit node label
app.tree.toggleLabelTimestampshift+tToggle label timestamps
app.tree.filter.defaultctrl+dTree filter: default
app.tree.filter.noToolsctrl+tTree filter: hide tools
app.tree.filter.userOnlyctrl+uTree filter: user messages only
app.tree.filter.labeledOnlyctrl+lTree filter: labeled only
app.tree.filter.allctrl+aTree filter: show all
app.tree.filter.cycleForwardctrl+oCycle filter forward
app.tree.filter.cycleBackwardshift+ctrl+oCycle filter backward

Scoped model selector

Used inside the /scoped-models picker.

Key idDefaultDescription
app.models.savectrl+sSave model selection to settings
app.models.enableAllctrl+aEnable all (or all matching search)
app.models.clearAllctrl+xClear all (or all matching search)
app.models.toggleProviderctrl+pToggle all models for current provider
app.models.reorderUpalt+upMove selected model up in cycle order
app.models.reorderDownalt+downMove selected model down in cycle order

Customize

Create ~/.autoc/agent/keybindings.json:

json
{
  "tui.editor.cursorUp": ["up", "ctrl+p"],
  "tui.editor.deleteWordBackward": ["ctrl+w", "alt+backspace"]
}

Legacy non-namespaced ids (e.g. cursorUp) migrate on startup. On native Windows, app.suspend has no default binding.

Emacs-style example

json
{
  "tui.editor.cursorUp": ["up", "ctrl+p"],
  "tui.editor.cursorDown": ["down", "ctrl+n"],
  "tui.editor.cursorLeft": ["left", "ctrl+b"],
  "tui.editor.cursorRight": ["right", "ctrl+f"]
}

Vim-style example

json
{
  "tui.editor.cursorUp": ["up", "alt+k"],
  "tui.editor.cursorDown": ["down", "alt+j"],
  "tui.editor.cursorLeft": ["left", "alt+h"],
  "tui.editor.cursorRight": ["right", "alt+l"]
}

AUTOSAR BSW AI configuration assistant