Skip to content
Build Perch
Browse documentation

The approval system

Short answer: Before the AI does anything beyond a safe read, a banner shows exactly what’s about to run and asks you to Allow, Deny, or reply with pushback. You choose how much it can skip asking about, but that choice resets to the cautious default every time you restart the app.

What are the auto-approval tiers

The Approvals pill next to the Mode pill in the chat toolbar opens a small popover with an auto-approval tier selector and a file-delete checkbox, both session-only. The three tiers:

  • Always ask: every tool call gets a banner, no exceptions.
  • Reads only: the default on a fresh session. Calls that only read (files, cards, past chats, and similar) skip the banner; anything that writes, deletes, or reaches outside the app still asks.
  • All tools: skips the banner for everything except the handful of actions that can never auto-approve (see What can never auto-approve).

A separate “Auto-approve file deletes” checkbox in the same popover only does anything at the All tools tier; at the other two, a delete already needs a banner regardless of the toggle. It’s off by default.

What happens when the AI needs your OK

A banner titled “Permission Needed” lists each pending call with an icon and a plain-language description, an optional “Show full details” section with the raw arguments, and (when the model supplied one) a line labelled “AI’s stated reason.” Three responses are available:

  • Allow: the call runs.
  • Deny: it doesn’t, and the auto-approve tier drops back to Always ask for the rest of the session.
  • Reply: type feedback instead of a bare refusal (“don’t touch that file, do X instead”). It’s treated as a denial: your text becomes a visible message in the chat, and the AI reads it on its next turn. This also drops the tier to Always ask.

What does “leaves your machine” mean

Any call that sends something outside the app (an email, a Discord post, a Notion write) gets an always-visible ”⚠ LEAVES YOUR MACHINE” card on the banner: the destination, a preview of the subject or body, and any attachments, shown before you approve anything. These calls run under a stricter rule than the tiers above them; see What can never auto-approve for the details.

Why do my approval settings reset every time I open the app

The tier and the delete toggle live in memory for that session only; they’re never written to disk or to your settings. Quitting and relaunching Build Perch always starts back at Reads only, deletes off. That’s deliberate: quietly carrying “approve everything” across restarts would turn a one-time convenience into a standing risk.