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:

ModeUser ExperienceBest For
defaultEvery risky operation triggers a confirmation dialogDay-to-day use, when uncertain
acceptEditsFile edits auto-approve; terminal commands still need confirmationTrusting Claude's code changes but not its command execution
planClaude first lists a full plan; user approves once, then it auto-executesComplex tasks where you want the full picture before deciding
bypassPermissionsNo prompts at all, everything auto-executesAutomated scripts, CI environments, or when you fully trust Claude
auto (internal experiment)An AI classifier automatically judges each operation's safetyInternal 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.