Keybindings

The complete agentty keymap.

Everything you can do without leaving the home row.

Global

KeyAction
EnterSend the current message
EscCancel the current turn / reject a permission / close a modal (does NOT quit)
S-TabCycle permission profile (Write → Ask → Minimal)
Ctrl+KCommand palette
Ctrl+JThread list (opens at the current thread)
Ctrl+NNew thread
Alt+←/→Quick-cycle to the adjacent thread (← newer, → older)
Ctrl+←/→Quick-cycle threads (empty composer, idle session)
Ctrl+TTodo / plan view
Ctrl+/Model picker
Ctrl+PProvider picker (switch LLM backend live)
Ctrl+GRun a code block from the newest reply on your real terminal
Ctrl+RReview pending diffs
Ctrl+OBrowse the full text of a frozen retrieved-context card
Ctrl+UExpand / collapse the newest retrieved-context card (empty composer)
Ctrl+LRedraw the screen
Ctrl+CQuit (the only quit key)

Composer

The composer is a full readline-style editor. Keys are grouped below by what they do.

Submit & compose

KeyAction
EnterSend the message (or, while streaming, queue it)
Shift+EnterInsert a newline
Alt+EnterInsert a newline (fallback for terminals that don't deliver Shift+Enter)
Ctrl+EToggle the expanded (taller) composer
/Open the command palette — when line-leading (start of buffer or after a newline)
@Open the file-mention picker — at a word boundary; inserts an @file chip
#Open the symbol picker — at a word boundary; inserts a #symbol chip

Cursor motion

KeyAction
/ Move one character (steps over an attachment chip as a single unit)
Ctrl+← / Ctrl+→Move one word (a run of punctuation counts as one unit)
Home / EndJump to start / end of the buffer

Ctrl+← / Ctrl+→ switch to word-motion only when the composer has text; on an empty composer with an idle session they cycle threads instead (same as Alt+←/→).

Editing

KeyAction
BackspaceDelete the character (or whole chip) before the cursor
Ctrl+WDelete the word before the cursor (readline unix-word-rubout)
Alt+DDelete the word after the cursor (readline kill-word)
Ctrl+UKill to beginning of line
Alt+KKill to end of line
Ctrl+ZUndo — rewinds word-by-word, not keystroke-by-keystroke
Ctrl+Y / Ctrl+Shift+ZRedo
Ctrl+V / Alt+VPaste an image from the clipboard as an attachment chip

Undo coalesces a run of typing into one step (broken on whitespace and on any non-typing edit), so one Ctrl+Z after a paste reaches the pre-paste state. Ctrl+V is intercepted by some terminals (Windows Terminal binds it to its own paste); Alt+V is the fallback that every terminal passes through.

Kill-to-end is Alt+K, not the readline-standard Ctrl+KCtrl+K is reserved app-wide for the command palette. It pairs with Ctrl+U (kill-to-start) the same way Alt+D (delete word forward) pairs with Ctrl+W (delete word back). Ctrl+U also doubles as “expand/collapse the newest retrieved-context card” when the composer is empty and such a card is on screen; with text in the box it always means kill-to-line-start.

History & queue

KeyAction
On an empty composer: recall queued messages (if any), else walk back through your previous messages
Walk forward through history toward the live draft
Alt+↑Edit queued messages one at a time (loads the most recently queued first)
Alt+↓Step back out of the per-item queue editor toward the live draft
Alt+BackspaceDrop the most recently queued message (empty composer, nothing peeked)

Queue behavior

Typing while a turn streams queues the message rather than interrupting. There are two ways to work with the queue:

  • on an empty composer pulls every queued message back into the buffer at once (joined by newlines, cursor at the seam) — destructive on the queue, so re-submit to re-queue.
  • Alt+↑ / Alt+↓ step through the queue one message at a time to fix a single entry; Enter re-queues the edited message in place. This works even mid-edit, so you don't have to clear the composer first.

The composer placeholder hints press ↑ to edit queued — type to queue another… when relevant.

Palette-only actions

Some actions have no dedicated key — reach them from the command palette (Ctrl+K). Notably Rewind to checkpoint opens a diff-preview picker over every checkpointed turn (git repo + idle session); see Checkpoints & rewind. Fork thread branches the current conversation into a fresh thread that carries near-zero context — the parent transcript is read on demand — to escape a full context window; see Forking a Thread. Compaction depth cycles how full the context window gets before agentty auto-compacts in the background (75/90/95%) — see Providers & Models.