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.
| Key | Action |
|---|---|
Left / Right | Move one character |
Option+Left / Shift+Left / Alt+B | Move to previous word |
Option+Right / Shift+Right / Alt+F | Move to next word |
Home / End | Move to start / end of input |
Ctrl+A / Ctrl+E | Move to start / end of current line |
Backspace / Delete | Delete backward / forward |
Option+Backspace / Shift+Backspace | Delete previous word |
Ctrl+W | Delete previous word |
Cmd+Backspace / Ctrl+U | Delete current line |
Ctrl+K | Delete to end of current line |
Ctrl+Z | Undo |
Ctrl+Y / Ctrl+Shift+Z | Redo |
| paste | Insert 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🔗
| Key | Action |
|---|---|
q | Quit |
a | Check hooks, then open the session creation selector |
s | Sync active project branch |
c | Cancel selected session after confirmation |
Enter | Open session |
j / k | Navigate sessions |
p | Open project switcher popup |
Tab / Shift+Tab | Switch 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🔗
| Key | Action |
|---|---|
q | Quit |
s | Sync active project branch |
Enter | Select active project |
j / k | Navigate projects |
Tab / Shift+Tab | Switch to next / previous tab |
? | Help |
The currently active project is highlighted in the table with a * prefix and accented row text.
Settings🔗
| Key | Action |
|---|---|
q | Quit; closes an open selector dropdown or Launch Configurations browser first |
s | Sync active project branch |
j / k | Navigate settings; move inside an open selector dropdown or Launch Configurations browser |
Enter | Open selector dropdown or Launch Configurations browser; select highlighted option; edit or save a launch configuration |
Esc | Close selector dropdown or Launch Configurations browser; cancel launch-configuration add/edit input |
a | Add an entry in the Launch Configurations browser |
e | Edit the selected entry in the Launch Configurations browser |
d | Delete the selected entry in the Launch Configurations browser |
J / K | Move the selected Launch Configurations entry down or up |
| shared text-editing keys | Edit, move by character or word, paste, undo, or redo while adding or editing one Launch Configurations entry |
Tab / Shift+Tab | Switch 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🔗
| Key | Action |
|---|---|
q | Quit |
j / k | Navigate reviews |
Enter | Open review details |
s | Refresh PRs/MRs requesting your review |
Tab / Shift+Tab | Switch 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🔗
| Key | Action |
|---|---|
q | Quit |
j / k | Navigate assigned issues |
Enter | Open base details for the selected issue |
s | Refresh open GitHub issues assigned to you in the active project |
Tab / Shift+Tab | Switch 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:
| Key | Action |
|---|---|
q | Back to list |
Enter | Compose a reply |
/ | Open composer with / prefilled |
o | Run a launch configuration in the worktree |
p | Publish branch and create or refresh review request |
c | Show linked review-request comments |
d | Show diff |
f | Append or regenerate focused review output |
F | Fork session with copied transcript history |
m | Add to merge queue after confirmation |
r | Sync session branch |
j / k | Scroll output |
g / G | Scroll to top / bottom |
Ctrl+d / Ctrl+u | Half page down / up |
? | Help |
State-specific differences:
- AgentReview keeps the review shortcuts, including
r. Pressingrstarts session sync immediately and cancels the pending focused review so stale review output cannot appear after the rebase begins. - InProgress sessions use
Enterto queue a follow-up message and keepravailable to queue session sync behind the running turn. EachCtrl+cretracts the newest queued message; when the queue is empty,Ctrl+cstops the active turn. - Rebasing sessions use
Enterto 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
Fto fork the current branch and copied transcript history into a new independent session; stacked children hideF. - Draft sessions use
Enterto add a staged message andsto start the staged session. They hideoandruntil launch and letCtrl+V,Ctrl+Shift+V, orAlt+Vopen the composer with an image paste; stacked drafts also hidemand showsonly when the parent is review-ready and the stack is idle. - Question sessions hide
runtil they return to review-ready state. - Review-ready stacked parents with a materialized child keep
Enter,m, andrwhile 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
cto open its comments page and hidem; merge the linked request through its forge instead of Agentty's local merge queue. Linked terminal sessions keep continuation available onC. - Merged sessions remain in Active and expose only read-only navigation, linked review comments, and
dfor the diff until list-modessuccessfully syncs their local target branch. - Done sessions offer
Cto 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 withc.
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.
| Key | Action |
|---|---|
q / Esc | Return to session view |
j / k | Select previous/next comment |
Up / Down | Scroll selected comment info |
a | Address the selected actionable comment with agent |
A | Address 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🔗
| Key | Action |
|---|---|
Enter | Publish typed or default target in the background |
Esc | Cancel and return to session view |
| shared text-editing keys | Edit, paste, move, delete, undo, or redo |
| text keys | Edit remote branch name, including the character q |
Launch Configuration Selector🔗
| Key | Action |
|---|---|
j / k | Move selection |
Enter | Open worktree and run selected command |
Esc / q | Cancel and return to session view |
Diff Mode🔗
Pressing d from session view opens diff mode with the right panel showing the git diff.
| Key | Action |
|---|---|
q / Esc | Back to session |
j / k | Select file |
Up / Down | Scroll 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🔗
| Key | Action |
|---|---|
Enter | Send prompt or stage it in a draft |
Alt+Enter / Shift+Enter | Insert newline |
Ctrl+J / Ctrl+M | Insert newline (terminal fallback) |
Ctrl+V / Ctrl+Shift+V / Alt+V | Paste image as [Image #n] |
Cmd+Left / Cmd+Right | Move to start / end of current line |
Option+Left / Option+Right | Move to previous / next word |
Option+Backspace | Delete previous word |
Cmd+Backspace | Delete current line |
Ctrl+Z | Undo |
Ctrl+Y / Ctrl+Shift+Z | Redo |
Esc | Cancel |
Tab | Focus 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:
| Key | Action |
|---|---|
j / k / Up / Down | Navigate options |
Enter | Send highlighted option |
Tab | Focus chat output for scrolling |
q | Return to sessions list |
Ctrl+C | End turn without answering |
Question Input — Free Text🔗
After moving above or below the predefined option list, or when no predefined options exist:
| Key | Action |
|---|---|
Enter | Send response; blank means no answer |
Alt+Enter / Shift+Enter | Insert newline |
Ctrl+J / Ctrl+M | Insert newline (terminal fallback) |
Ctrl+C | End turn without answering |
Esc | End turn without answering |
Left / Right / Up / Down | Move cursor |
Backspace / Delete | Delete character |
Home / End | Move to start / end |
Cmd+Left / Cmd+Right | Move to start / end of current line |
Option+Left / Option+Right | Move to previous / next word |
Option+Backspace / Ctrl+W | Delete previous word |
Cmd+Backspace | Delete current line |
Ctrl+K | Delete to end of current line |
Ctrl+D | Delete character forward |
Ctrl+Z | Undo |
Ctrl+Y / Ctrl+Shift+Z | Redo |
Tab | Focus 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):
| Key | Action |
|---|---|
j / k / Up / Down | Scroll chat output |
g / G | Scroll to top / bottom |
Ctrl+d / Ctrl+u | Half page down / up |
d | Open current-session diff preview |
Tab | Return focus to answer input |
q | Return 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.