SpyBara
Go Premium

permission-modes.md 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

This page contains 16 additions and 10 deletions.

2026
Wed 10 23:57 Wed 17 17:02 Tue 23 22:00 Thu 25 23:58 Tue 30 23:02

選擇權限模式

控制 Claude 是否在編輯檔案或執行命令前詢問。在 CLI 中使用 Shift+Tab 循環模式,或在 VS Code、Desktop 和 claude.ai 中使用模式選擇器。

當 Claude 想要編輯檔案、執行 shell 命令或進行網路請求時,它會暫停並要求您批准該操作。權限模式控制該暫停發生的頻率。您選擇的模式塑造了會話的流程:預設模式讓您在操作進行時審查每個操作,而較寬鬆的模式讓 Claude 在較長的不間斷時間內工作並在完成時報告。對敏感工作選擇更多監督,或在您信任方向時選擇較少中斷。

可用模式

每種模式在便利性和監督之間進行不同的權衡。下表顯示在每種模式中 Claude 無需權限提示即可執行的操作。

模式 無需詢問即可執行的操作 最適合
default 僅讀取 入門、敏感工作
acceptEdits 讀取、檔案編輯和常見檔案系統命令(mkdir、touch、mv、cp 等) 迭代您正在審查的程式碼
plan 僅讀取 在變更前探索程式碼庫
auto 所有操作,具有背景安全檢查 長時間執行的任務、減少提示疲勞
dontAsk 僅預先批准的工具 鎖定的 CI 和指令碼
bypassPermissions 所有操作 隔離容器和 VM 僅

在除 bypassPermissions 外的每種模式中,寫入受保護路徑永遠不會自動批准,保護倉庫狀態和 Claude 自己的配置免受意外損壞。

模式設定基線。在頂部分層權限規則以預先批准或阻止特定工具。拒絕規則和明確詢問規則適用於每種模式,包括 bypassPermissions。允許規則在該模式中無效,因為其他所有操作都已經被批准。

切換權限模式

您可以在會話期間、啟動時或作為持久預設值切換模式。模式通過這些控制設定,而不是通過在聊天中詢問 Claude。選擇下面的您的介面以查看如何變更它。

在會話期間:按 Shift+Tab 循環 default → acceptEdits → plan。目前模式出現在狀態欄中。並非每種模式都在預設循環中:

  • auto:當您的帳戶符合 auto 模式要求時出現;循環到 auto 會顯示選擇加入提示,直到您接受它,或選擇否,不要再問以從循環中移除 auto
  • bypassPermissions:在您使用 --permission-mode bypassPermissions、--dangerously-skip-permissions 或 --allow-dangerously-skip-permissions 啟動後出現;--allow- 變體將模式添加到循環中而不啟動它
  • dontAsk:永遠不在循環中出現;使用 --permission-mode dontAsk 設定它

啟用的可選模式在 plan 後插入,bypassPermissions 優先,auto 最後。如果您同時啟用了兩者,您將在前往 auto 的途中循環通過 bypassPermissions。

啟動時:將模式作為標誌傳遞。

claude --permission-mode plan

作為預設值:在設定中設定 defaultMode。

{
"permissions": {
"defaultMode": "acceptEdits"
}
}

相同的 --permission-mode 標誌適用於 -p 用於非互動式執行。

使用 acceptEdits 模式自動批准檔案編輯

acceptEdits 模式讓 Claude 在您的工作目錄中建立和編輯檔案而不提示。狀態欄顯示 ⏵⏵ accept edits on 當此模式處於活動狀態時。

除了檔案編輯外,acceptEdits 模式自動批准常見的檔案系統 Bash 命令:mkdir、touch、rm、rmdir、mv、cp 和 sed。這些命令在以安全環境變數(如 LANG=C 或 NO_COLOR=1)或流程包裝器(如 timeout、nice 或 nohup)為前綴時也會自動批准。與檔案編輯一樣,自動批准僅適用於您的工作目錄或 additionalDirectories 內的路徑。該範圍外的路徑、寫入受保護路徑和所有其他 Bash 命令仍然提示。

當啟用 PowerShell tool 時,acceptEdits 模式也會自動批准 Set-Content、Add-Content、Clear-Content 和 Remove-Item 在範圍內的路徑上,以及它們的常見別名。相同的範圍和受保護路徑規則適用。

當您想在編輯器中或通過 git diff 之後審查變更而不是在線批准每個編輯時,使用 acceptEdits。從預設模式按 Shift+Tab 一次進入它,或直接啟動它:

claude --permission-mode acceptEdits

使用 plan mode 在編輯前分析

Plan mode 告訴 Claude 研究和提議變更而不進行變更。Claude 讀取檔案、執行 shell 命令進行探索,並寫入計劃,但不編輯您的原始程式碼。權限提示的應用方式與預設模式相同。

