Skip to content

Claude Code Permission Modes 全解析:從預設到 Auto Mode 的五種權限模式

2026年3月16日 1 分鐘
TL;DR Claude Code 有五種權限模式:default(逐步確認)、acceptEdits(自動接受編輯)、plan(唯讀規劃)、auto(AI classifier 背景審查)、bypassPermissions(YOLO 全跳過)。用 Shift+Tab 切換,搭配 settings.json 精細控制。auto mode 是最佳平衡點——既不用每步確認,又有安全防護。
目錄
  1. TL;DR
  2. 五種模式一覽
  3. 切換方式
    1. 在 session 中切換
    2. 啟動時指定
    3. 設為預設
  4. Plan Mode:先規劃再動手
    1. 使用方式
    2. 規劃完成後
  5. Auto Mode:最佳平衡點
    1. 運作原理
    2. Classifier 預設阻擋什麼
    3. 自訂 Classifier 規則
    4. Fallback 機制
    5. 對子代理的處理
  6. bypassPermissions(YOLO Mode)
    1. 風險定位變了
    2. 繞過什麼
    3. 真實事故
    4. 三種安全等級
    5. YOLO vs Auto Mode
  7. dontAsk Mode:只允許白名單
  8. 搭配 settings.json 精細控制
  9. 模式比較總表
  10. 參考資料
  11. 更新紀錄

🌏 English version

正規的分級做法(各種權限模式與 auto mode 設定)看 Permissions 與 auto mode 那篇;這篇講的是你還是決定繞過時的代價。

TL;DR

Claude Code 有五種權限模式,從最安全到最自由:plan(唯讀)→ default(逐步確認)→ acceptEdits(自動接受編輯)→ auto(AI classifier 審查)→ bypassPermissions(YOLO 全跳過)。大多數場景用 auto mode 就夠了——它用背景 classifier 自動判斷安全性,遇到危險操作才阻擋。自 2026 年 W32 起,Pro/Max/Team 方案的互動 session 預設就從 auto mode 開始。


五種模式一覽

模式Claude 可以不問你就做什麼適合場景
default讀檔案初次使用、敏感操作
acceptEdits讀寫檔案快速迭代開發
plan讀檔案(不能改)探索 codebase、規劃重構
auto所有操作(有背景安全檢查)長時間任務、減少 prompt 疲勞
bypassPermissions所有操作(無任何檢查)Docker / VM 隔離環境限定
dontAsk只有預先批准的工具鎖定環境、CI pipeline

切換方式

在 session 中切換

CLI 裡按 Shift+Tab 循環切換:defaultacceptEditsplanauto 在你的帳號符合資格時會排在 plan 後面一起循環;bypassPermissions 要用旗標啟動過才會出現在循環裡,dontAsk 則永遠不在循環中,只能用 --permission-mode dontAsk 指定。

VS Code 和 Desktop 直接點擊輸入框旁的模式選擇器。

啟動時指定

claude --permission-mode plan
claude --permission-mode auto

設為預設

// .claude/settings.json
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

Plan Mode:先規劃再動手

Plan mode 讓 Claude 只讀不寫——分析 codebase、提出方案,但不改你的 source code。

使用方式

# 整個 session 進入 plan mode
claude --permission-mode plan

# 或單次請求加 /plan 前綴
/plan 重構 authentication 模組,給我遷移計畫

規劃完成後

Claude 提出計畫後會問你怎麼做:

  • Yes, and use auto mode — 核准計畫,直接用 auto mode 執行(auto mode 不可用時這個選項變成自動接受編輯)
  • Yes, manually approve edits — 核准後逐步審查每個編輯
  • No, keep planning — 留在 plan mode 繼續修改計畫

適合多步驟實作前先看清全貌:

我要把認證系統從 JWT 換成 OAuth2。
先分析現有實作,給我完整的遷移計畫。

Auto Mode:最佳平衡點

Auto mode 是 bypassPermissions(YOLO)的安全替代方案。它用一個獨立的 classifier 模型在背景審查每個操作,判斷是否安全。

現在所有方案都能用(模型需 Opus 4.6 / Sonnet 4.6 以上,或 Fable 5)。Team/Enterprise 預設開啟,Admin 可在 managed settings 用 disableAutoMode 關閉。自 W32 起,Pro/Max/Team 的互動 session 預設就從 auto mode 起始(CLI v2.1.228+;claude -p 與 Agent SDK 不受影響,仍從 default 開始)。

運作原理

每個操作依照固定順序判斷:

  1. 你的 allow/deny 規則 → 直接通過或阻擋
  2. 唯讀操作和工作目錄內的檔案編輯 → 自動通過
  3. 其他全部 → 送給 classifier 判斷
  4. Classifier 阻擋 → Claude 收到原因,嘗試替代方案

Classifier 預設阻擋什麼

