Issue #1024
Every time Claude Code wants to read a file, run a command, or write to disk, it asks for permission. For a first session on an unfamiliar project, that’s fine. But when you’re deep in a trusted codebase and clicking “Allow” for the twentieth time in five minutes, it becomes friction with no real benefit.
The --dangerously-skip-permissions flag turns all of that off. Claude gets to work without pausing to ask, and you stay focused on the task instead of the approval queue.
By default, Claude Code operates in a permission-gated mode. Before each tool call — reading a file, executing a shell command, editing code — it surfaces a prompt asking you to allow or deny the action. This gives you oversight over what Claude touches.
The --dangerously-skip-permissions flag disables these prompts entirely. Claude runs tools without waiting for your input, treating every action as pre-approved. Sessions feel more like working with a capable colleague than supervising an intern who needs sign-off on everything.
How to Use It
Pass the flag when starting a session:
claude --dangerously-skip-permissions
That’s the whole API. From that point on, the session runs uninterrupted.
Creating a claude yolo Alias
Typing --dangerously-skip-permissions every time is its own kind of friction. The natural instinct is to create a shell alias:
alias "claude yolo"='claude --dangerously-skip-permissions'
This won’t work. When you type claude yolo in your terminal, zsh sees claude as the command and yolo as an argument — it never looks up an alias with a space in the name. Quoted aliases are defined but never matched.
The fix is a wrapper function. Instead of aliasing the command, you override it:
claude() {
if [[ "$1" == "yolo" ]]; then
command claude --dangerously-skip-permissions "${@:2}"
else
command claude "$@"
fi
}
Add this to your ~/.zshrc, then run source ~/.zshrc. Now claude yolo works exactly as expected. The command keyword ensures the function calls the real claude binary rather than calling itself recursively. Any additional arguments you pass after yolo are forwarded with "${@:2}".
For everything else, claude continues to behave normally.
Start the conversation