SpyBara
Go Premium

permission-modes.md 2026-10-24 22:59 UTC to 2026-10-25 23:58 UTC

This page contains 1 addition and 1 deletion.

2026
Thu 1 23:59 Fri 2 22:59 Sat 3 23:57 Sun 4 23:58 Mon 5 23:58 Tue 6 23:59 Wed 7 23:59 Sat 10 23:01 Sun 11 23:57 Wed 14 22:58 Sat 17 23:57 Mon 19 23:58 Tue 20 23:00 Wed 21 23:02 Thu 22 22:58 Fri 23 22:59 Sun 25 23:58 Mon 26 22:57 Tue 27 22:59 Wed 28 23:57 Fri 30 23:01

選擇權限模式

控制 Claude 在採取動作前是否詢問。在 CLI 中使用 Shift+Tab、在 VS Code 中使用模式指示器,或在 Desktop 中使用模式選擇器來切換權限模式。

權限模式設定 Claude 在工作階段中可以執行哪些操作而無需先詢問您。在 Manual 模式中,Claude Code 會在大多數編輯檔案、執行 shell 命令或存取網路的操作前停止並詢問您。在自動模式中,第二個模型(分類器)會審查操作而不是您;分類器如何評估操作列出它審查的操作以及跳過的操作。

在 Claude Code v2.1.283 或更新版本中,自動模式是互動式終端和 VS Code 工作階段的內建起始權限模式。在較早版本中,它只在 Pro、Max 和 Team 方案上是內建的起始權限模式。工作階段在哪個模式中啟動涵蓋改變起始權限模式的表面和設定。您也可以隨時改變執行中工作階段的權限模式。

可用的模式

每種模式在便利性和監督之間做出不同的權衡。下表顯示在每種模式中 Claude 無需權限提示即可執行的操作。Manual 模式出現在其設定值 default 下。

模式 無需詢問即可執行 最適合
default 僅讀取 自己審查每個操作、敏感工作
acceptEdits 讀取、檔案編輯和常見的檔案系統命令(mkdir、touch、mv、cp 等) 迭代您正在審查的程式碼
plan 讀取,加上當自動模式可用時分類器批准的命令 在變更程式碼前探索程式碼庫
auto 所有操作,具有背景安全檢查 長期任務、減少提示疲勞
dontAsk 工作目錄內的檔案讀取和預先核准的工具;任何會提示的操作都被拒絕,不過您安裝的 mod 仍可核准其中部分呼叫 鎖定的 CI 和指令碼
bypassPermissions 所有操作 僅限隔離的容器和虛擬機器

審查每個操作的模式在 CLI 中、claude --help 中、VS Code 和 JetBrains 擴充功能中以及桌面應用程式中名為 Manual。其設定值為 default,這是 hook 和 SDK 整合使用的值。CLI 接受 manual 作為別名,無論您在何處輸入該值,例如 claude --permission-mode manual 或 "defaultMode": "manual"。

寫入受保護的路徑永遠不會自動批准,唯一的例外是 bypassPermissions 模式,以及可使用略過權限的 Plan Mode 工作階段,也就是以將 bypassPermissions 放入模式循環的方式啟動的工作階段。

模式設定基準。在頂部分層權限規則以預先批准或阻止特定工具。拒絕規則在每種模式中都會阻止,包括 bypassPermissions。拒絕和詢問規則不適用於 EndConversation,只要 Claude 仍有至少一個其他工具可以呼叫。允許規則在 bypassPermissions 中無效。

任何模式都不會自動核准的動作

Claude Code 在任何模式中都不會自動批准以下操作,包括 bypassPermissions。每個項目都連結到說明在每種模式中會發生什麼的部分:

  • 符合明確詢問規則的工具

  • 您的組織設定為 ask 的連接器工具,在該設定到達 Claude Code 的工作階段中

  • 需要使用者互動的工具:內建的 AskUserQuestion 工具和標記為 requiresUserInteraction 的 MCP 工具

  • 已識別的 rm 和 rmdir 關鍵路徑移除,任何允許規則或 PreToolUse hook "allow" 都無法核准

  • 跨工作階段訊息保護措施

  • 當 permissions.blockReadsOutsideWorkingDirectories 開啟時,在工作目錄外讀取:已識別的檔案讀取 Bash 命令即使在自動模式和 bypassPermissions 模式中也會提示,任何未沙箱化的重試需要批准才能在沙箱外執行也是如此。需要 Claude Code v2.1.257 或更新版本。

    殼層解析器無法追蹤的命令,例如變更目錄超過一次或執行子殼層的命令,即使在命名沒有外部路徑時也會以相同方式提示。當命令在沙箱中執行且沙箱強制執行該區塊時,此提示不適用。

