Prompts & approvals
When the agent pauses and waits for you — approval prompts, free-form questions, and how autonomous mode replies for you.
Agents pause the turn and ask you something by calling ask_user or by running a tool whose call the session policy wants to gate. Both paths surface the same way: a prompt widget appears above the composer, the context bar flips to awaiting …, and the turn sits in place until you answer.

The composer is still usable while a prompt is up — you can open other screens, read the backlog, or switch to a different session. The prompt stays pinned to the session it came from.
Two prompt shapes
Section titled “Two prompt shapes”The widget reconfigures based on what the agent asked for:
Approval — a yes/no (or session-wide-yes) gate before a tool call runs. Four buttons:
| Button | Effect |
|---|---|
Allow | Run this call. The next one for the same tool still prompts. |
Allow Session | Run this call and auto-approve the rest of the session for this tool. |
Deny | Refuse the call. The agent sees the denial and adapts. |
Cancel | Interrupt the entire turn. |
Allow Session only covers the current session — a new session starts clean. There is no persistent always-allow list.
Input or choice — free-form question. Buttons are hidden; the composer takes text instead. A hint line shows the submit rules:
Input required: Which config file should we edit?production.yaml is the default.
Enter to submit · Type option number or text · Esc to cancelWhen options are offered, you can type the option number, the label, or (if the tool allows it) free text.
What the agent sees
Section titled “What the agent sees”Whatever you pick — Allow, Deny, typed input — becomes the tool-call result the agent reads on its next step. Deny is not an error; the agent sees a structured refusal and chooses what to do next (often falling back to a different approach).
Autonomous mode auto-denies
Section titled “Autonomous mode auto-denies”Under /auto (or any headless policy), the permission loop is bypassed. ask_user and tool-approval prompts alike auto-return deny so the agent can keep moving without a human. The agent sees the denial exactly as it would a real refusal and either picks a default or abandons the subtask.
Flip back to interactive at any time with /interactive. See Autonomy for policy details.
What if I miss the prompt?
Section titled “What if I miss the prompt?”The session browser (Ctrl+B) flags sessions awaiting you with badges: approval when a tool call is gated, input when the agent is waiting on text. The context bar shows awaiting … on the active session. Background sessions raise a flash notification when they land on a prompt so you can switch into them.
Prompts don’t time out — a session can sit in awaiting … indefinitely. If you resume a runtime that left a prompt hanging, it’s still there waiting.