An agent stops and waits for you in three situations: it wants permission to
run a tool, it asks you a question, or a script running inside it calls
tori ask. In all three the chat turns needs you: its status strip reads
Waiting for approval, its tab and sidebar row turn rose, and Tori sends a
notification if you are looking somewhere else.
Find what is waiting
- Press
Cmd+Shift+Ato jump to the next session that is waiting on you, wherever it is. Press it again for the one after. - Click a needs you notification to land on that chat.
- Open the Inbox (
Cmd+Shift+X) on its Needs you tab for everything that needed you in the last day, answered or not. A row still waiting opens its chat at the prompt. See The Inbox. - Open the Inbox on its Permissions tab to answer every prompt waiting right now, with one answer for workers asking for the same command. See Answer one command for every worker.
- In the sidebar, a rose dot on a branch or project rolls up from the sessions under it, and the space tile shows it too when you are in another space.
A notification is taken down by itself once its session moves on, so an old one never leads you to something already answered.
Answer a permission prompt
The prompt sits on the tool call it is about, inside the transcript, so you can read what led to it. It asks in a sentence:
- Run
pnpm test webhooksin this workspace? for a shell command. - Allow
Editonsrc/webhooks/sign.ts? for any other tool.
Click Show the full arguments to read exactly what the tool would be called with before you decide. The sentence is a summary; the arguments are what will actually run.
Then pick an answer:
| Answer | What it does |
|---|---|
| Allow once | Runs this one call |
| Allow for this session | Runs it, and lets this chat make the same kind of call again without asking |
| Always in this project | Runs it, and records a rule so every session in this project may make this call |
| Deny | Refuses the call. The agent is told it was denied |
| Deny with feedback | Refuses the call and tells the agent why |
Allow for this session and Always in this project are remembered by the agent, in its own settings and its own format. Tori keeps no list of rules of its own, so what you allowed shows up in Claude’s settings file exactly as if you had answered in Claude’s terminal interface. The rule is the one Claude suggests, which can reach further than the exact command it asked about.
Where Claude keeps an Always in this project rule depends on how the
project is laid out. In a regular clone, a rule allowed from any of its
worktrees goes into the main checkout’s .claude/settings.local.json, and
every worktree of that clone uses it. In a project kept as a bare repository
with its worktrees beside it, the rule goes into the worktree that asked, and
the other worktrees still ask.
On Codex, OpenCode and the other agents that are not Claude, the answer is picked from what the agent offered. Always in this project sends the agent’s own allow always answer, and the agent remembers it in its own config, its own way. Allow once and Allow for this session send its allow once answer, since these agents have no answer for a session. When the agent offered only one kind of allow, that one is sent.
Deny with feedback
Use this to redirect the agent rather than just stop it: “not that file, use the fixture”, “run the unit tests only”.
- Click Deny with feedback.
- Type why, and what to do instead.
- Press
Enteror Send denial.Shift+Enteradds a line, and Back returns to the buttons.
Your text reaches the agent as the result of the tool call, so it reads it before deciding what to do next. The turn carries on with your correction.
Mode switches the agent offers
Some prompts carry an offer from the agent itself, shown after the five answers, such as Switch to accepting edits. Clicking it changes the chat’s permission mode from the next turn, so the agent stops asking about this kind of call.
While a prompt is open
The agent is stopped on the question, so a steer is refused until you answer: Session is waiting for permission, answer it first. Messages you queue still wait in the queue, and so do hunk comments you send to it.
If the prompt came from a subagent that you are not watching, it shows in the main transcript too, with Read what this subagent is doing to jump to its lane. See Subagents and background work.
Answer one command for every worker
When several workers ask for the same thing, say four chats each asking to run
pnpm test, answer them together from the Inbox’s Permissions tab instead
of chat by chat. One Always allow for all answers each prompt with
Always in this project, through its own agent. See
Permissions.
Answer a question
Claude can ask you structured questions in the middle of a turn: which approach to take, which files to include. They appear in the transcript as a form headed The agent asked a question (or some questions).
- For each question, pick one option, or several where the question allows it. An option can show a worked example under it once picked.
- If none of the options fit, type your own answer in Other. You can pick options and type at the same time.
- Press Send answers, or
Enterin an Other box.Shift+Enteradds a line.
Send answers stays greyed until every question has an answer, and a line beside it says what is missing. There is no time limit: the agent waits as long as you take.
Once answered, the card keeps your answers on show and is marked Answered. A question that was closed without an answer is marked Not answered and dimmed. In a chat reopened from history the cards are read only.
A question from a subagent says from a subagent, and appears in main as well when you are not reading its lane.
Only Claude asks questions this way today. The other agents have no way to put a question to you mid-turn.
Answer a tori ask
A program running in one of Tori’s shells, or an agent using
Tori’s MCP server, can ask you something with
tori ask. The question appears as a card above the composer of the chat
that asked it, with a needs you dot and a notification.
- If the question came with options, click one.
- Otherwise type your answer in the box and press
Enteror Answer.
When the question comes from another session, a worker that the chat spawned, the card starts with that session’s name, for example Retry worker asks:. The chat that spawned it can answer on your behalf; you can answer it yourself from the card at any time.
An Autopilot approval arrives the same way, with the full draft on the card: the pull request’s title, branches and body, the review’s verdict and line comments, or the merge’s method and commit. See Approvals.
The plan above the composer
When an agent publishes a todo list for its work, it is pinned above the composer instead of being repeated in the transcript every time it changes. The card shows each step with a circle for pending, a spinner for the one in progress and a check when done, and the header shows how many are done, like 3/7, and the step in progress.
Click the header to fold the plan into a small 3/7 pill on the composer’s edge; hover the pill to see the list, click it to open the card again. Every agent that publishes a plan gets one; Codex and the other ACP agents do.