Keybindings

Keyboard shortcuts across lists, session view, diff mode, prompt input, and question input.

This page lists keyboard shortcuts for each Agentty view.

For session states and transition behavior, see Workflow.

Shared Text Editing🔗

Prompt, question, publish-branch, and launch-configuration inputs share the same basic editing shortcuts. Context-specific actions such as prompt submission, slash commands, @ completion, and question-option navigation run before these common fallbacks.

KeyAction
Left / RightMove one character
Option+Left / Shift+Left / Alt+BMove to previous word
Option+Right / Shift+Right / Alt+FMove to next word
Home / EndMove to start / end of input
Ctrl+A / Ctrl+EMove to start / end of current line
Backspace / DeleteDelete backward / forward
Option+Backspace / Shift+BackspaceDelete previous word
Ctrl+WDelete previous word
Cmd+Backspace / Ctrl+UDelete current line
Ctrl+KDelete to end of current line
Ctrl+ZUndo
Ctrl+Y / Ctrl+Shift+ZRedo
pasteInsert text at the cursor

On macOS, undo still uses Ctrl+Z, not Cmd+Z. Terminal applications such as Ghostty may consume Cmd+Z before Agentty or a surrounding tmux session receives it.

Multiline prompt and question inputs also share vertical cursor movement and newline insertion. Single-line publish and launch-configuration inputs keep only the first line of pasted text.

Session List🔗

KeyAction
qQuit
aCheck hooks, then open the session creation selector
sSync active project branch
cCancel selected session after confirmation
EnterOpen session
j / kNavigate sessions
pOpen project switcher popup
Tab / Shift+TabSwitch to next / previous tab
?Help

If pre-commit configuration exists without an executable hook, a first opens a warning. Press Enter to continue to the Regular, Draft, or Stacked selector, or Esc / q to cancel.

In the a selector, Stacked is enabled only when the selected session is a root session with an active branch. c appears only for cancelable rows: running sessions, review-ready sessions, and unstarted draft sessions.

The p popup lists registered projects in most-recently-opened order with the active project marked by a * prefix. Each row shows â–¶ N for projects with running sessions and stays blank otherwise. Use j / k to move, Enter to switch the active project without leaving the Sessions view, and Esc or q to close.

Project List🔗

KeyAction
qQuit
sSync active project branch
EnterSelect active project
j / kNavigate projects
Tab / Shift+TabSwitch to next / previous tab
?Help

The currently active project is highlighted in the table with a * prefix and accented row text.

Settings🔗

KeyAction
qQuit; closes an open selector dropdown or Launch Configurations browser first
sSync active project branch
j / kNavigate settings; move inside an open selector dropdown or Launch Configurations browser
EnterOpen selector dropdown or Launch Configurations browser; select highlighted option; edit or save a launch configuration
EscClose selector dropdown or Launch Configurations browser; cancel launch-configuration add/edit input
aAdd an entry in the Launch Configurations browser
eEdit the selected entry in the Launch Configurations browser
dDelete the selected entry in the Launch Configurations browser
J / KMove the selected Launch Configurations entry down or up
shared text-editing keysEdit, move by character or word, paste, undo, or redo while adding or editing one Launch Configurations entry
Tab / Shift+TabSwitch to next / previous tab
?Help

The page is split into Global settings for the app-wide Theme row (Agentty Default, Agentty Green, or Dark Horizon) and '<project>' settings for the reasoning level, model defaults, commit coauthor toggle, and Launch Configurations rows described in Workflow. Selector rows open dropdowns; use j / k to move through the dropdown and Enter to save the highlighted value. The Launch Configurations row opens a list browser where each command is added, edited, deleted, or reordered as its own entry.

Inbox🔗

KeyAction
qQuit
j / kNavigate reviews
EnterOpen review details
sRefresh PRs/MRs requesting your review
Tab / Shift+TabSwitch to next / previous tab
?Help

On the read-only detail page, use j / k or Up / Down to scroll, Ctrl+d / Ctrl+u to move by half pages, g / G to jump to the top or bottom, and q / Esc to return to the review list.

