Permission request
Also called Approval prompt · Permission prompt
The harness pausing before a risky tool call to ask you yes or no; the simplest human-in-the-loop gate there is.
A permission request is the harness stopping before a tool call and asking you to approve it. The model has already decided what it wants to do (edit this file, run this command, hit this URL); the request shows you the exact action and waits. Approve and the call runs; deny and the model gets a tool result saying it was refused, and usually tries another route. Which calls trigger a request is set by the permission mode.
This is the cheapest human-in-the-loop mechanism there is, and also the easiest to wear out. Early in a project you read every prompt carefully. Forty prompts later you are hitting Enter without looking, which is exactly when the agent runs the migration against the wrong database. Approval fatigue turns a safety feature into a ritual. The opposite failure is also common: a session left running AFK sits on a permission request for an hour because nobody was there to answer.
Use requests for the calls that are genuinely hard to undo, and pre-approve the rest. Most harnesses let you allowlist specific commands (npm test, git status, formatters) and specific paths so that routine work flows and only the dangerous calls stop you. For unattended runs, decide up front: either run in a sandbox with broad permissions, or restrict the agent to actions that don't need asking.
- Claude CodeRequests appear inline with yes, yes-and-don't-ask-again, or no;
/permissionsmanages the allow and deny lists. - CodexCommands outside the sandbox raise an approval in the thread; the approval policy sets how often that happens.
- Claude CoworkFile writes and connector actions surface as approvals in the task view.
“It stopped again. It wants to run rm -rf dist.”
“That's the permission request doing its job. Approve it once, then allowlist that exact command if it's part of the build.”
“And keep the prompt for anything touching .env?”
Course 01 puts every one of these terms to work: you install Claude Code, run the loop, and ship a real project — permission modes, compaction, hooks and all.
Start Course 01 →