Terminal keys

The input line is a small text editor, and it does not behave like a shell prompt.

Three habits of the terminal are deliberately gone: Ctrl+C copies the selection instead of killing the program, Ctrl+D deletes a line instead of ending the session, and Ctrl+Z takes an edit back instead of suspending the process. Ctrl+Q is the way out. The editing keys are the same as in idet, so the two do not have to be held apart.

Four of the keys below belong to a command rather than to the editor — Alt+H, Alt+T, Alt+G and Ctrl+Q — and those are the ones a Shortcuts section in settings.cfg reassigns, described under configuration. The help panel shows each command beside the key in force for it, so a reassignment reads back where it was made.

Sending and stopping

KeyEffect
EnterSend the input, or take the selected suggestion
Shift+EnterBreak the line. It is the only key that does — Ctrl+Enter and Ctrl+J are deliberately ignored, so a terminal that sends one of those for Shift+Enter has to be rebound rather than worked around
Alt+EnterSend the message as soon as the running turn ends, instead of waiting for it yourself
Ctrl+DownEdit the message queued for the next turn
A rebound Shift+Enter looks like Alt+EnterAn Alacritty-style binding of chars = "\u001B\r" reads as Alt+Enter here and queues the message instead of breaking the line — bind chars = "\u001B[13;2u" instead, which revolve, prime-agent and Claude Code all read correctly
EscClose the suggestions, drop the selection, else stop the running turn
Ctrl+QQuit, the /quit command's own key

A turn stopped with Esc keeps what the model had already said, up to the last complete word.

The history above the input

KeyEffect
Alt+EndBack to the newest output
Ctrl+CCopy the selection
Ctrl+FSearch the conversation. Type to narrow; Enter, Up and Ctrl+G walk back through the matches, Down forward, Esc closes. Each tab keeps its own search

Tabs, panels and the goal

KeyEffect
Ctrl+TStart a session and open it in a new tab
Ctrl+WClose the tab, or quit on the first one. It asks first when a turn is running or other tabs are still open
Ctrl+PageUp / Ctrl+PageDownGo to the tab beside this one, wrapping from the last back to the first
Alt+TOpen and close the list of running sessions, the /agents command's own key; Enter opens one in a tab
Alt+IOpen and close the inbox, the questions parked for you rather than asked: one row per open entry with its kind, who asked, how old it is and its first line. Enter opens the usual question form over every entry that wants an answer, at the selected one, so ←→ walks the rest of the inbox; an entry you leave empty stays open and its asker hears nothing. w puts it aside for a duration or a date you then type, d dismisses a note, and a also lists what is put aside. The status row counts what is waiting
Alt+,Open the settings; Enter toggles the selected one and writes the file back
Alt+GPut the standing goal into the input, ready to be reworded, the /goal command's own key
Alt+A / Alt+STurn word completion and the history suggestion on and off

The log scrolls with the mouse, and a click unfolds things that are folded: the diff under an edit, a block of the model's thinking. While the view is scrolled up, the bottom row says how far back it is and takes a click to come back. The first and last rows of the log name the user message above and below and scroll to it.

Because a terminal hands its selection to the running program as a property of the whole window, an application that wants the mouse in one place gives up the terminal's own selection everywhere. Revolve needs it in the input field, so it draws the selection over the log itself. Shift+drag is what your terminal offers when you want its selection back for a moment.

Recalling what you typed

KeyEffect
Up / DownWalk the suggestions, else move a row, and past the first and last row, step through what you sent before
Right / Ctrl+E / TabTake the grey suggestion at the end of the line
Alt+RightTake one word of it, else swap the word with its neighbor
Ctrl+SpaceSuggest words for the one at the cursor
TabTake the selected suggestion, else the grey one, else indent
Ctrl+SStash the draft, and restore it into an empty input
Alt+HOpen the shortcut help, which filters as you type and shows each command beside the key bound to it

Recall is a mode rather than a position. Once Up has produced an earlier message, Up and Down step between messages directly; any edit or cursor move ends that, and the next Up starts again from the newest. With text already typed, only the entries containing it are walked, the way fish does it.

What is recalled is what you actually submitted, kept separately from the conversation, so a heartbeat note or a message from another agent never shows up as something you typed. The grey autosuggestion at the end of the line draws on this session first and then on earlier sessions in the same directory; it never changes the input on its own. Word suggestions come from the conversation itself, so a file name the agent just printed can be completed rather than retyped.

Editing

KeyEffect
Ctrl+Z / Ctrl+YUndo / redo
Ctrl+Shift+Z / Ctrl+Shift+YRedo / undo
Ctrl+X / Ctrl+VCut / paste
Ctrl+A / Ctrl+LSelect all / select the line, again to extend it
Shift+arrow, Ctrl+Shift+Left / RightSelect by character / by word
Ctrl+Left / Ctrl+RightJump by word
Home / End / Ctrl+Home / Ctrl+EndLine and input ends
Ctrl+Backspace / Ctrl+DeleteDelete the word before / after the cursor
Ctrl+DDelete the line
Shift+Tab / Ctrl+TabDedent
Alt+Up / Alt+DownMove the line
Alt+Shift+Up / DownMove the block, the paragraph around the cursor
Alt+Ctrl+Up / DownMove the section, everything up to the next blank-line pair
Alt+LeftSwap the word with its neighbor

What the two status rows say

The first row is what changes from keystroke to keystroke. The second, nearest the input, is the identity: the model and the standing goal from the left, the provider's rate windows and then the context reading pushed against the right edge, so a number you look for often is always in the same place. The context reading turns yellow at 150k tokens and red at 200k, which is warning enough before a compaction happens.

What a turn is currently doing — the spinner, the state word, the elapsed time, a retry countdown — sits at the bottom of the log rather than in the status bar, under the newest output where you are already looking.

How answers are drawn

Replies stream in as they are generated and are rendered as markdown: headings, emphasis, lists and quotes are styled, and fenced code blocks are syntax-highlighted. The highlighter reads its language files from ~/.config/idet/syntax and brings Rust, TOML, JSON, and shell along built in.

A turn's thinking is one entry rather than one per line: while it streams, only its newest line is drawn; once the answer starts, it folds to a single row saying how many lines it was, and a click opens it. A long reasoning pass therefore costs one row instead of pushing the conversation off the screen.