Skip to content

Approvals and questions

Tool approvals, file-edit reviews, plans and questions in the desktop app, and the keys that answer them.

The agent waits until you answer. Which calls ask, the safelist and interaction modes: tool approvals. With the daemon on, you can answer from any window or from the TUI. The first answer wins.

Approve a tool call#

A bar above the composer shows the tool and its input, and names the sub-agent when one issued the call.

ButtonKeyDoes
Allow onceCommand ReturnRuns this call
Always allowCommand Shift ReturnRuns it and adds it to this project's safelist
DenyEscapeRefuses it. The agent gets the refusal.

Review a file edit#

edit, multi_edit and write_file open a review with the diff instead of the bar:

ButtonKeyDoes
AllowAApplies the edit
Allow for sessionSApplies it and stops asking for this tool until the session ends
Always allowPApplies it and adds it to the project's safelist
DenyD or EscapeRefuses it

An edit with several hunks lists each hunk with a checkbox. If you untick some, Allow becomes Apply selected (2 of 3). If you untick all, the button reads Allow (none selected) and is off, so use Deny. The agent gets the list of hunks that you applied and denied.

Answer a plan#

present_plan shows a plan card. This demo's buttons work.

Publish the v8 notes

Link docs/releases/v8.md from the changelog, tag v8.0.0 and open a pull request.

  1. 1.
    Link the notes from CHANGELOG.md
  2. 2.
    Tag v8.0.0
  3. 3.
    Open a pull request
ButtonDoes
ApproveThe agent carries out the plan
Revise…You say what to change. The agent comes back with a new plan.
Reject…Stops the run. A note tells the agent why.

Answer questions#

ask_user sends one or more questions in a form. Answer the required ones, then click Send answers.

4 questions
QuestionYou answer withRequired by default
SelectOne choiceYes
Select, multipleOne or more choices. The agent can tick some in advance.Yes
ConfirmYes or noYes
Text, text areaA line or a few paragraphsNo

Additional instructions, under the questions, adds to your answers or overrides them. Dismiss continues without answering. Settings › Agent › Defaults › Interaction mode decides whether the agent asks at all (interaction modes).

Where requests wait#

RequestShows in
Tool callThe bar above the composer
File editThe review dialog
Plan or questionThe Inbox tab of the side panel, with a highlighted badge in the composer that opens it (badges)

A new plan or question opens the Inbox tab, so you answer while reading the conversation. Older requests stack under the current one, folded to a line. A session with pending requests shows a count on its Inbox tab and a status dot in the sidebar.

The Inbox side panel with three pending questions from the agent.

Requests from a server#

A session on a saved server sends requests to your window the same way, and your answer goes back to the server. Removing the server drops its pending requests and closes its chats.

After a crash#

The app saves pending approvals on disk and shows them again at the next launch. The run that asked has ended, so your answer only clears the request. Always allow still adds the safelist entry. To revoke it, go to Settings › Agent › Approvals & safety › Safelisted commands.

Reference#