Claude Code 設定
了解如何使用全域和專案層級設定、主題和環境變數來配置 Claude Code。
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
。
設定優先順序
設定按優先順序套用,後面的來源會覆蓋前面的來源:
- 使用者設定
- 共享專案設定
- 本地專案設定
- 命令列參數
- 企業策略
配置選項
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>
:
鍵 | 值 | 描述 |
---|---|---|
autoUpdaterStatus | disabled 或 enabled | 啟用或停用自動更新程式(預設:enabled ) |
env | JSON(例如 '{"FOO": "bar"}' ) | 將套用於每個工作階段的環境變數 |
preferredNotifChannel | iterm2 、iterm2_with_bell 、terminal_bell 或 notifications_disabled | 您想要接收通知的位置(預設:iterm2 ) |
theme | dark 、light 、light-daltonized 或 dark-daltonized | 色彩主題 |
verbose | true 或 false | 是否顯示完整的 bash 和命令輸出(預設:false ) |
專案配置
使用 claude config set <key> <value>
(不帶 -g
標誌)管理專案配置:
鍵 | 值 | 描述 |
---|---|---|
allowedTools | 工具陣列 | 哪些工具可以不需手動批准就能執行 |
ignorePatterns | glob 字串陣列 | 使用工具時要忽略哪些檔案/目錄 |
例如:
權限
您可以使用 /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 套件建立一個乾淨、專用的位置
- 遵循安全最佳實踐
由於 Claude Code 正在積極開發中,我們建議使用上述建議選項設定自動更新。
停用自動更新程式
如果您想要停用自動更新程式而不是修復權限,您可以使用:
優化您的終端機設定
Claude Code 在終端機正確配置時效果最佳。請遵循這些指南來優化您的體驗。
支援的 shell:
- Bash
- Zsh
- Fish
主題和外觀
Claude 無法控制您終端機的主題。這由您的終端機應用程式處理。您可以在入門設定期間或透過 /config
命令隨時將 Claude Code 的主題與您的終端機匹配
換行
您有幾個選項可以在 Claude Code 中輸入換行:
- 快速跳脫:輸入
\
後按 Enter 建立新行 - 鍵盤快捷鍵:在正確配置下按 Option+Enter(Meta+Enter)
要在您的終端機中設定 Option+Enter:
對於 Mac Terminal.app:
- 開啟設定 → 設定檔 → 鍵盤
- 勾選「使用 Option 作為 Meta 鍵」
對於 iTerm2 和 VSCode 終端機:
- 開啟設定 → 設定檔 → 按鍵
- 在一般設定下,將左/右 Option 鍵設為「Esc+」
iTerm2 和 VSCode 使用者提示:在 Claude Code 中執行 /terminal-setup
以自動配置 Shift+Enter 作為更直覺的替代選項。
通知設定
透過適當的通知配置,永不錯過 Claude 完成任務的時機:
終端機鈴聲通知
啟用任務完成時的聲音提醒:
macOS 使用者注意:別忘了在系統設定 → 通知 → [您的終端機應用程式] 中啟用通知權限。
iTerm 2 系統通知
對於 iTerm 2 任務完成提醒:
- 開啟 iTerm 2 偏好設定
- 導航至設定檔 → 終端機
- 啟用「靜音鈴聲」和「閒置時發送通知」
- 設定您偏好的通知延遲
請注意,這些通知是 iTerm 2 特有的,在預設的 macOS 終端機中不可用。
處理大量輸入
當處理大量程式碼或長指令時:
- 避免直接貼上:Claude Code 可能難以處理非常長的貼上內容
- 使用基於檔案的工作流程:將內容寫入檔案並要求 Claude 讀取
- 注意 VS Code 限制:VS Code 終端機特別容易截斷長貼上內容
Vim 模式
Claude Code 支援可透過 /vim
啟用或透過 /config
配置的 Vim 按鍵綁定子集。
支援的子集包括:
- 模式切換:
Esc
(到 NORMAL),i
/I
,a
/A
,o
/O
(到 INSERT) - 導航:
h
/j
/k
/l
,w
/e
/b
,0
/$
/^
,gg
/G
- 編輯:
x
,dw
/de
/db
/dd
/D
,cw
/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_TIMEOUT | MCP 伺服器啟動的超時時間(毫秒) |
MCP_TOOL_TIMEOUT | MCP 工具執行的超時時間(毫秒) |