通過按 Shift+Tab 或在單個提示前加上 /plan 進入 plan mode。您也可以從 CLI 啟動 plan mode:

claude --permission-mode plan

再次按 Shift+Tab 離開 plan mode 而不批准計劃。

審查並批准計劃

當計劃準備好時,Claude 呈現它並詢問如何進行。從該提示您可以:

  • 批准並在 auto mode 中啟動
  • 批准並接受編輯
  • 批准並手動審查每個編輯
  • 繼續規劃並提供反饋
  • 使用 Ultraplan 進行基於瀏覽器的審查進行細化

批准計劃會退出 plan mode 並將工作階段切換到每個批准選項描述的權限模式,因此 Claude 開始編輯。若要再次規劃,使用 Shift+Tab 循環回到 plan mode,或在您的下一個提示前加上 /plan。

按 Ctrl+G 在您的預設文字編輯器中開啟提議的計劃並在 Claude 繼續之前直接編輯它。當啟用 showClearContextOnPlanAccept 時,每個批准選項也提供首先清除規劃上下文的選項。

接受計劃也會根據計劃內容自動命名工作階段,除非您已經使用 --name 或 /rename 設定了名稱。

將 plan mode 設定為預設值

若要將 plan mode 設定為專案的預設值,請在 .claude/settings.json 中設定 defaultMode:

{
  "permissions": {
    "defaultMode": "plan"
  }
}

使用 auto mode 消除提示

Auto mode 讓 Claude 執行而不顯示例行權限提示。單獨的分類器模型在執行前審查操作,阻止任何超出您要求的操作、針對無法識別的基礎設施的操作,或似乎由 Claude 讀到的敵對內容驅動的操作。明確的詢問規則仍然會強制提示。

Auto mode 也指示 Claude 繼續工作而不停止以提出澄清問題,儘管當您的提示或技能明確依賴它時,Claude 仍然會提問。若要在保持權限提示的情況下獲得更強的自主行為,請改為設定主動輸出風格。

Auto mode 僅在您的帳戶符合所有這些要求時可用:

  • 計劃:所有計劃。
  • 管理員:在 Team 和 Enterprise 上,管理員必須在 Claude Code 管理設定中啟用它,使用者才能打開它。管理員也可以通過在受管設定中將 permissions.disableAutoMode 設定為 "disable" 來鎖定它。
  • 模型:在 Anthropic API 上,Claude Opus 4.6 或更新版本,或 Sonnet 4.6。在 Amazon Bedrock、Google Cloud Vertex AI 和 Microsoft Foundry 上,僅支援 Claude Opus 4.7 和 Opus 4.8。不支援較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不支援。
  • 提供商:在 Anthropic API 上預設可用。在 Amazon Bedrock、Google Cloud Vertex AI 和 Microsoft Foundry 上,auto mode 關閉,直到您設定 CLAUDE_CODE_ENABLE_AUTO_MODE。

如果 Claude Code 報告 auto mode 不可用,其中一項要求未滿足;這不是暫時性中斷。單獨的訊息命名模型並說 auto mode「無法確定」操作的安全性是暫時性分類器中斷;請參閱錯誤參考。

如果您在設定中設定 defaultMode: "auto" 並且會話以 default 模式啟動且沒有錯誤,該設定可能在 .claude/settings.json 或 .claude/settings.local.json 中。Claude Code v2.1.142 及更新版本忽略來自這些檔案的 auto,因此倉庫無法授予自己 auto mode。將其移至 ~/.claude/settings.json。

在 Bedrock、Vertex AI 或 Foundry 上啟用 auto mode

在 Amazon Bedrock、Google Cloud Vertex AI 和 Microsoft Foundry 上,auto mode 不會出現在 Shift+Tab 循環中,直到 CLAUDE_CODE_ENABLE_AUTO_MODE 設定為 1。該變數在 Claude Code v2.1.158 及更新版本中有效。這些提供商上僅支援 Claude Opus 4.7 和 Opus 4.8。

若要為一個開發人員啟用它,請將變數添加到 ~/.claude/settings.json 中的 env 區塊:

{
  "env": {
    "CLAUDE_CODE_ENABLE_AUTO_MODE": "1"
  }
}

若要為您的組織啟用它,請將相同的 env 區塊添加到受管設定。

設定變數後,auto mode 會出現在每個會話的 Shift+Tab 循環中。若要使其成為預設啟動模式,也請在使用者或受管設定中設定 "permissions": {"defaultMode": "auto"}。在這些提供商上,Claude Code 忽略 defaultMode: "auto",除非也設定了 CLAUDE_CODE_ENABLE_AUTO_MODE。

若要防止開發人員啟用 auto mode,請在受管設定中將 disableAutoMode 設定為 "disable"。這會覆蓋啟用變數。

