SpyBara
Go Premium

settings-example.md 2026-11-11 22:59 UTC to 2026-11-12 23:02 UTC

No changes for this document in this history range.

2026
Wed 11 22:59

設定檔範例

開發者、團隊和組織的實際 settings.json 檔案:複製其中一個,保留您想要的鍵,並變更數值。

本頁面包含三個 settings.json 檔案範例,每個對應一個您儲存設定的位置:

  • 開發者的 ~/.claude/settings.json
  • 團隊的 .claude/settings.json,提交到版本庫
  • 組織的 managed-settings.json

每個檔案都是該讀者的合理檔案,因此您可以看到結構並複製您想要的部分。它們都不是建議的基準。每個數值都來自 設定參考 上的鍵項目,其中包含其類型、預設值和可以設定的位置。

每個範例有兩個標籤。可複製的設定檔 是您儲存的檔案。每個鍵的作用 是相同的檔案,每個鍵上方有註解;Claude Code 不接受設定檔中的註解,因此請從第一個標籤複製。

您自己的設定

一位開發者的個人設定。它選擇一個模型和努力程度,調整終端機,並預先批准一個唯讀命令和一個檔案讀取。未列出的所有內容都保持其預設值。這樣的檔案放在 ~/.claude/settings.json 中,適用於您開啟的每個專案。

[tab] 可複製的設定檔

將此儲存為 ~/.claude/settings.json。這是有效的 JSON,沒有註解,因此您可以直接貼上並刪除您不想要的鍵。

{
  "model": "claude-sonnet-5",
  "modelSettings": {
    "claude-sonnet-5": { "effortLevel": "xhigh" }
  },
  "editorMode": "vim",
  "theme": "light-daltonized",
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  },
  "spinnerTipsEnabled": false,
  "preferredNotifChannel": "terminal_bell",
  "permissions": {
    "allow": [
      "Bash(git diff *)",
      "Read(~/.zshrc)"
    ]
  },
  "autoUpdatesChannel": "stable",
  "cleanupPeriodDays": 20
}

[tab] 每個鍵的作用

相同的檔案,每個鍵上方有註解。在此閱讀;從另一個標籤複製,因為 Claude Code 不接受設定檔中的註解。

{
  // 在 Sonnet 5 上開始每個工作階段
  "model": "claude-sonnet-5",
  // 在 Sonnet 5 上執行高於其預設高級別的推理;/effort 為每個模型儲存一個級別,--effort 為單個工作階段設定一個級別
  "modelSettings": {
    "claude-sonnet-5": { "effortLevel": "xhigh" }
  },
  // 提示中的 Vim 快捷鍵
  "editorMode": "vim",
  // 色盲友善的淺色主題
  "theme": "light-daltonized",
  // 提示下方的狀態列:模型名稱和已使用的內容
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'",
    "padding": 2
  },
  // 隱藏在微調器下旋轉的提示
  "spinnerTipsEnabled": false,
  // 為通知(例如完成的任務或等待的權限提示)響鈴終端機鈴聲
  "preferredNotifChannel": "terminal_bell",
  // 讓 Claude Code 執行 git diff 並讀取您的 .zshrc,無需詢問
  "permissions": {
    "allow": [
      "Bash(git diff *)",
      "Read(~/.zshrc)"
    ]
  },
  // 從穩定通道取得更新
  "autoUpdatesChannel": "stable",
  // 刪除超過 20 天的工作階段記錄和其他本機工作階段資料
  "cleanupPeriodDays": 20
}

團隊的共享設定

