Claude Code 提供多種設定選項來滿足您的需求。您可以在終端機中執行 claude config 或在使用互動式 REPL 時使用 /config 命令來配置 Claude Code。

配置層級結構

新的 settings.json 檔案是我們透過層級式設定來配置 Claude Code 的官方機制。

使用者設定定義在 ~/.claude/settings.json 中,適用於所有專案。

專案設定儲存在您的專案目錄下的 .claude/settings.json(用於共享設定)和 .claude/settings.local.json(用於本地專案設定)。當建立 .claude/settings.local.json 時,Claude Code 會配置 git 忽略該檔案。

對於 Claude Code 的企業部署,我們也支援企業管理策略設定。這些設定優先於使用者和專案設定。系統管理員可以在 macOS 上將策略部署到 /Library/Application Support/ClaudeCode/policies.json,在 Linux 和透過 WSL 的 Windows 上部署到 /etc/claude-code/policies.json

Example settings.json
{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)"
    ],
    "deny": [
      "Bash(curl:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp"
  }
}

設定優先順序

設定按優先順序套用,後面的來源會覆蓋前面的來源:

  • 使用者設定
  • 共享專案設定
  • 本地專案設定
  • 命令列參數
  • 企業策略

配置選項

Claude Code 支援全域和專案層級的配置。

要管理您的配置,請使用以下命令:

  • 列出設定:claude config list
  • 查看設定:claude config get <key>
  • 更改設定:claude config set <key> <value>
  • 新增設定(用於列表):claude config add <key> <value>
  • 移除設定(用於列表):claude config remove <key> <value>

預設情況下,config 會更改您的專案配置。要管理全域配置,請使用 --global(或 -g)標誌。

全域配置

要設定全域配置,使用 claude config set -g <key> <value>

