Approvals & Questions
The agent never does something consequential behind your back. When it wants to run a tool that needs your OK, or needs a decision from you, it stops and shows a card in the chat.
Approval cards
An approval card names the call ("Merge myapp-a1b2c3 via merge"), lists its arguments, and offers:
- Deny — the agent is told you said no, and carries on or asks you what to do.
- Allow once — run this call.
- Allow for this chat — in the Allow once menu: allow this tool for the rest of the chat. xpo keeps the grant with the chat; it never writes to your agent's own settings.
The waiting card takes focus, so Enter allows once and Esc denies. Cards with a long command or many arguments open collapsed; click the title to see the details. Cards never take focus from a field you're typing in.
What asks depends on the mode: start in Chat Mode; merge, and edits outside the worktree, in Work Mode; web fetches in both. If the turn is cancelled, its cards read "Cancelled"; a card whose turn ended reads "Expired".
Question cards
When the agent needs a decision, it asks with a question card instead of a wall of text. One question shows at a time:
- Pick an option (or several, when allowed), or type your own under Other…. A single pick moves on by itself.
- Tabs at the top list the questions, with a ✓ for each one you answered, and a Review tab shows all your answers before you Submit answers.
- Chat about this skips the card and tells the agent to wait for your message instead.
With the card focused, 1–9 pick an option, ← / → switch questions, and Enter presses Next. The thread keeps each question with your answer.
Question cards work with Claude Code.
Seeing when the agent waits
You don't need to watch the chat. A chat waiting on you shows a yellow dot in the status bar and the chat lists, and the browser tab's icon gets an amber dot. Turn on desktop notifications with the bell in the Agent view's header to get "Agent needs your input" while the tab is in the background. See Chat History.