Houston docs

Typing while it works (steering)

You don't have to wait for a turn to finish before saying the next thing. Type while the agent works, press Enter, and your message goes to the turn that's running.

Why it helps. The agent reads your message before its next step, so "no, use YAML instead" changes what happens next rather than arriving after the work is done. It's the middle ground between two bad options: interrupting throws away the turn's work and its context, and waiting lets the agent keep building on the wrong thing.

  • Honest timing. Houston prints · steering: … at the moment the message actually reaches the model, not when you pressed Enter. Until then it has changed nothing.
  • Part of the conversation. A steered message appears in the transcript and is remembered like anything else you said.

In the desktop app

  • Enter steers the running turn.
  • ⌘+Enter (Ctrl+Enter on Windows and Linux) queues the message instead, to be sent as the next turn when this one finishes.
  • While a run is going, the message box says so, and the Steer button sits where Send normally is, with Queue beside it.
  • A steered message is labelled Steered in the transcript.
  • Until it reaches the model, it waits as a chip above the message box, marked with the steer icon. Its × takes it back.

Special cases

  • The agent asked you something. While it waits on a question, Enter answers the question instead (the box says so), since the agent can't read anything else until it has your answer.
  • Long messages. A message longer than a steer allows (2,000 characters) is queued for after the run instead of being cut.
  • Commands. A /command or a # rule typed mid-run is run or saved, never sent to the model as text. In the terminal it runs once the turn ends. In the desktop app it runs right away (switching the approval mode applies to the running turn), except /compact, which waits until the turn ends.

Your message is never dropped

  • The turn finished first (you typed as the agent was wrapping up): the message is sent as the next one automatically, with no second Enter. Several such messages go together as one.
  • The turn ended another way (you pressed Stop, the provider failed after its retries, the turn hit its step limit): the message stays as a queued chip to send or clear.
  • Restarts: queued messages are saved with the chat, so quitting or restarting Houston keeps them.
  • Terminal interrupts: a message typed before you interrupt a turn is put back in the prompt for you to edit or send.

Stopping

  • Esc clears what you've typed. On an empty line, Esc stops the run (so does Ctrl-C).
  • Stopping a run also drops anything still waiting, since those messages were follow-ups to work you just threw away.