如果您通過配置了 ANTHROPIC_BASE_URL 的 LLM gateway 連接,auto mode 可能已經可以在沒有啟用變數的情況下到達,因為網關通過 Anthropic API 路由請求。disableAutoMode 設定在該配置中以相同方式應用。

分類器預設阻止的內容

分類器信任您的工作目錄和您的倉庫配置的遠端。其他所有內容都被視為外部,直到您配置受信任的基礎設施。

預設阻止:

  • 下載和執行程式碼,如 curl | bash
  • 將敏感資料發送到外部端點
  • 生產部署和遷移
  • 雲端儲存上的大量刪除
  • 授予 IAM 或倉庫權限
  • 修改共享基礎設施
  • 不可逆轉地銷毀會話開始前存在的檔案
  • 強制推送或直接推送到 main

預設允許:

  • 工作目錄中的本地檔案操作
  • 安裝在您的鎖定檔案或清單中聲明的依賴項
  • 讀取 .env 並將認證發送到其匹配的 API
  • 唯讀 HTTP 請求
  • 推送到您啟動的分支或 Claude 建立的分支

沙箱網路存取請求通過分類器路由,而不是預設允許。執行 claude auto-mode defaults 以查看完整規則列表。如果例行操作被阻止,管理員可以通過 autoMode.environment 設定添加受信任的倉庫、儲存桶和服務:請參閱配置 auto mode。

您在對話中陳述的邊界

分類器將您在對話中陳述的邊界視為阻止信號。如果您告訴 Claude「不要推送」或「在我審查前等待再部署」,分類器阻止匹配的操作,即使預設規則會允許它們。邊界保持有效,直到您在稍後的訊息中解除它。Claude 自己的判斷條件已滿足不會解除它。

邊界不作為規則儲存。分類器在每次檢查時從記錄中重新讀取它們,因此如果上下文壓縮移除陳述邊界的訊息,邊界可能會丟失。為了硬保證,請改為添加拒絕規則。

當 auto mode 回退時

每個被拒絕的操作顯示通知並出現在 /permissions 下的「最近拒絕」標籤中,您可以按 r 使用手動批准重試它。

如果分類器連續 3 次或總共 20 次阻止操作,auto mode 暫停,Claude Code 恢復提示。批准提示的操作恢復 auto mode。這些閾值不可配置。任何允許的操作重置連續計數器,而總計數器在會話期間持續,僅在其自己的限制觸發回退時重置。

在非互動式模式中使用 -p 標誌,重複阻止中止會話,因為沒有使用者可以提示。

重複阻止通常意味著分類器缺少有關您的基礎設施的上下文。使用 /feedback 報告誤報,或讓管理員配置受信任的基礎設施。