一個團隊的共享設定,提交到版本庫,以便每個複製它的人都獲得相同的權限、hooks 和外掛程式市集。在版本庫的頂部將這樣的檔案儲存在 .claude/settings.json。提交之前需要了解的事項:

  • 專案討論串以外的雲端工作階段也會讀取它。 包含一個儲存庫的雲端工作階段會在複製內部啟動,因此提交的檔案也適用於此。
  • 遙測進入受管理或個人設定。 Claude Code 會忽略版本庫設定檔案中的 OpenTelemetry 匯出器變數,除了一些關閉遙測的值。在 受管理設定 中為您的組織設定它們,或在每個人的 ~/.claude/settings.json 中設定。
  • 允許規則等待信任。 允許規則和 extraKnownMarketplaces 項目在每個人 信任此資料夾本身 後生效,不僅是父資料夾;拒絕和詢問規則在每個工作階段中適用,無論是否信任。
  • hook 是版本庫中的指令碼。 此檔案的 hook 執行 .claude/hooks/block-rm.sh;hook 如何解析 說明如何編寫它。
  • 規則匹配所寫的命令和路徑。 Bash(git push *) 不匹配 git -C . push。Read(./.env) 本身會停止檔案工具和命名檔案的命令,例如 cat .env,但不會停止 grep -r 在目錄上執行;此檔案中的 sandbox 區塊關閉了該間隙,因為沙箱 新增您的 Read 拒絕路徑 到每個沙箱化命令無法讀取的內容。

[tab] 可複製的設定檔

將此儲存為版本庫頂部的 .claude/settings.json 並提交。這是有效的 JSON,沒有註解,因此您可以直接貼上並刪除您不想要的鍵。

{
  "permissions": {
    "allow": [
      "Bash(npm run *)"
    ],
    "ask": [
      "Bash(git push *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
          }
        ]
      }
    ]
  },
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    }
  },
  "enabledPlugins": {
    "code-formatter@acme-tools": true
  },
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "allowWrite": [
        "/tmp/build"
      ]
    },
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "*.example.com"
      ]
    }
  },
  "plansDirectory": "./plans"
}

[tab] 每個鍵的作用

相同的檔案,每個鍵上方有註解。在此閱讀;從另一個標籤複製,因為 Claude Code 不接受設定檔中的註解。

{
  "permissions": {
    // 執行 npm 指令碼,無需詢問
    "allow": [
      "Bash(npm run *)"
    ],
    // 在 git push 命令前確認
    "ask": [
      "Bash(git push *)"
    ],
    // 拒絕檔案工具和檔案讀取命令讀取環境檔案和 secrets 資料夾
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  },
  // 在每個 Bash 命令前,執行儲存庫中可以阻止它的指令碼
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh"
          }
        ]
      }
    ]
  },
  // 在每個複製上註冊團隊的外掛程式市集
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": {
        "source": "github",
        "repo": "acme-corp/claude-plugins"
      }
    }
  },
  // 啟用該市集中的一個外掛程式;來自外部來源(例如 GitHub 儲存庫)的外掛程式仍需要每個人安裝一次
  "enabledPlugins": {
    "code-formatter@acme-tools": true
  },
  // 沙箱命令:可寫的建置目錄;npm 和 example.com 預先允許
  "sandbox": {
    "enabled": true,
    "filesystem": {
      "allowWrite": [
        "/tmp/build"
      ]
    },
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "*.example.com"
      ]
    }
  },
  // 將計畫檔案保留在儲存庫內
  "plansDirectory": "./plans"
}

組織的受管設定

一個 managed-settings.json 檔案,顯示受管鍵的形狀,每個都有一個合理的數值。這不是建議的政策:選擇符合您自己要求的鍵並設定您自己的數值。該範例設定這些鍵:

  • forceLoginMethod 和 forceLoginOrgUUID 固定登入方法和組織
  • availableModels 和 enforceAvailableModels 限制工作階段可以使用的模型
  • permissions.deny 拒絕兩個檔案讀取和 curl 命令 如 Claude 所寫,disableBypassPermissionsMode 移除繞過權限模式
  • allowManagedPermissionRulesOnly 和 allowManagedMcpServersOnly 使受管權限和 MCP 允許清單成為唯一適用的清單
  • allowedMcpServers 透過 URL 固定 MCP 伺服器
  • strictKnownMarketplaces 允許一個外掛程式市集
  • sandbox 沙箱化命令,具有固定的網路允許清單且無沙箱外重試。其 failIfUnavailable 鍵會在沙箱無法執行的環境中阻止 Claude Code 啟動
  • requiredMinimumVersion 設定最低 Claude Code 版本
  • cleanupPeriodDays 將工作階段記錄和其他本機資料的保留期縮短至七天
  • companyAnnouncements 在啟動時顯示訊息

