Confirmation: You Decide How Far It Goes
The outermost layer of the entire permission system is the Permission Mode — think of it as a master switch controlling Claude's overall behavior style.
Users can cycle through modes by pressing Shift+Tab; the status bar shows the current mode.
// src/utils/permissions/PermissionMode.ts
const PERMISSION_MODE_CONFIG = {
default: {
title: 'Default',
symbol: '', // No special marker
color: 'text',
},
acceptEdits: {
title: 'Accept edits',
symbol: '⏵⏵', // Fast-forward symbol — auto-approve
color: 'autoAccept',
},
plan: {
title: 'Plan Mode',
symbol: PAUSE_ICON, // Pause symbol — review before deciding
color: 'planMode',
},
bypassPermissions: {
title: 'Bypass Permissions',
symbol: '⏵⏵',
color: 'error', // Red warning
},
}
Five modes and their product meanings:
| Mode | User Experience | Best For |
|---|---|---|
| default | Every risky operation triggers a confirmation dialog | Day-to-day use, when uncertain |
| acceptEdits | File edits auto-approve; terminal commands still need confirmation | Trusting Claude's code changes but not its command execution |
| plan | Claude first lists a full plan; user approves once, then it auto-executes | Complex tasks where you want the full picture before deciding |
| bypassPermissions | No prompts at all, everything auto-executes | Automated scripts, CI environments, or when you fully trust Claude |
| auto (internal experiment) | An AI classifier automatically judges each operation's safety | Internal Anthropic testing — see Section V: Auto Mode AI Classifier |
Mode cycle order:
External users: default → acceptEdits → plan → bypassPermissions → default
Ant employees: default → bypassPermissions → auto → default
Ant employees skip acceptEdits and plan because auto mode replaces their function.