Claude Code is an agent that edits real files and runs real commands on your machine. That is powerful, and it is exactly why it stops and asks before it does anything that changes your system.
When Claude wants to write to a file or run a shell command, the console pauses and shows you what it is about to do: the file and the diff, or the exact command. Nothing happens until you answer. You get three choices:
| Choice | What it does |
|---|---|
| Approve once | Run this one action now, ask again next time |
| Approve and don't ask again | Run it now and stop prompting for this kind of action |
| Reject with feedback | Cancel the action and tell Claude what to do instead |
The third option is the one people forget. Rejecting is not the end of the conversation - you can type why, and Claude adjusts and tries a different approach.
A chat model can only suggest text. An agent can delete a file, force-push a branch, or run a command that touches production. The human gate is what keeps a fast, confident agent from doing something irreversible while you were not looking. You stay the one who decides what actually runs.
Inside the console, run /permissions to see the current rules: what Claude
may do without asking, and what it may never do. You can view and edit those
rules right there.
/permissions
As you approve "don't ask again" choices, they get recorded as rules here, so the console asks less over time while still respecting the limits you set.
Next, the four permission modes and how to pick one.
Your lab setup
This VM comes with Claude Code preinstalled and signed in - just run claude to start.