參考
Claude Code 設定
使用全域和專案層級設定以及環境變數來配置 Claude Code。
Claude Code 提供多種設定選項來配置其行為以滿足您的需求。您可以在使用互動式 REPL 時執行 /config
命令來配置 Claude Code。
設定檔案
settings.json
檔案是我們透過階層式設定來配置 Claude Code 的官方機制:
- 使用者設定 定義在
~/.claude/settings.json
中,適用於所有專案。 - 專案設定 儲存在您的專案目錄中:
.claude/settings.json
用於檢入原始碼控制並與您的團隊共享的設定.claude/settings.local.json
用於不檢入的設定,適用於個人偏好和實驗。Claude Code 會在建立時配置 git 忽略.claude/settings.local.json
。
- 對於 Claude Code 的企業部署,我們也支援企業管理政策設定。這些設定優先於使用者和專案設定。系統管理員可以在 macOS 上部署政策到
/Library/Application Support/ClaudeCode/managed-settings.json
,在 Linux 和透過 WSL 的 Windows 上部署到/etc/claude-code/managed-settings.json
。
Example settings.json
可用設定
settings.json
支援多個選項:
鍵 | 描述 | 範例 |
---|---|---|
apiKeyHelper | 自訂腳本,在 /bin/sh 中執行,用於產生驗證值。此值通常會作為 X-Api-Key 、Authorization: Bearer 和 Proxy-Authorization: Bearer 標頭發送給模型請求 | /bin/generate_temp_api_key.sh |
cleanupPeriodDays | 本地保留聊天記錄的時間長度(預設:30 天) | 20 |
env | 將套用到每個會話的環境變數 | {"FOO": "bar"} |
includeCoAuthoredBy | 是否在 git 提交和拉取請求中包含 co-authored-by Claude 署名(預設:true ) | false |
permissions | 權限結構請參見下表。 |
權限設定
鍵 | 描述 | 範例 |
---|---|---|
allow | 允許工具使用的權限規則陣列 | [ "Bash(git diff:*)" ] |
deny | 拒絕工具使用的權限規則陣列 | [ "WebFetch", "Bash(curl:*)" ] |
additionalDirectories | Claude 可存取的額外工作目錄 | [ "../docs/" ] |
defaultMode | 開啟 Claude Code 時的預設權限模式 | "allowEdits" |
disableBypassPermissionsMode | 設為 "disable" 以防止啟用 bypassPermissions 模式。請參見管理政策設定 | "disable" |
設定優先順序
設定按優先順序套用:
- 企業政策(請參見 IAM 文件)
- 命令列參數
- 本地專案設定
- 共享專案設定
- 使用者設定
環境變數
Claude Code 支援以下環境變數來控制其行為:
所有環境變數也可以在 settings.json
中配置。這是為每個會話自動設定環境變數,或為整個團隊或組織推出一組環境變數的有用方法。
變數 | 目的 |
---|---|
ANTHROPIC_API_KEY | 作為 X-Api-Key 標頭發送的 API 金鑰,通常用於 Claude SDK(對於互動式使用,執行 /login ) |
ANTHROPIC_AUTH_TOKEN | Authorization 和 Proxy-Authorization 標頭的自訂值(您在此設定的值將以 Bearer 為前綴) |
ANTHROPIC_CUSTOM_HEADERS | 您想要新增到請求的自訂標頭(以 Name: Value 格式) |
ANTHROPIC_MODEL | 要使用的自訂模型名稱(請參見模型配置) |
ANTHROPIC_SMALL_FAST_MODEL | 用於背景任務的 Haiku 級模型名稱 |
BASH_DEFAULT_TIMEOUT_MS | 長時間執行的 bash 命令的預設逾時 |
BASH_MAX_TIMEOUT_MS | 模型可為長時間執行的 bash 命令設定的最大逾時 |
BASH_MAX_OUTPUT_LENGTH | bash 輸出在中間截斷前的最大字元數 |
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR | 在每個 Bash 命令後返回原始工作目錄 |
CLAUDE_CODE_API_KEY_HELPER_TTL_MS | 憑證應重新整理的間隔(毫秒)(使用 apiKeyHelper 時) |
CLAUDE_CODE_MAX_OUTPUT_TOKENS | 設定大多數請求的最大輸出權杖數 |
CLAUDE_CODE_USE_BEDROCK | 使用 Bedrock(請參見 Bedrock & Vertex) |
CLAUDE_CODE_USE_VERTEX | 使用 Vertex(請參見 Bedrock & Vertex) |
CLAUDE_CODE_SKIP_BEDROCK_AUTH | 跳過 Bedrock 的 AWS 驗證(例如使用 LLM 閘道時) |
CLAUDE_CODE_SKIP_VERTEX_AUTH | 跳過 Vertex 的 Google 驗證(例如使用 LLM 閘道時) |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 等同於設定 DISABLE_AUTOUPDATER 、DISABLE_BUG_COMMAND 、DISABLE_ERROR_REPORTING 和 DISABLE_TELEMETRY |
DISABLE_AUTOUPDATER | 設為 1 以停用自動更新程式 |
DISABLE_BUG_COMMAND | 設為 1 以停用 /bug 命令 |
DISABLE_COST_WARNINGS | 設為 1 以停用成本警告訊息 |
DISABLE_ERROR_REPORTING | 設為 1 以選擇退出 Sentry 錯誤報告 |
DISABLE_NON_ESSENTIAL_MODEL_CALLS | 設為 1 以停用非關鍵路徑(如風味文字)的模型呼叫 |
DISABLE_TELEMETRY | 設為 1 以選擇退出 Statsig 遙測(請注意 Statsig 事件不包含使用者資料,如程式碼、檔案路徑或 bash 命令) |
HTTP_PROXY | 指定網路連線的 HTTP 代理伺服器 |
HTTPS_PROXY | 指定網路連線的 HTTPS 代理伺服器 |
MAX_THINKING_TOKENS | 強制模型預算的思考 |
MCP_TIMEOUT | MCP 伺服器啟動的逾時(毫秒) |
MCP_TOOL_TIMEOUT | MCP 工具執行的逾時(毫秒) |
MAX_MCP_OUTPUT_TOKENS | MCP 工具回應中允許的最大權杖數(預設:25000) |
配置選項
我們正在將全域配置遷移到 settings.json
。
claude config
將被棄用,改為使用 settings.json
要管理您的配置,請使用以下命令:
- 列出設定:
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>
:
鍵 | 描述 | 範例 |
---|---|---|
autoUpdates | 是否啟用自動更新(預設:true ) | false |
preferredNotifChannel | 您想要接收通知的位置(預設:iterm2 ) | iterm2 、iterm2_with_bell 、terminal_bell 或 notifications_disabled |
theme | 色彩主題 | dark 、light 、light-daltonized 或 dark-daltonized |
verbose | 是否顯示完整的 bash 和命令輸出(預設:false ) | true |
Claude 可用的工具
Claude Code 可存取一組強大的工具,幫助它理解和修改您的程式碼庫:
工具 | 描述 | 需要權限 |
---|---|---|
Agent | 執行子代理來處理複雜的多步驟任務 | 否 |
Bash | 在您的環境中執行 shell 命令 | 是 |
Edit | 對特定檔案進行目標編輯 | 是 |
Glob | 基於模式匹配尋找檔案 | 否 |
Grep | 在檔案內容中搜尋模式 | 否 |
LS | 列出檔案和目錄 | 否 |
MultiEdit | 在單一檔案上原子性地執行多個編輯 | 是 |
NotebookEdit | 修改 Jupyter 筆記本儲存格 | 是 |
NotebookRead | 讀取並顯示 Jupyter 筆記本內容 | 否 |
Read | 讀取檔案內容 | 否 |
TodoRead | 讀取目前會話的任務清單 | 否 |
TodoWrite | 建立和管理結構化任務清單 | 否 |
WebFetch | 從指定 URL 擷取內容 | 是 |
WebSearch | 執行具有網域篩選的網路搜尋 | 是 |
Write | 建立或覆寫檔案 | 是 |
權限規則可以使用 /allowed-tools
或在權限設定中配置。
使用鉤子擴展工具
您可以使用 Claude Code 鉤子在任何工具執行前後執行自訂命令。
例如,您可以在 Claude 修改 Python 檔案後自動執行 Python 格式化程式,或透過阻止對某些路徑的 Write 操作來防止修改生產配置檔案。