Issues🔗

KeyAction
qQuit
j / kNavigate assigned issues
EnterOpen base details for the selected issue
sRefresh open GitHub issues assigned to you in the active project
Tab / Shift+TabSwitch to next / previous tab
?Help

On the read-only detail page, use j / k or Up / Down to scroll, Ctrl+d / Ctrl+u to move by half pages, g / G to jump to the top or bottom, and q / Esc to return to the issue list. Issue comments are not loaded in this iteration.

Session View🔗

Available actions depend on the session state. The full set in Review state, subject to session and forge availability:

KeyAction
qBack to list
EnterCompose a reply
/Open composer with / prefilled
oRun a launch configuration in the worktree
pPublish branch and create or refresh review request
cShow linked review-request comments
dShow diff
fAppend or regenerate focused review output
FFork session with copied transcript history
mAdd to merge queue after confirmation
rSync session branch
j / kScroll output
g / GScroll to top / bottom
Ctrl+d / Ctrl+uHalf page down / up
?Help

State-specific differences:

  • AgentReview keeps the review shortcuts, including r. Pressing r starts session sync immediately and cancels the pending focused review so stale review output cannot appear after the rebase begins.
  • InProgress sessions use Enter to queue a follow-up message and keep r available to queue session sync behind the running turn. Each Ctrl+c retracts the newest queued message; when the queue is empty, Ctrl+c stops the active turn.
  • Rebasing sessions use Enter to queue a follow-up message behind the active session sync. Slash commands and branch actions remain unavailable until sync finishes.
  • Root Review and AgentReview sessions offer F to fork the current branch and copied transcript history into a new independent session; stacked children hide F.
  • Draft sessions use Enter to add a staged message and s to start the staged session. They hide o and r until launch and let Ctrl+V, Ctrl+Shift+V, or Alt+V open the composer with an image paste; stacked drafts also hide m and show s only when the parent is review-ready and the stack is idle.
  • Question sessions hide r until they return to review-ready state.
  • Review-ready stacked parents with a materialized child keep Enter, m, and r while the stack is idle, but hide / until the child is terminal or no longer linked.
  • Sessions with a linked pull request or merge request use c to open its comments page and hide m; merge the linked request through its forge instead of Agentty's local merge queue. Linked terminal sessions keep continuation available on C.
  • Merged sessions remain in Active and expose only read-only navigation, linked review comments, and d for the diff until list-mode s successfully syncs their local target branch.
  • Done sessions offer C to start a continuation draft (confirmation popup).
  • Canceled, Queued, and Merging sessions are otherwise read-only (q, scroll, help). Linked review requests remain available from any session state with c.

o runs the configured Launch Configurations entry, or opens a selector popup when several are configured. Run Agentty inside tmux when you rely on Launch Configurations, because those commands are dispatched into tmux windows. Publish (p), sync (r), and stacked behavior are described in Workflow.

Review Comments🔗

The review-comments page uses the same split layout as diff view. The left panel lists general comments and inline threads; the right panel shows the selected comment's author and thread state, current diff context for its attached line or range, and then the conversation. File-level comments explicitly show that they have no attached code line instead of highlighting an arbitrary diff row. Inline snippets use the same gutters and added/removed line colors as diff view.

KeyAction
q / EscReturn to session view
j / kSelect previous/next comment
Up / DownScroll selected comment info
aAddress the selected actionable comment with agent
AAddress all actionable comments with the agent

a and A appear only while the session can accept a turn. Resolved and outdated inline threads are not actionable; general discussion comments can be sent to the agent but cannot be resolved automatically because they have no forge thread ID.

Publish Popup🔗

KeyAction
EnterPublish typed or default target in the background
EscCancel and return to session view
shared text-editing keysEdit, paste, move, delete, undo, or redo
text keysEdit remote branch name, including the character q

Launch Configuration Selector🔗

KeyAction
j / kMove selection
EnterOpen worktree and run selected command
Esc / qCancel and return to session view

