生活分享

Claude Code|settings.json 設定教學

修改 JSON、理解設定範圍並驗證生效。settings.json 用來設定 Claude Code 的行為,例如個人偏好、權限與 Hooks。本篇會先教你讀懂最少必要的 JSON,再用一個可逆的小設定示範作用範圍、載入確認與恢復方式。你會知道「檔案存好了」和「設定真的生效」之間,還需要哪些檢查。

閱讀時間約 5 分鐘

settings.json 設定教學:文件、螢幕與完成記號的幾何插圖
圖片:Mokaair (© Mokaair)
本篇目錄
  1. 看懂 JSON 的基本規則
  2. 選擇影響範圍
  3. 加入一個可逆設定
  4. 理解優先順序與合併
  5. 用單次設定做比較
  6. 設定何時生效與如何恢復

settings.json 用來設定 Claude Code 的行為,例如個人偏好、權限與 Hooks。本篇會先教你讀懂最少必要的 JSON,再用一個可逆的小設定示範作用範圍、載入確認與恢復方式。你會知道「檔案存好了」和「設定真的生效」之間,還需要哪些檢查。

請準備可用的本機 CLI 與。如果已有設定,先閱讀內容並保存原本版本;以下範例只展示需要調整的鍵,不能直接覆蓋包含權限、環境變數或組織要求的整份檔案。尚未理解 MD 與設定差別時,先讀。

看懂 JSON 的基本規則

看懂 JSON 的基本規則 → 選擇影響範圍 → 加入一個可逆設定
看懂 JSON 的基本規則 → 選擇影響範圍 → 加入一個可逆設定 · 圖片:Mokaair (© Mokaair)
閱讀完整文字說明

settings.json 設定教學,以流程和文件圖形呈現教學重點。

JSON 用大括號表示物件,鍵與字串值使用雙引號,鍵值中間是冒號,多個欄位以逗號分隔。布林值 true、false 不加引號;最後一個欄位後面不留多餘逗號。Claude Code 的 settings 檔使用嚴格 JSON,不能把 // 註解直接放進範例中。

JSON 語法示例:先在暫存文字檔閱讀 · json
{
  "language": "繁體中文",
  "spinnerTipsEnabled": false
}

這裡 language 是字串,spinnerTipsEnabled 是布林值。字串 "false" 與布林值 false 是不同資料型態;全形引號也不是 JSON 的雙引號。用有 JSON 檢查功能的編輯器保存,可以在啟動 Claude 前先看到語法錯誤,但工具自己的語意驗證仍然必要。

選擇影響範圍

設定位置影響對象適合用途
~/.claude/settings.json自己跨專案使用個人偏好
.claude/settings.json使用這個專案的人團隊共享設定
.claude/settings.local.json自己在這個專案本機實驗與個人調整
管理設定組織控制的使用者團隊政策

本篇使用專案 local 檔做練習,避免把個人偏好推給全體隊友。如果手動建立這個檔案,要確認 Git 忽略設定,不能只因名稱有 local 就假設一定不會提交。共享設定則需要正常版本審查,因為其他人打開專案也可能受影響。

加入一個可逆設定

先檢查 .claude/settings.local.json 是否存在。存在時在原物件中加入或修改 spinnerTipsEnabled;不存在才建立新檔。這個練習關閉等待時的提示,不涉及放寬工具權限,適合先學會檔案位置與設定優先順序。

寫入 .claude/settings.local.json:合併到現有物件 · json
{
  "spinnerTipsEnabled": false
}

若原本已有其他鍵,保留它們並注意逗號。不要把兩個各自完整的大括號物件直接接在同一個檔案,因為那不是一份有效 JSON。保存後先用編輯器檢查,再在專案終端機執行 doctor 查看 Claude Code 的診斷。

專案終端機:檢查設定語法與被拒絕的項目 · bash
claude doctor
Claude Code 對話框:確認設定來源 · text
/status

Status 的 Setting sources 可以幫你確認讀入哪些設定來源,但不會逐鍵說明每個值來自哪份檔案。不要看到 Project local settings 就認定所有鍵都採用 local 值;仍要結合鍵本身的支援條件與優先順序判斷。