會阻擋

  • 下載並執行程式碼(curl | bash
  • 發送敏感資料到外部
  • 生產環境部署和 migration
  • 雲端儲存的大量刪除
  • 授予 IAM / repo 權限
  • 修改共享基礎設施
  • Force push、改寫遠端歷史
  • 破壞性 git 操作:git reset --hardgit checkout -- .git clean -fd、刪除 stash(視為丟棄未 commit 的變更)

會放行

  • 工作目錄內的檔案操作
  • 安裝 lock file 中已宣告的依賴
  • 讀取 .env 並發送 credentials 到對應 API
  • 唯讀 HTTP 請求
  • Push 到你工作 repo 的任何分支(v2.1.211 起含 default branch;名稱指向部署目標的分支如 productiongh-pages 除外)

自訂 Classifier 規則

如果 classifier 阻擋了你團隊的正常操作(push 到自家 org 的 repo、寫入公司 bucket),在 managed settings 中加入 autoMode.environment 告訴 classifier 這些是可信的。

Fallback 機制

Classifier 連續阻擋 3 次或累計阻擋 20 次 → auto mode 暫停,恢復手動確認。你確認後重置計數器,繼續用 auto mode。

對子代理的處理

  • 子代理啟動前:classifier 審查任務描述
  • 子代理執行中:同樣的 block/allow 規則
  • 子代理完成後:classifier 複查整個操作歷史

bypassPermissions(YOLO Mode)

--dangerously-skip-permissions 等同於 --permission-mode bypassPermissions

claude --dangerously-skip-permissions "Fix all lint errors"
claude --permission-mode bypassPermissions "Fix all lint errors"

風險定位變了

寫這篇時,手動核准還是唯一的防線;現在 auto mode 是 Pro/Max/Team 互動 session 的預設模式,一般 session 本來就有背景 classifier 把關。bypassPermissions 的意義因此從「少掉幾次確認」變成「連這層分類器都整個跳過」——你拿掉的是預設就在的那道安全網。

繞過什麼

  • 所有權限提示
  • 指令黑名單(curlwget 等解禁)
  • 寫入限制(不限於工作目錄)
  • MCP server 信任驗證
  • 子代理繼承完整權限,無法覆蓋

真實事故

有人請 Claude 清理專案中多餘的套件,結果執行了 rm -rf tests/ patches/ plan/ ~/——結尾的 ~/ 把整個 home 目錄刪了。eesel AI 研究顯示,32% 使用 YOLO 模式的開發者遇過非預期的檔案修改,9% 發生過資料遺失。

三種安全等級

等級一:git checkpoint

git add -A && git commit -m "Checkpoint pre-Claude"
claude --dangerously-skip-permissions "Refactor all API handlers"
# 出問題時
git reset --hard HEAD

等級二:限制危險工具

claude --dangerously-skip-permissions \
  --disallowedTools "Bash(rm:*),Bash(curl:*),Bash(wget:*)" \
  "Refactor all API handlers"

等級三:Docker 隔離(最安全)

docker run --rm \
  --network none \
  -v $(pwd):/workspace \
  my-dev-container \
  claude --dangerously-skip-permissions "Fix all lint errors"

YOLO vs Auto Mode

Auto ModeYOLO Mode
安全檢查Classifier 背景審查
Prompt injection 防護有(classifier 獨立於主對話)
Token 消耗較高(classifier 呼叫)標準
需要所有方案(模型有限制)任何 plan
子代理控制有(spawn 前/後都審查)

結論:能用 auto mode 就別用 YOLO。 真的需要 YOLO,跑在 Docker 裡。


dontAsk Mode:只允許白名單

dontAsk 自動拒絕所有未明確允許的工具。適合 CI pipeline 或限制環境:

claude --permission-mode dontAsk

搭配 settings.json 精確控制:

{
  "permissions": {
    "allow": [
      "Read",
      "Write(src/**)",
      "Bash(npm test)",
      "Bash(npm run lint)"
    ]
  }
}

搭配 settings.json 精細控制

不管用哪種模式,都可以用 permissions 設定疊加精細規則:

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Read",
      "Write(src/**)",
      "Bash(git *)",
      "Bash(npm *)",
      "Bash(tsc:*)"
    ],
    "deny": [
      "Read(.env*)",
      "Write(production.config.*)",
      "Bash(rm *)",
      "Bash(sudo *)"
    ]
  }
}

這份設定可以 commit 進 repo,讓團隊共用安全基準。個人設定用 .claude/settings.local.json 覆蓋。


模式比較總表

defaultacceptEditsautodontAskbypassPermissions
權限提示編輯+指令只有指令無(除非 fallback)無(未允許的直接拒絕)
安全檢查你自己審查你審查指令Classifier 審查你的白名單規則
Token 消耗標準標準較高標準標準

參考資料

更新紀錄

  • 2026-08-26:刷新——補 auto mode(現為 Pro/Max/Team 預設權限模式)後的風險對比與系列互鏈。