每個操作都經過固定的決策順序。第一個匹配的步驟獲勝:
1. 與您的[允許或拒絕規則](/anthropic/claude-code/history/docs/zh-TW/2026-06-16-2157..2026-06-17-1702/permissions/#manage-permissions)相符的操作立即解決,除了寫入[受保護路徑](#protected-paths),即使允許規則相符也會路由到分類器
2. 唯讀操作和工作目錄中的檔案編輯自動批准,除了寫入[受保護路徑](#protected-paths)
3. 其他所有內容都發送到分類器
4. 如果分類器阻止,Claude 接收原因並嘗試替代方法

進入 auto mode 時,授予任意程式碼執行的廣泛允許規則被刪除:

* 全面 `Bash(*)` 或 `PowerShell(*)`
* 通配符解釋器,如 `Bash(python*)`
* 套件管理器執行命令
* `Agent` 允許規則

像 `Bash(npm test)` 這樣的狹義規則保留。刪除的規則在您離開 auto mode 時恢復。

分類器看到使用者訊息、工具呼叫和您的 CLAUDE.md 內容。工具結果被剝離,因此檔案或網頁中的敵對內容無法直接操縱它。單獨的伺服器端探針掃描傳入的工具結果並在 Claude 讀取前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱 [auto mode 公告](https://claude.com/blog/auto-mode)和[工程深度探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。
Auto mode 如何處理子代理

分類器在三個點檢查子代理工作:

  1. 在子代理啟動前,委派的任務描述被評估,因此看起來危險的任務在生成時被阻止。
  2. 當子代理執行時,它的每個操作都通過分類器,使用與父會話相同的規則,子代理前置事項中的任何 permissionMode 都被忽略。
  3. 當子代理完成時,分類器審查其完整操作歷史;如果該返回檢查標記了一個問題,安全警告被添加到子代理結果前面。

步驟 1 需要 Claude Code v2.1.178 或更新版本。較早的版本在步驟 2 和 3 應用分類器,但在子代理啟動前沒有評估任務描述。

成本和延遲

分類器在伺服器配置的模型上執行,獨立於您的 /model 選擇,因此切換模型不會改變分類器可用性。分類器呼叫計入您的令牌使用量。每次檢查發送記錄的一部分加上待處理操作,在執行前添加往返。工作目錄外受保護路徑的讀取和編輯跳過分類器,因此開銷主要來自 shell 命令和網路操作。

使用 dontAsk 模式僅允許預先批准的工具

dontAsk 模式自動拒絕每個否則會提示的工具呼叫。僅與您的 permissions.allow 規則和唯讀 Bash 命令相符的操作可以執行;明確的 ask 規則被拒絕而不是提示。這使模式完全非互動式,適合 CI 管道或受限環境,您可以在其中預先定義 Claude 可能執行的操作。Cloud 工作階段在 Claude Code on the web 上忽略 defaultMode: "dontAsk";詳見 bypassPermissions 以了解詳情。

在啟動時使用標誌設定它:

claude --permission-mode dontAsk

使用 bypassPermissions 模式跳過所有檢查

bypassPermissions 模式禁用權限提示和安全檢查,因此工具呼叫立即執行。自 v2.1.126 起,這包括寫入受保護路徑,較早版本仍會提示。明確的詢問規則仍會在此模式中強制提示,針對檔案系統根目錄或主目錄的移除操作,例如 rm -rf / 和 rm -rf ~,仍會作為針對模型錯誤的斷路器而提示。僅在隔離環境(如容器、VM 或 dev container)中使用此模式,沒有網際網路存取,其中 Claude Code 無法損害您的主機系統。

您無法從未使用啟用標誌啟動的會話進入 bypassPermissions;使用其中一個重新啟動以啟用它:

claude --permission-mode bypassPermissions

--dangerously-skip-permissions 標誌等同於此。

在 Linux 和 macOS 上,當以 root 身份或在 sudo 下執行時,Claude Code 拒絕以此模式啟動:

--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

檢查在識別的沙箱內自動跳過。若要在容器中自主執行,請使用 dev container 配置,該配置以非 root 使用者身份執行 Claude Code。

Claude Code on the web 不遵守您設定檔案中的 defaultMode: "bypassPermissions" 或 "dontAsk",因此儲存庫的簽入設定無法在略過權限模式下啟動雲端會話。該設定會被無聲地忽略,會話會改為以模式下拉式選單中顯示的模式啟動。請參閱切換權限模式以了解雲端會話提供哪些模式。

受保護的路徑

寫入一小組路徑永遠不會自動批准,在除了 bypassPermissions 之外的每種模式中。這防止了倉庫狀態和 Claude 自己的配置的意外損壞。

模式 受保護路徑寫入
default、acceptEdits、plan 提示
auto 路由到分類器
dontAsk 拒絕
bypassPermissions 允許

permissions.allow 設定檔中的規則不會預先批准受保護路徑的寫入。安全檢查在 Claude Code 評估設定中的允許規則之前執行,因此在 ~/.claude/settings.json 或 .claude/settings.json 中的 Edit(.claude/**) 之類的項目不會改變上表中的每種模式結果。在提示的模式中,.claude/ 寫入的提示會提供是的,並允許 Claude 在此工作階段編輯其自己的設定,這會在該工作階段中批准後續的 .claude/ 寫入而不再提示。

受保護的目錄:

  • .git
  • .config/git
  • .vscode
  • .idea
  • .husky
  • .cargo
  • .devcontainer
  • .yarn
  • .mvn
  • .claude,除了 .claude/worktrees,其中 Claude 儲存其自己的 git worktrees

受保護的檔案:

  • .gitconfig、.gitmodules
  • .bashrc、.bash_profile、.bash_login、.bash_aliases、.bash_logout、.zshrc、.zprofile、.zshenv、.zlogin、.zlogout、.profile、.envrc
  • .npmrc、.yarnrc、.yarnrc.yml、.pnp.cjs、.pnp.loader.mjs、.pnpmfile.cjs、bunfig.toml、.bunfig.toml
  • .bazelrc、.bazelversion、.bazeliskrc
  • .pre-commit-config.yaml、lefthook.yml、lefthook.yaml、.lefthook.yml、.lefthook.yaml
  • gradle-wrapper.properties、maven-wrapper.properties
  • .devcontainer.json
  • .ripgreprc、pyrightconfig.json
  • .mcp.json、.claude.json

另請參閱

  • Permissions:允許、詢問和拒絕規則;受管策略
  • Configure auto mode:告訴分類器您的組織信任哪些基礎設施
  • Hooks:通過 PreToolUse 和 PermissionRequest hooks 的自訂權限邏輯
  • Ultraplan:在 Claude Code on the web 會話中執行 plan mode,具有基於瀏覽器的審查
  • Security:安全保障和最佳實踐
  • Sandboxing:Bash 命令的檔案系統和網路隔離
  • Non-interactive mode:使用 -p 標誌執行 Claude Code