Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Key Bindings

While a lifecycle action waits for draft persistence, Esc cancels it. In a failed-save modal, R retries and Esc cancels; only a failed quit offers X to explicitly exit without saving pending changes.

? on an empty input shows this list in the session.

Input

KeyAction
EnterSend; append to the FIFO queue if a turn is running
Shift+Enter, Alt+Enter, Ctrl-JNew line
TabComplete a path after @, or a skill name after /skill; again cycles matches
Ctrl-EEdit the prompt in $VISUAL or $EDITOR
Ctrl-VAttach an image from the clipboard
Ctrl-UWithdraw the newest queued message, else clear the input
Up, Down (input empty)Previous, next prompt; Up recalls the newest queued message first
Up, Down (multi-line input)Move between lines
Left, Right, Home, EndMove; Ctrl-B, Ctrl-F, Ctrl-A as in a shell
Ctrl-Left, Ctrl-Right, Alt-B, Alt-FMove by word
Backspace, Ctrl-H, DeleteDelete a character
Ctrl-W, Ctrl-BackspaceDelete the word before the cursor
Ctrl-KDelete to end of line
Ctrl-RReserved for prompt search; not yet

Conversation

Ctrl-P or /prompts toggles a user-prompts-only history, hiding replies, tools, logs, shell commands, turn summaries, and the sidebar. Each switch starts at the latest prompt; scrolling keys and the mouse wheel still work. Toggle again to restore the full transcript. This is display-only: saved history and model context are unchanged. Permission, question, and review dialogs still appear, and the input and status bar remain available.

KeyAction
Ctrl-PToggle user-prompts-only history (same as /prompts)
PgUp, PgDnScroll ten lines
Shift+Up, Shift+DownScroll one line
Mouse wheelScroll three lines; Shift+drag selects text
Home, End (input empty)Top, bottom
Right, Left (input empty)Unfold or fold the last tool call or the last reply's thinking

Session

The startup project-instructions offer uses the permission dialog's magenta border and compact cyan action strip: y generates (g is an alias), n or Esc dismisses for this launch, and d disables future offers for this repository. Drafts and armed skills are preserved. Up, Down, PgUp, PgDn, and the mouse wheel scroll its text; actions stay visible. /init remains available. Tab in the ordinary input completes /init, /instructions, and the supported init options.

KeyAction
EscAsk to interrupt the running turn; y confirms. Closes a confirmation or the help.
Ctrl-CAsk to abort the running tool; y confirms. With no tool running, as Esc. With nothing running, clears the input.
Ctrl-DConfirm leaving, even when idle. Press again to exit; any other key cancels.
Ctrl-SShow or hide the skills/cost sidebar, even in dialogs; /sidebar where the terminal keeps Ctrl-S
?Help (input empty)
/Begin a slash command

Esc and Ctrl-C also ask before stopping a queued or running bang command.

Mode-switch confirmation

In plan or design mode, a build request or a mode-blocked tool call pauses for heph's own dialog. y switches to code mode and resumes the same turn; n or Esc keeps the mode and stops the turn. Other keys do not accept. This confirms the mode only; pending calls still need their normal permissions.

Config error

A broken live config pauses the pending tool at heph's own dialog. Fix the named authoritative file externally. r retries the same call under fresh policy; s or Esc stops the turn. Up, Down, PgUp, PgDn, and the mouse wheel scroll the error and advisory fast-model guidance. Retry and Stop remain available while guidance loads or if it fails. This is not a permission approval or a model question.

Permission prompt

t expands or collapses a long model-thinking fallback without answering.

KeyAction
yAllow this call
n, EscDeny
aAllow, and remember the shown pattern for this session
AAllow, and write the edited scope to the effective project config
eEdit the pattern; Enter keeps it, Esc cancels the edit
Up, Down, PgUp, PgDn, mouse wheelScroll call and scope explanations; compact action keys stay in view

Question

KeyAction
1 to 5Type an option number; edit it before confirming
EnterConfirm a matching option number, otherwise send the typed answer
EscNo answer; the model is told no one answered
PgUp, PgDn, mouse wheelScroll a long question; the options and the input stay in view

Post-review commit offer

After accepted work passes final publication gates, a dedicated dialog shows the branch, message, and paths with the permission dialog's magenta border and compact cyan action strip. y chooses Yes and commits as shown without an editor. e chooses Yes, but edit the message, opening $VISUAL or $EDITOR as a manual /commit does. n or Esc leaves the work private. Numbers, Enter, and other keys do not approve publication. Up, Down, PgUp, PgDn, and the mouse wheel scroll; actions stay visible. The publication lock is held until the answer and, when accepted, through the editor and commit. See Committing.

Base branch question

Asked before a conversation's first turn when it has no base branch (Branches).

KeyAction
TypingFilter the branches to those containing the text
Up, DownChoose among the branches shown
EnterStart from the chosen branch, or the name typed if none matches
EscCancel the turn; the prompt goes back in the input

Review: the brief

KeyAction
EnterBegin: the built-in review, or open the external tool
qReject every hunk and end the turn
EscLater: the change stays in the worktree, unreviewed
Up, Down, PgUp, PgDnScroll

Review: hunk by hunk

KeyAction
aAccept
rReject
cReject with a comment; Enter sends, Esc cancels
eEdit the file in your editor
sSkip: rejected without comment
qReject everything undecided and finish
u, Backspace, LeftUndo the last decision; from the first hunk, back to the brief
EscStop here: decided hunks stand, the rest wait for /review
Up, Down, PgUp, PgDnScroll the hunk

Review: comments after an external tool

KeyAction
Enter, TabSend the comment, or skip if empty
Shift+TabBack to the previous rejection
EscFinish now, with the comments given so far
Up, Down, PgUp, PgDnScroll

Confirmation

KeyAction
yYes
anything elseNo, dismiss