管理員將這樣的檔案部署為 managed-settings.json,或透過 MDM 或 伺服器受管設定 部署相同的 JSON。一個部署的檔案適用於它到達的每台機器或帳戶。要為一個群組提供不同的數值,請將不同的檔案或設定檔部署到該群組。在 Enterprise 方案中,您也可以改為在伺服器受管設定中為該群組提供專屬的設定。

[tab] 可複製的設定檔

將此部署為 managed-settings.json,或透過 MDM 或 claude.ai 主控台部署相同的 JSON。這是有效的 JSON,沒有註解;將範例組織 UUID、伺服器 URL 和市集替換為您自己的,並刪除您不想要的鍵。

{
  "forceLoginMethod": "claudeai",
  "forceLoginOrgUUID": [
    "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  ],
  "availableModels": [
    "opus",
    "sonnet"
  ],
  "enforceAvailableModels": true,
  "permissions": {
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./secrets/**)"
    ],
    "disableBypassPermissionsMode": "disable"
  },
  "allowManagedPermissionRulesOnly": true,
  "allowedMcpServers": [
    {
      "serverUrl": "https://api.githubcopilot.com/*"
    }
  ],
  "allowManagedMcpServersOnly": true,
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "acme-corp/approved-plugins"
    }
  ],
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowUnsandboxedCommands": false,
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "github.com"
      ],
      "allowManagedDomainsOnly": true
    }
  },
  "requiredMinimumVersion": "2.1.150",
  "cleanupPeriodDays": 7,
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}

[tab] 每個鍵的作用

相同的檔案,每個鍵上方有註解。在此閱讀;從另一個標籤複製,因為 Claude Code 不接受設定檔中的註解。

{
  // 僅 claude.ai 登入,且僅在此組織中
  "forceLoginMethod": "claudeai",
  "forceLoginOrgUUID": [
    "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  ],
  // 僅 Opus 和 Sonnet 模型;使用 enforceAvailableModels,預設選項也遵守清單
  "availableModels": [
    "opus",
    "sonnet"
  ],
  "enforceAvailableModels": true,
  "permissions": {
    // 在每台機器上拒絕 curl 命令和讀取專案的 .env 檔案和 secrets 資料夾
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./secrets/**)"
    ],
    // 從每個工作階段移除繞過權限模式
    "disableBypassPermissionsMode": "disable"
  },
  // 忽略來自使用者、專案和本機設定的權限規則
  "allowManagedPermissionRulesOnly": true,
  // 僅 GitHub MCP 伺服器,透過 URL 而非名稱匹配,因為使用者可以
  // 將任何伺服器命名為 "github"。不匹配的使用者新增伺服器不會載入,包括
  // 當清單僅有 URL 項目時的每個 stdio 伺服器。下面的 allowManagedMcpServersOnly
  // 鍵使此受管清單成為唯一適用的允許清單
  "allowedMcpServers": [
    {
      "serverUrl": "https://api.githubcopilot.com/*"
    }
  ],
  "allowManagedMcpServersOnly": true,
  // 外掛程式只能來自此市集
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "acme-corp/approved-plugins"
    }
  ],
  // 沙箱化 Claude 執行的每個命令,如果無法設定沙箱則拒絕啟動,
  // 並且永遠不讓被阻止的命令在沙箱外重試;網路
  // 限制為 npm 和 GitHub,使用者無法新增網域
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowUnsandboxedCommands": false,
    "network": {
      "allowedDomains": [
        "registry.npmjs.org",
        "github.com"
      ],
      "allowManagedDomainsOnly": true
    }
  },
  // 拒絕在 2.1.150 之前的版本上啟動
  "requiredMinimumVersion": "2.1.150",
  // 在 7 天後刪除工作階段記錄和其他本機工作階段資料
  "cleanupPeriodDays": 7,
  // 每個使用者在啟動時看到的訊息
  "companyAnnouncements": [
    "Welcome to Acme Corp! Review our code guidelines at docs.example.com"
  ]
}