Diff Mode🔗

Pressing d from session view opens diff mode with the right panel showing the git diff.

KeyAction
q / EscBack to session
j / kSelect file
Up / DownScroll selected diff
?Help

The diff panel title includes aggregate +added and -removed line totals plus the selected file or folder's added/removed counts.

Prompt Input🔗

KeyAction
EnterSend prompt or stage it in a draft
Alt+Enter / Shift+EnterInsert newline
Ctrl+J / Ctrl+MInsert newline (terminal fallback)
Ctrl+V / Ctrl+Shift+V / Alt+VPaste image as [Image #n]
Cmd+Left / Cmd+RightMove to start / end of current line
Option+Left / Option+RightMove to previous / next word
Option+BackspaceDelete previous word
Cmd+BackspaceDelete current line
Ctrl+ZUndo
Ctrl+Y / Ctrl+Shift+ZRedo
EscCancel
TabFocus chat output for scrolling
@Open file picker
/Open slash commands

While the chat output is focused, d opens the current-session diff preview, j / k / Up / Down scroll the transcript, g / G jump to the top or bottom, Ctrl+D / Ctrl+U scroll by half a page, Tab returns focus to the composer, and q returns to the sessions list. The typed draft is preserved when leaving with q: reopening the session restores the composer with input focus. Other keys pressed in chat focus never edit the draft, and Ctrl+C is ignored. Leaving the diff preview also returns to the composer with the draft intact.

Prompt input keeps regular text paste on terminal Event::Paste. The dedicated image paste shortcuts insert highlighted [Image #n] tokens directly in the composer and send the referenced local image for Codex, Gemini, Antigravity, and Claude session models. Clipboard image capture uses Agentty's host clipboard backend, with Wayland reads using wl-paste when it is available. Missing or unsupported clipboard backends report an inline paste error. Codex preserves the multimodal ordering at transport level, while Antigravity and Claude rewrite the placeholders to local image paths before streaming the prompt.

Agentty requests enhanced keyboard reporting from supporting terminals and tmux panes so remote sessions can distinguish Shift+Enter from plain Enter. Image paste and @ lookup behavior are described in Workflow.

Question Input — Option Selection🔗

When predefined options are shown:

KeyAction
j / k / Up / DownNavigate options
EnterSend highlighted option
TabFocus chat output for scrolling
qReturn to sessions list
Ctrl+CEnd turn without answering

Question Input — Free Text🔗

After moving above or below the predefined option list, or when no predefined options exist:

KeyAction
EnterSend response; blank means no answer
Alt+Enter / Shift+EnterInsert newline
Ctrl+J / Ctrl+MInsert newline (terminal fallback)
Ctrl+CEnd turn without answering
EscEnd turn without answering
Left / Right / Up / DownMove cursor
Backspace / DeleteDelete character
Home / EndMove to start / end
Cmd+Left / Cmd+RightMove to start / end of current line
Option+Left / Option+RightMove to previous / next word
Option+Backspace / Ctrl+WDelete previous word
Cmd+BackspaceDelete current line
Ctrl+KDelete to end of current line
Ctrl+DDelete character forward
Ctrl+ZUndo
Ctrl+Y / Ctrl+Shift+ZRedo
TabFocus chat output for scrolling

In free-text mode every other printable character — including q — is inserted into the answer. To leave without answering, press Tab to focus the chat output and then q, or press Ctrl+C while the answer input is focused.

Question Input — Chat Scroll🔗

When chat output is focused (press Tab to switch):

KeyAction
j / k / Up / DownScroll chat output
g / GScroll to top / bottom
Ctrl+d / Ctrl+uHalf page down / up
dOpen current-session diff preview
TabReturn focus to answer input
qReturn to sessions list

After the last question is answered, Agentty sends one follow-up message with each question and its response, then returns to session view. Pressing q (outside free-text input) returns to the sessions list while leaving the session in Question state; answers already submitted and the current free-text draft are kept, so reopening the session resumes at the next unanswered question.