常見設定

權限模式決定 Claude 是否在操作前詢問,而 Bash 沙箱和外部隔離邊界決定操作執行後可以到達什麼。下表中的每一行將目標與讓您到達該目標的旗標或設定以及所需的隔離配對,作為起點。可用的模式列出在每種模式中無需提示即可執行的操作。

您想要 開始使用 所需的隔離 注意
自己審查每個操作 Manual 模式:claude --permission-mode default 無 敏感工作、不熟悉的程式碼
在本地迭代,提示更少,無需分類器 Manual 模式加上 Bash 沙箱在自動允許模式中:claude --permission-mode default,然後執行 /sandbox 並選擇自動允許 內建 Bash 沙箱,在 macOS、Linux 和 WSL2 上 拒絕規則仍然適用,詢問規則命名命令(例如 Bash(git push *))仍然提示。自動允許模式涵蓋其他可能提示的命令。若要改為從設定檔開啟沙箱,請將 sandbox.enabled 設定為 true
在變更任何內容前探索 claude --permission-mode plan 無 Claude Code 會阻止編輯,直到您批准計畫
在自動模式中無人值守工作 claude --permission-mode auto、內建起始權限模式(v2.1.283 或更新版本) 無;沙箱或容器增加深度防禦 需要支援的模型,您的組織可以關閉自動模式
在 CI 中使用精確允許清單執行 claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" 無,超出您的 CI 執行器提供的 雲端工作階段忽略設定檔中的 dontAsk
在容器內完全無人值守執行 claude -p "<prompt>" --dangerously-skip-permissions 必需:容器、虛擬機或沙箱執行時;在 Linux 和 macOS 上,以非 root 使用者執行 雲端工作階段忽略設定檔中的此模式。在此 -p 執行中,仍會提示的少數呼叫會被拒絕

Bash 沙箱和自動模式獨立工作並結合,除了沙箱模式下列出的例外。如需完整互動,請參閱沙箱化如何與權限和權限模式相關和隔離如何與權限模式相關。

工作階段在哪個模式中啟動

當您在終端機中啟動新工作階段時,Claude Code 會從適用的第一個中取得權限模式:

  1. --permission-mode 旗標或 --dangerously-skip-permissions

  2. 設定檔中的 permissions.defaultMode

    如果您在 .claude/settings.json 或 .claude/settings.local.json 中設定 "auto",該值不會生效,Claude Code 會改為使用內建預設值而不是來自 ~/.claude/settings.json 的 defaultMode。如果您在這兩個檔案中設定 "bypassPermissions",它也不會生效,工作階段會以 Manual 模式啟動。其他值適用於任何設定檔。

  3. 內建預設值

VS Code 擴充功能啟動的對話遵循切換權限模式中的擴充功能自身清單。如需 Claude Code 在恢復工作階段時啟動的權限模式,請參閱恢復時的權限模式。

內建 auto 預設在 macOS、Linux 和 WSL 上需要 Claude Code v2.1.228 或更新版本,在原生 Windows 上需要 v2.1.233 或更新版本。在較早的版本上,內建預設是 Manual。

內建預設取決於您如何執行 Claude Code。符合的第一行適用。該表涵蓋您在終端機或透過 VS Code 擴充功能啟動的工作階段;對於桌面應用程式和 claude.ai,請參閱切換權限模式中的 Desktop 和 Web 標籤。

您如何執行 Claude Code 內建起始權限模式
任何設定檔將 disableAutoMode 設定為 "disable" default
claude -p 或 Agent SDK default
您的組織已套用 HIPAA 設定,且工作階段符合其適用條件 Claude Code v2.1.285 或更新版本上為 default;仍可切換到自動模式
在終端機或透過 VS Code 擴充功能 Claude Code v2.1.283 或更新版本上的 auto;在較早的版本上,Pro、Max 或 Team 方案上的 auto(在擷取功能旗標的工作階段中),否則為 default

當旗標、設定檔或內建預設選擇 auto 但自動模式對工作階段不可用時,Claude Code 會改為以 Manual 啟動工作階段。當工作階段不符合可用性要求時,自動模式不可用,例如設定檔關閉它或不支援它的模型,或當 Anthropic 已在伺服器端暫時關閉它時。

內建預設第一次在自動模式中啟動您的工作階段時,Claude Code 會顯示連結到此頁面的通知:

  • 在終端機中,一次,在工作階段頂部
  • 在 VS Code 擴充功能中,作為新對話螢幕上的卡片,直到您關閉它

