Skip to content

Navigation Bindings

Keybindings for scrolling, selecting, and navigating UI elements: scroll, selection copy, diff viewer, message selector, attachments, footer, and autocomplete.

Navigation bindings enable browsing content, copying text, selecting from lists, and navigating specialized dialogs. These contexts activate based on what’s visible or focused.

Active when scrollable content is visible (messages, transcript, files).

KeyActionDescription
pageupscroll:pageUpScroll up one page.
pagedownscroll:pageDownScroll down one page.
wheelupscroll:lineUpScroll up one line (mouse wheel equivalent).
wheeldownscroll:lineDownScroll down one line.
ctrl+homescroll:topJump to top of scrollable content.
ctrl+endscroll:bottomJump to bottom of scrollable content.
KeyActionDescriptionPlatform
ctrl+shift+cselection:copyCopy selected text to clipboard. Standard terminal copy.All
cmd+cselection:copyCopy selected text (kitty keyboard protocol).macOS, Linux, kitty-capable terminals

Note: cmd+c on macOS normally triggers system copy. Claude Code’s cmd+c binding fires only on terminals using the kitty protocol (kitty, WezTerm, ghostty, iTerm2) where cmd reaches the TTY. On standard terminals, cmd+c is intercepted by the OS and never reaches the app; use ctrl+shift+c instead.

Active when autocomplete menu is visible while typing a prompt.

KeyActionDescription
tabautocomplete:acceptAccept the highlighted suggestion.
escapeautocomplete:dismissDismiss autocomplete menu.
upautocomplete:previousHighlight previous suggestion.
downautocomplete:nextHighlight next suggestion.

Autocomplete appears while typing; navigate suggestions and press Tab to insert.

Active when selecting image attachments in a select dialog.

KeyActionDescription
leftattachments:previousSelect previous image.
rightattachments:nextSelect next image.
backspaceattachments:removeRemove selected attachment.
deleteattachments:removeRemove selected attachment (alternative).
downattachments:exitExit attachment picker.
escapeattachments:exitExit attachment picker.

Active when rewind dialog is open (message selection for undoing changes).

KeyActionDescription
upmessageSelector:upSelect previous message.
downmessageSelector:downSelect next message.
kmessageSelector:upSelect previous (vi-style).
jmessageSelector:downSelect next (vi-style).
ctrl+pmessageSelector:upPrevious (readline-style).
ctrl+nmessageSelector:downNext (readline-style).
KeyActionDescription
meta+upmessageSelector:topJump to first message.
shift+upmessageSelector:topJump to first message (alternative).
ctrl+upmessageSelector:topJump to first message (alternative).
shift+kmessageSelector:topJump to first message (vi-style).
meta+downmessageSelector:bottomJump to last message.
shift+downmessageSelector:bottomJump to last message (alternative).
ctrl+downmessageSelector:bottomJump to last message (alternative).
shift+jmessageSelector:bottomJump to last message (vi-style).
KeyActionDescription
entermessageSelector:selectRewind to selected message.

Active when diff viewer is open (showing file changes).

KeyActionDescription
leftdiff:previousSourcePrevious source (original file or previous version).
rightdiff:nextSourceNext source (modified file or next version).
updiff:previousFilePrevious file in diff set.
downdiff:nextFileNext file in diff set.
KeyActionDescription
enterdiff:viewDetailsOpen detailed view of selected file.
escapediff:dismissClose diff dialog.

Active when footer indicators (tasks, teams, diffs, loops) are focused.

KeyActionDescription
upfooter:upPrevious indicator.
ctrl+pfooter:upPrevious indicator (readline-style).
downfooter:downNext indicator.
ctrl+nfooter:downNext indicator (readline-style).
leftfooter:previousCycle within indicator (e.g., previous task).
rightfooter:nextCycle within indicator (next task).
enterfooter:openSelectedOpen/focus selected indicator.
escapefooter:clearSelectionDeselect indicator.

Footer indicators include running tasks, team activity, pending diffs, and loop status.

Active during tab navigation mode.

KeyActionDescription
tabtabs:nextNext tab.
shift+tabtabs:previousPrevious tab.
righttabs:nextNext tab (arrow equivalent).
lefttabs:previousPrevious tab (arrow equivalent).

Tab context activates in multi-tab interfaces (some projects, chat sessions, etc.).

Scroll bindings (pageup/pagedown) are fixed size; you cannot customize line count via keybindings. Use terminal height to adjust visual page size.

{
"Scroll": {
"ctrl+u": "scroll:pageUp",
"ctrl+d": "scroll:pageDown"
}
}
{
"Attachments": {
"h": "attachments:previous",
"l": "attachments:next"
}
}
  • Scroll context always active: Scroll bindings are available whenever there’s scrollable content, even if other contexts are layered (e.g., a dialog over a transcript).
  • Copy requires selection: Text must be selected (highlighted) before copy works. Selection is done via mouse or shift+arrow keys (when supported).
  • Vi-style keys: Multiple bindings for navigation (j/k, up/down, ctrl+p/n) cater to different user preferences.
  • Tab context transient: Tab navigation activates only in specific multi-tab scenarios; most single-chat interfaces don’t use tabs.

← Back to Keybindings/README.md