描述
autoUpdaterStatusdisabledenabled啟用或停用自動更新程式(預設:enabled
envJSON(例如 '{"FOO": "bar"}'將套用於每個工作階段的環境變數
preferredNotifChanneliterm2iterm2_with_bellterminal_bellnotifications_disabled您想要接收通知的位置(預設:iterm2
themedarklightlight-daltonizeddark-daltonized色彩主題
verbosetruefalse是否顯示完整的 bash 和命令輸出(預設:false

專案配置

使用 claude config set <key> <value>(不帶 -g 標誌)管理專案配置:

描述
allowedTools工具陣列哪些工具可以不需手動批准就能執行
ignorePatternsglob 字串陣列使用工具時要忽略哪些檔案/目錄

例如:

# 允許 npm test 無需批准即可執行
claude config add allowedTools "Bash(npm test)"

# 允許 npm test 及其所有子命令無需批准即可執行
claude config add allowedTools "Bash(npm test:*)"

# 指示 Claude 忽略 node_modules
claude config add ignorePatterns node_modules
claude config add ignorePatterns "node_modules/**"

權限

您可以使用 /allowed-tools 管理 Claude Code 的工具權限。此 UI 列出所有權限規則及其來源的 settings.json 檔案。

  • 允許規則將允許 Claude Code 使用指定的工具,無需進一步手動批准。
  • 拒絕規則將阻止 Claude Code 使用指定的工具。拒絕規則優先於允許規則。

權限規則使用格式:Tool(optional-specifier)

例如,將 WebFetch 加入允許規則清單中將允許在不需要使用者批准的情況下使用任何網路擷取工具。請參閱Claude 可用工具清單(提供時使用括號中的名稱)。

某些工具使用可選的指定符來進行更細緻的權限控制。例如,帶有 WebFetch(domain:example.com) 的允許規則將允許擷取 example.com 但不允許其他 URL。

Bash 規則可以是精確匹配,如 Bash(npm run build),或以 :* 結尾的前綴匹配,如 Bash(npm run test:*)

Read()Edit() 規則遵循 gitignore 規範。模式相對於包含 .claude/settings.json 的目錄解析。要引用絕對路徑,使用 //。對於相對於您的主目錄的路徑,使用 ~/。例如 Read(//tmp/build_cache)Edit(~/.zshrc)。Claude 也會盡力將讀取和編輯規則應用於其他與檔案相關的工具,如 Grep、Glob 和 LS。

MCP 工具名稱遵循格式:mcp__server_name__tool_name,其中:

  • server_name 是在 Claude Code 中配置的 MCP 伺服器名稱
  • tool_name 是該伺服器提供的特定工具

更多範例:

規則描述
Bash(npm run build)匹配精確的 Bash 命令 npm run build
Bash(npm run test:*)匹配以 npm run test 開頭的 Bash 命令。請參閱下面關於命令分隔符處理的說明。
Edit(~/.zshrc)匹配 ~/.zshrc 檔案。
Read(node_modules/**)匹配任何 node_modules 目錄。
mcp__puppeteer__puppeteer_navigate匹配來自 puppeteer MCP 伺服器的 puppeteer_navigate 工具。
WebFetch(domain:example.com)匹配到 example.com 的擷取請求

Claude Code 能識別命令分隔符(如 &&),所以前綴匹配規則如 Bash(safe-cmd:*) 不會給予它執行 safe-cmd && other-cmd 命令的權限

自動更新程式權限選項

當 Claude Code 檢測到它沒有足夠的權限寫入您的全域 npm 前綴目錄(自動更新所需)時,您會看到指向此文件頁面的警告。有關自動更新程式問題的詳細解決方案,請參閱疑難排解指南

建議:建立新的使用者可寫入的 npm 前綴

# 首先,儲存現有全域套件清單以供後續遷移
npm list -g --depth=0 > ~/npm-global-packages.txt

# 建立全域套件的目錄
mkdir -p ~/.npm-global

# 配置 npm 使用新的目錄路徑
npm config set prefix ~/.npm-global

# 注意:根據您的 shell 將 ~/.bashrc 替換為 ~/.zshrc、~/.profile 或其他適當的檔案
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# 套用新的 PATH 設定
source ~/.bashrc

# 現在在新位置重新安裝 Claude Code
npm install -g @anthropic-ai/claude-code

# 可選:在新位置重新安裝您之前的全域套件
# 查看 ~/npm-global-packages.txt 並安裝您想保留的套件
# npm install -g package1 package2 package3...

為什麼我們推薦這個選項:

  • 避免修改系統目錄權限
  • 為您的全域 npm 套件建立一個乾淨、專用的位置
  • 遵循安全最佳實踐

由於 Claude Code 正在積極開發中,我們建議使用上述建議選項設定自動更新。

停用自動更新程式

如果您想要停用自動更新程式而不是修復權限,您可以使用:

claude config set -g autoUpdaterStatus disabled

優化您的終端機設定

Claude Code 在終端機正確配置時效果最佳。請遵循這些指南來優化您的體驗。

支援的 shell

  • Bash
  • Zsh
  • Fish

主題和外觀

Claude 無法控制您終端機的主題。這由您的終端機應用程式處理。您可以在入門設定期間或透過 /config 命令隨時將 Claude Code 的主題與您的終端機匹配

換行

您有幾個選項可以在 Claude Code 中輸入換行:

  • 快速跳脫:輸入 \ 後按 Enter 建立新行
  • 鍵盤快捷鍵:在正確配置下按 Option+Enter(Meta+Enter)

要在您的終端機中設定 Option+Enter:

對於 Mac Terminal.app:

  1. 開啟設定 → 設定檔 → 鍵盤
  2. 勾選「使用 Option 作為 Meta 鍵」

對於 iTerm2 和 VSCode 終端機:

  1. 開啟設定 → 設定檔 → 按鍵
  2. 在一般設定下,將左/右 Option 鍵設為「Esc+」

iTerm2 和 VSCode 使用者提示:在 Claude Code 中執行 /terminal-setup 以自動配置 Shift+Enter 作為更直覺的替代選項。

通知設定

透過適當的通知配置,永不錯過 Claude 完成任務的時機:

終端機鈴聲通知

啟用任務完成時的聲音提醒:

claude config set --global preferredNotifChannel terminal_bell

macOS 使用者注意:別忘了在系統設定 → 通知 → [您的終端機應用程式] 中啟用通知權限。

iTerm 2 系統通知

對於 iTerm 2 任務完成提醒:

  1. 開啟 iTerm 2 偏好設定
  2. 導航至設定檔 → 終端機
  3. 啟用「靜音鈴聲」和「閒置時發送通知」
  4. 設定您偏好的通知延遲

請注意,這些通知是 iTerm 2 特有的,在預設的 macOS 終端機中不可用。

處理大量輸入

當處理大量程式碼或長指令時:

  • 避免直接貼上:Claude Code 可能難以處理非常長的貼上內容
  • 使用基於檔案的工作流程:將內容寫入檔案並要求 Claude 讀取
  • 注意 VS Code 限制:VS Code 終端機特別容易截斷長貼上內容

Vim 模式

Claude Code 支援可透過 /vim 啟用或透過 /config 配置的 Vim 按鍵綁定子集。

支援的子集包括:

  • 模式切換:Esc(到 NORMAL),i/Ia/Ao/O(到 INSERT)
  • 導航:h/j/k/lw/e/b0/$/^gg/G
  • 編輯:xdw/de/db/dd/Dcw/ce/cb/cc/C.(重複)

環境變數

Claude Code 支援以下環境變數來控制其行為:

變數用途
DISABLE_AUTOUPDATER設為 1 以停用自動更新程式
DISABLE_BUG_COMMAND設為 1 以停用 /bug 命令
DISABLE_COST_WARNINGS設為 1 以停用成本警告訊息
DISABLE_ERROR_REPORTING設為 1 以選擇退出 Sentry 錯誤報告
DISABLE_TELEMETRY設為 1 以選擇退出 Statsig 遙測(請注意,Statsig 事件不包含使用者資料,如程式碼、檔案路徑或 bash 命令)
HTTP_PROXY指定網路連接的 HTTP 代理伺服器
HTTPS_PROXY指定網路連接的 HTTPS 代理伺服器
MCP_TIMEOUTMCP 伺服器啟動的超時時間(毫秒)
MCP_TOOL_TIMEOUTMCP 工具執行的超時時間(毫秒)

Was this page helpful?