Houston docs

The terminal composer

The interactive terminal's composer is a full line editor, so a message can be as long as it needs to be.

  • Send: Enter sends.
  • New line: Ctrl-J or Alt-Enter adds a line break (or just paste one).
  • Pasting: paste anything, including many lines. The whole block lands in the composer as one editable message and is never sent line by line. A large paste collapses to a short placeholder like [#1 pasted 120 lines] so it doesn't bury the screen; the real text is what gets sent. This works even in terminals without bracketed-paste support.
  • History: messages are remembered per project folder and survive restarts, multi-line ones included.
  • Shell commands: a line starting with ! runs in your own shell. See "Running your own commands".

Keys

KeyDoes
Entersend the message
Ctrl-J, Alt-Enterinsert a line break
Up / Downmove between lines, then step through past messages
Ctrl-Rsearch past messages (type to filter, Ctrl-R again for older, Enter to accept, Esc to cancel)
Tabcomplete a slash command or an @-file mention (fuzzy: @tuied finds src/tui-editor.ts)
Ctrl-A / Ctrl-Estart / end of line
Alt-B / Alt-Fmove a word
Ctrl-Wdelete the word before the cursor
Ctrl-K / Ctrl-Udelete to end / start of line
Ctrl-Ypaste back what was just deleted
Ctrl-X Ctrl-Eopen the draft in $VISUAL/$EDITOR and come back with it
Ctrl-Lrepaint the screen
/imageattach the image on your clipboard (also /paste)
Ctrl-Cdiscard the draft (twice in a row to leave)
Escwhile the agent works: clear what you typed, or stop the run if nothing is typed
Ctrl-Dleave (on an empty composer)
Shift-Tabswitch approval mode (plan → ask → auto-edit → full auto → plan)

Vim keys

/vim turns on modal editing in the composer and remembers it; /vim off goes back.

  • Each prompt starts in insert mode, so typing a message never needs a mode change.
  • Esc goes to normal mode.
  • The marker in front of the prompt shows the mode: I or N. Terminals that support it also show a bar cursor for insert and a block for normal.

Supported in normal mode:

  • Motions: h j k l w W b B e E 0 ^ $ gg G, with counts (3w, d2j)
  • Insert: i a I A o O s
  • Edits: x X D C r
  • Operators: d c y over any motion, plus dd cc yy
  • Paste and undo: p/P, u

Not supported: visual mode, text objects (ciw), registers beyond the unnamed one, marks, macros, and . repeat.

Everything else in the composer (Enter to send, Ctrl-R history search, Ctrl-X Ctrl-E, pasting) works the same in both modes.