如果您的 ~/.claude/settings.json 將 defaultMode 設定為 auto 以外的值,且沒有其他設定檔設定它,您的工作階段會繼續以該模式啟動。在 Pro、Max 和 Team 方案上,以及在不擷取功能旗標的工作階段中,Claude Code 會在終端機或 VS Code 擴充功能中詢問一次,是否將設定變更為自動模式。如果您拒絕,您的設定會保持原樣。

在 claude -p 和 Agent SDK 執行中被拒絕的工具呼叫

在 Claude Code v2.1.302 或更新版本中,未設定權限模式的 claude -p 和 Agent SDK 執行會以 Manual 模式啟動。此模式在 SDK 選項和設定中顯示為 default。需要核准的呼叫會被拒絕,除非您透過允許規則、hook、canUseTool 回呼或 --permission-prompt-tool 核准它們。

若要讓這些呼叫獲得核准,請新增允許規則或以自動模式啟動:

以下範例顯示 CLI 和各 SDK 的自動模式寫法:

CLI

claude -p "Run the test suite and fix any failures" --permission-mode auto

TypeScript

const options = {
  permissionMode: "auto"
};

Python

from claude_agent_sdk import ClaudeAgentOptions

options = ClaudeAgentOptions(permission_mode="auto")

在 v2.1.302 之前,如果這些執行不擷取功能旗標,例如在第三方提供者上或使用 DISABLE_TELEMETRY 時,可能會以自動模式啟動。

以不同的權限模式啟動

您可以為一個工作階段、或作為機器、專案或組織中每個工作階段的預設值設定起始權限模式。當多個設定檔設定 permissions.defaultMode 時,設定優先順序決定,因此專案或受管值優先於 ~/.claude/settings.json。若要變更已執行工作階段的權限模式,請參閱切換權限模式。

若要為以下設定起始權限模式 執行此操作
您即將啟動的一個工作階段 將權限模式作為旗標傳遞,例如 claude --permission-mode default
您在此機器上啟動的每個終端機工作階段 在 ~/.claude/settings.json 中設定 permissions.defaultMode。如需 VS Code 擴充功能讀取的內容,請參閱切換權限模式
您在一個專案中啟動的每個終端機工作階段 在專案的 .claude/settings.json 中設定 permissions.defaultMode。您在終端機中啟動的工作階段遵守除 auto 和 bypassPermissions 外的每個值;VS Code 擴充功能啟動的工作階段不讀取專案設定以取得起始權限模式
您組織中的每個終端機工作階段 在受管設定中設定 permissions.defaultMode。終端機工作階段以該模式啟動,人們仍然可以切換到自動模式;如需 VS Code 擴充功能讀取的內容,請參閱切換權限模式。若要移除自動模式以便沒有人可以選擇它,請改為將 permissions.disableAutoMode 設定為 "disable"

此範例使您機器上的每個終端機工作階段以 Manual 模式啟動,其設定值為 default。將其儲存在 ~/.claude/settings.json 中:

{
  "permissions": {
    "defaultMode": "default"
  }
}

您啟動的下一個工作階段會在狀態列中顯示 ⏸ manual mode on。

HIPAA 設定下的權限模式

在已套用 HIPAA 設定的組織中,內建 auto 預設不適用。當沒有其他項目選擇起始權限模式時,終端機或 VS Code 工作階段會以 Manual 模式啟動。終端機工作階段還會顯示 Auto mode isn't the default for your organization · Shift+Tab to switch,而 VS Code 擴充功能不會顯示通知。檢查開發人員如何登入和連線列出了適用此情況的工作階段。

自動模式和 bypassPermissions 仍然可用:

需要 Claude Code v2.1.285 或更新版本,即 HIPAA 設定的最低版本。

切換權限模式

每個介面都有自己的控制項用於在工作階段期間切換權限模式,以及自己的方式來選擇新工作階段啟動的權限模式。選擇您的介面以查看其控制項。

CLI

在工作階段期間:按 Shift+Tab 循環切換權限模式。從 auto,第一次按下切換到 default,循環然後執行 default → acceptEdits → plan。可選模式在 plan 之後插入。狀態列將活動模式顯示為 default 的灰色 ⏸ manual mode on,或作為 ⏵⏵ accept edits on、⏸ plan mode on、⏵⏵ auto mode on、⏵⏵ don't ask on 或 ⏵⏵ bypass permissions on。

請觀察此片段中以自動模式啟動的工作階段的狀態列。每次按下 Shift+Tab,它會從 auto mode on 變更為 manual mode on、accept edits on、plan mode on,然後回到 auto mode on。