理解優先順序與合併

一般情況下,管理設定最高,其次是啟動命令列覆寫、專案 local、共享專案、使用者設定。較高層只會覆寫它有設定的對應鍵,不會因為有一個 local 檔就整份丟掉較低層。清單類設定可能採合併,而不是簡單取代;權限規則另有判斷順序,不能只套用單值概念。

環境變數也不能粗略塞進同一條排名。某個變數與設定鍵如何互動,要查該項目的官方說明。診斷模型或供應商選擇時尤其如此:即使 settings.json 沒寫,shell 仍可能帶入相關環境變數。檢查時只列必要名稱與是否存在,不要把金鑰內容印出來。

用單次設定做比較

如果想試某個值而不修改持久設定,可將設定寫入獨立 JSON,再透過 --settings 指定。使用檔案能減少 Windows 與 Bash 引號跳脫的差異。以下用一個專門的練習檔,完成後移除它即可;不要把它和真正的團隊設定混在一起。

寫入 practice-settings.json:單次練習設定 · json
{
  "spinnerTipsEnabled": true
}
專案終端機:啟動一次使用指定設定的 session · bash
claude --settings practice-settings.json

比較有無這個啟動的 session,並記錄實際來源與可觀察行為。這個示例不表示 --settings 能超越組織管理限制;遇到管理政策控制的值,先查管理設定。若不確定鍵是否支援,查看當前版本的官方參考與 doctor 診斷,不要只以編輯器上色判斷。

設定何時生效與如何恢復

Claude Code 會重新載入許多設定變更,但部分項目只在 session 啟動時讀取;模型等設定也有對話內專用控制方式。為了讓第一次實驗容易比較,可以每次保存後開一個新 session,再查看狀態。這是驗證方法,不代表所有設定都必須重啟才能生效。

恢復時,只移除本次加入的鍵或還原原值,再跑 doctor 並確認來源。若整份檔案只為練習建立,先確認裡面沒有後來新增的內容,才決定是否移除。遇到 Settings Error,依錯誤指向的檔案與位置修正;不要直接刪除整個 .claude 目錄。

小練習是完成「保存原值 → 修改 local 設定 → doctor 與 status 核對 → 單次覆寫 → 恢復」一個循環。完成判準是你能指出每次修改的檔案、影響範圍與驗證結果。之後加入或時,也沿用這個流程逐項檢查。

回總目錄

  • 生活分享

    Claude Code|建立第一個 mod:在 Claude Code 行程內數工具呼叫

    寫一個三檔案的 mod,用驗證器與測試確認它掛上的事件。文件把 mod 定義成多了入口檔的 plugin:入口檔叫 hooks module,Claude Code 在事件發生時呼叫裡面的函式,函式可以觀察、改寫或接手事件。

  • 生活分享

    Claude Code|Git Worktree 平行工作

    隔離多個任務的檔案與分支。Git Worktree 讓同一儲存庫擁有多個工作目錄,各自使用分支與檔案。本篇會把待辦篩選與文件整理分開,確認兩個 session 不會直接改到彼此的檔案,再把其中一個成果整合回主分支。你也會知道何時可以安全清理工作目錄。

  • 生活分享

    Claude Code|雙 Worktree 實作與衝突整合

    隔離兩項功能,最後完成整合與回歸。兩個 Claude 工作階段同時編輯專案,最容易出現的問題是互相改到同一份檔案,或各自測試通過、整合後卻失敗。本篇用兩個 Worktree 分別處理篩選預設值與介面文字,故意製造一次小衝突,再完成整合、驗證與清理。你不需要先啟用 Agent Teams。

  • 生活分享

    Claude Code|比較流程品質、用量與執行時間

    以同一資料集比較兩種工作方法。比較兩種 Claude 工作方法時,不能只挑成功那一次,也不能只看第一個答案有多快。本篇用固定案例、原始紀錄和一致判準,比較品質、重試、等待與人工整合時間,最後寫出有樣本數與限制的報告,而不是保證某個方法一定省錢。

最新旅遊情報攻略

資料來源

生活分享