docs / Usage
Keybindings
Global, editing, streaming, scrolling and popup controls.
Global
| Key | Action |
|---|---|
| Ctrl+C | Context-sensitive: copy the selection → clear the input draft → open the confirm-quit popup |
| Ctrl+X | Cut the selection |
| Ctrl+M | Open the command menu |
| Ctrl+R | Search your prompt history |
| Ctrl+T | Cycle the reasoning-effort variant (Ctrl+Shift+T too) |
| Ctrl+W | Toggle the sidebar |
| Ctrl+Shift+V | Paste an image off the system clipboard as an attachment (also Alt+Shift+V) |
Tabs
| Key | Action |
|---|---|
| Alt+← / Alt+→ | Previous / next tab, wrapping at the ends |
| Alt+1 … Alt+9 | Jump to that position in the strip |
Both are bound only while there is more than one tab, so a single-tab session keeps every chord the composer had before tabs existed — including
Alt+←/→, which then still move by word. See [Tabs](/docs/usage/tabs).Editing
Standard Emacs keys in the input box: Ctrl+B/F move by character, Alt+B/F by word, Ctrl+A/E go to line start/end, Ctrl+D/H/K/U delete or kill text. Shift+arrows/Home/End select text for copy/cut.
Up/Ctrl+P recalls previously sent prompts and stashed drafts (when the cursor is on the first row); Down/Ctrl+N walks back down.Scrolling the chat
| Key | Action |
|---|---|
| Up/Down | Scroll one row (with a single-line input) |
| Ctrl+N/Ctrl+P | Scroll down / up |
| Ctrl+V | Half-page down (Emacs C-v) |
| Alt+V | Half-page up (Emacs M-v) |
| Wheel | Scroll three rows per tick |
j/k no longer scroll the chat; they still work inside list popups (the
scene, variant, theme and tree pickers, and the trust prompt).
During a reply
- Esc Esc (twice, within half a second) interrupts a streaming reply.
- Ctrl+O expands or collapses the last tool call.
- Alt+↑ recalls prompts you "steered" while the agent was busy; add Shift to walk the stacked history.
When several tool calls from one message share the concurrency slots (see tool-concurrency), the
ones whose turn has not come yet are shown queued: the block holds a still ◇ where a running one spins and its meta row reads Queued 4.5s, then
swaps to the spinner and Elapsed … when it starts.
After a turn
Every finished reply closes with a dimmed footer — the wall-clock time the
turn took and the model code that served it, under the scene it ran under,
e.g. Took 12.4s · anthropic/claude-sonnet-4-5 (plan). The footer is stored
with the session, so it is still there when you resume; a turn that knows
only one of the two shows just that one, and imported or older turns may
show none.
A turn’s end is also announced if you asked for it: Shuvarie sends a desktop
notification through the terminal (OSC 9) by default, and can play a sound.
So do the two prompts that park the turn on you — a permission ask and a
question — which is the point of the notification when you have stepped away.
See ui.notify.
Popups
| Popup | Keys |
|---|---|
| Permission ask | Enter/y/a allow, s allow for the session, d allow everything in the asked file’s directory for the session (path asks only), Esc/n deny |
| Question | ↑/↓ move, ←/→/Tab switch question, Enter toggle an option, 1–9 pick one, Esc dismiss — mid-stream it also interrupts the turn |
| Todo list | ↑/↓ or j/k move, Home/g and End/G jump to the ends, Esc/q close |
| Peak table | t switch the time columns between the schedule’s zone, UTC and local time, Esc/q close |
| Codemode overlay | ↑/↓ (Ctrl+P/Ctrl+N) walk, Enter/Space change a switch, Esc close |
| Session picker | Type to filter titles (fuzzy, from the first keystroke), ↑/↓ (Ctrl+P/Ctrl+N) move, Enter resume, Ctrl+D delete then Ctrl+D again to confirm, Ctrl+O new session, Esc close |
| Attach finder | Type to filter files (fuzzy), ↑/↓ move, Enter/Tab attach, Ctrl+U clear the query, Ctrl+D change the directory searched, Esc/Ctrl+C close |
| Directory prompt | Edit the search root (~, relative or absolute), Tab complete the highlighted hint, ↑/↓ pick a hint, Enter search there, Esc back to the finder |
| Manage attachments | ↑/↓ move, a or Ctrl+A add through the finder, Delete/Ctrl+X remove, Ctrl+↑/↓ (Alt+K/Alt+J) change the send order, Home/End jump, Enter/Esc/q close |
| Unstaged changes | s stage everything and send, c send anyway, Esc cancel and give the draft back |
| Invalid slash command | Enter send the held text anyway, Esc hand it back to the composer |
| Command menu | ↑/↓ navigate, Enter run, Esc close |
| Slash-command menu | Tab complete, ↑/↓ select, Enter run, Esc dismiss |
| Image viewer | ←/h and →/l step, Esc/q close |
Mouse
Drag with the left button to select text in the input or chat. Enable copy-on-select in the ui config to copy
automatically. Clicking an attached image opens the viewer. Dropping a file onto the terminal pastes
its path into the composer, which picks it up as an attachment. The footer
row shows the keys that apply to whatever is on screen, and the sidebar and
collapsed footer show the workspace’s current git branch (⎇ …), refreshed
at the start of every turn.