跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

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

可用模式

每種模式在便利性和監督之間進行不同的權衡。下表顯示在每種模式中 Claude 無需權限提示即可執行的操作。
模式無需詢問即可執行的操作最適合
default僅讀取入門、敏感工作
acceptEdits讀取、檔案編輯和常見檔案系統命令(mkdirtouchmvcp 等)迭代您正在審查的程式碼
plan僅讀取在變更前探索程式碼庫
auto所有操作,具有背景安全檢查長時間執行的任務、減少提示疲勞
dontAsk僅預先批准的工具鎖定的 CI 和指令碼
bypassPermissions所有操作,具有背景安全檢查隔離容器和 VM 僅
在除 bypassPermissions 外的每種模式中,寫入受保護路徑永遠不會自動批准,保護倉庫狀態和 Claude 自己的配置免受意外損壞。 模式設定基線。在頂部分層權限規則以在除 bypassPermissions 外的任何模式中預先批准或阻止特定工具,bypassPermissions 完全跳過權限層。

切換權限模式

您可以在會話期間、啟動時或作為持久預設值切換模式。模式通過這些控制設定,而不是通過在聊天中詢問 Claude。選擇下面的您的介面以查看如何變更它。
在會話期間:按 Shift+Tab 循環 defaultacceptEditsplan。目前模式出現在狀態欄中。並非每種模式都在預設循環中:
  • 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 命令:mkdirtouchrmrmdirmvcpsed。這些命令在以安全環境變數(如 LANG=CNO_COLOR=1)或流程包裝器(如 timeoutnicenohup)為前綴時也會自動批准。與檔案編輯一樣,自動批准僅適用於您的工作目錄或 additionalDirectories 內的路徑。該範圍外的路徑、寫入受保護路徑和所有其他 Bash 命令仍然提示。 當啟用 PowerShell tool 時,acceptEdits 模式也會自動批准 Set-ContentAdd-ContentClear-ContentRemove-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 Code v2.1.83 或更新版本。
Auto mode 讓 Claude 執行而不顯示權限提示。單獨的分類器模型在執行前審查操作,阻止任何超出您要求的操作、針對無法識別的基礎設施的操作,或似乎由 Claude 讀到的敵對內容驅動的操作。 Auto mode 也指示 Claude 立即執行並最小化澄清問題。若要在保持權限提示的情況下獲得該行為,請改為設定主動輸出風格
Auto mode 是研究預覽。它減少提示但不保證安全。將其用於您信任一般方向的任務,而不是作為敏感操作審查的替代品。
Auto mode 僅在您的帳戶符合所有這些要求時可用:
  • 計劃:Max、Team、Enterprise 或 API。Pro 上不可用。
  • 管理員:在 Team 和 Enterprise 上,管理員必須在 Claude Code 管理設定中啟用它,使用者才能打開它。管理員也可以通過在受管設定中將 permissions.disableAutoMode 設定為 "disable" 來鎖定它。
  • 模型:Team、Enterprise 和 API 計劃上的 Claude Sonnet 4.6、Opus 4.6 或 Opus 4.7;Max 計劃上僅 Claude Opus 4.7。不支援其他模型,包括 Haiku 和 claude-3 模型。
  • 提供商:僅 Anthropic API。在 Bedrock、Vertex 或 Foundry 上不可用。
如果 Claude Code 報告 auto mode 不可用,其中一項要求未滿足;這不是暫時性中斷。單獨的訊息命名模型並說 auto mode「無法確定」操作的安全性是暫時性分類器中斷;請參閱錯誤參考

分類器預設阻止的內容

分類器信任您的工作目錄和您的倉庫配置的遠端。其他所有內容都被視為外部,直到您配置受信任的基礎設施 預設阻止
  • 下載和執行程式碼,如 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. 與您的允許或拒絕規則相符的操作立即解決
  2. 唯讀操作和工作目錄中的檔案編輯自動批准,除了寫入受保護路徑
  3. 其他所有內容都發送到分類器
  4. 如果分類器阻止,Claude 接收原因並嘗試替代方法
進入 auto mode 時,授予任意程式碼執行的廣泛允許規則被刪除:
  • 全面 Bash(*)
  • 通配符解釋器,如 Bash(python*)
  • 套件管理器執行命令
  • Agent 允許規則
Bash(npm test) 這樣的狹義規則保留。刪除的規則在您離開 auto mode 時恢復。分類器看到使用者訊息、工具呼叫和您的 CLAUDE.md 內容。工具結果被剝離,因此檔案或網頁中的敵對內容無法直接操縱它。單獨的伺服器端探針掃描傳入的工具結果並在 Claude 讀取前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱 auto mode 公告工程深度探討
分類器在三個點檢查子代理工作:
  1. 在子代理啟動前,委派的任務描述被評估,因此看起來危險的任務在生成時被阻止。
  2. 當子代理執行時,它的每個操作都通過分類器,使用與父會話相同的規則,子代理前置事項中的任何 permissionMode 都被忽略。
  3. 當子代理完成時,分類器審查其完整操作歷史;如果該返回檢查標記了一個問題,安全警告被添加到子代理結果前面。
分類器在伺服器配置的模型上執行,獨立於您的 /model 選擇,因此切換模型不會改變分類器可用性。分類器呼叫計入您的令牌使用量。每次檢查發送記錄的一部分加上待處理操作,在執行前添加往返。工作目錄外受保護路徑的讀取和編輯跳過分類器,因此開銷主要來自 shell 命令和網路操作。

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

dontAsk 模式自動拒絕每個否則會提示的工具呼叫。僅與您的 permissions.allow 規則和唯讀 Bash 命令相符的操作可以執行;明確的 ask 規則被拒絕而不是提示。這使模式完全非互動式,適合 CI 管道或受限環境,您可以在其中預先定義 Claude 可能執行的操作。 在啟動時使用標誌設定它:
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。
bypassPermissions 不提供針對提示注入或意外操作的保護。對於沒有提示的背景安全檢查,請改為使用 auto mode。管理員可以通過在受管設定中將 permissions.disableBypassPermissionsMode 設定為 "disable" 來阻止此模式。

受保護的路徑

寫入一小組路徑永遠不會自動批准,在除了 bypassPermissions 之外的每種模式中。這防止了倉庫狀態和 Claude 自己的配置的意外損壞。在 defaultacceptEditsplan 中,這些寫入會提示;在 auto 中它們會路由到分類器;在 dontAsk 中它們被拒絕;在 bypassPermissions 中它們被允許。 受保護的目錄:
  • .git
  • .vscode
  • .idea
  • .husky
  • .claude,除了 .claude/commands.claude/agents.claude/skills.claude/worktrees,其中 Claude 例行建立內容
受保護的檔案:
  • .gitconfig.gitmodules
  • .bashrc.bash_profile.zshrc.zprofile.profile
  • .ripgreprc
  • .mcp.json.claude.json

另請參閱

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