All settings changedsettings-reference
Nearest release: v2.1.251, published under an hour before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+50added
Lines−0removed
From line
682
where the diff opens
First seen
21 Aug 2026
this site's first read of the page
Recorded edits149to this page, all time
### `modelPricing` #### Fields for `modelPricing` #### Which models a `modelPricing` row applies to
The whole hunk
from line 682, old and new numbered
/
This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.
from line 682
682682| [`model`](#model) | Change the [model](/docs/en/model-config#set-a-default-model-for-new-sessions) Claude Code starts with | Model and responses | Any file |
683683| [`modelOverrides`](#modeloverrides) | [Map model IDs](/docs/en/model-config#override-model-ids-per-version) to your provider's IDs, such as Bedrock ARNs | Model and responses | Any file |
684684| [`modelPicker`](#modelpicker) | Choose which models the [`/model` picker](/docs/en/model-config#available-models) lists, in your own order and with your own labels | Model and responses | User or managed |
685| [`modelPricing`](#modelpricing) | Report spend at your organization's contracted rates instead of list price | Model and responses | Managed |
685686| [`otelHeadersHelper`](#otelheadershelper) | Generate rotating [OpenTelemetry](/docs/en/monitoring-usage#dynamic-headers) headers with your own command | Authentication and providers | Any file |
686687| [`outputStyle`](#outputstyle) | Change Claude's role, tone, and output format with an [output style](/docs/en/output-styles) | Model and responses | Any file |
687688| [`parentSettingsBehavior`](#parentsettingsbehavior) | Apply or drop restrictions an [SDK or IDE host](/docs/en/managed-settings#let-an-embedding-host-add-policy) passes when you deploy [managed settings](/docs/en/managed-settings) | Enterprise and managed settings | Managed |
from line 1063
10621063
10631064Claude Code drops a row it can't parse and keeps the rest. See [Fix a broken settings file](/docs/en/settings#fix-a-broken-settings-file).
10641065
1066### `modelPricing`
1067
1068Report spend at the rates your organization pays instead of list price. Set it when your organization has contracted rates, so the dollar figures developers see match your bill. Claude Code applies the rates in `/usage`, the [status line](/docs/en/statusline), the Agent SDK's `total_cost_usd`, the [`--max-budget-usd`](/docs/en/cli-reference) limit, and the [OpenTelemetry](/docs/en/monitoring-usage) cost metric and events. You supply the rates: Claude Code doesn't read them from your contract or the Claude Console. Requires Claude Code v2.1.242 or later.
1069
1070* **Scope**: [`Managed`](#scopes). Deploy the key through server-managed settings, an MDM policy, a `managed-settings.json` file, or a [policy helper](/docs/en/managed-settings#compute-the-policy-with-a-helper-program). Claude Code ignores it in user, project, and local settings, in `--settings`, and on Windows in the user-writable [HKCU registry](/docs/en/managed-settings#where-each-mechanism-stores-the-policy). With server-managed settings, each session reports costs at list price until that session's [settings fetch](/docs/en/server-managed-settings#fetch-and-caching-behavior) has confirmed the setting. A host application that embeds Claude Code and sets [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/en/env-vars) can supply a table of its own through the SDK [`managedSettings`](/docs/en/agent-sdk/typescript#options) option, which Claude Code uses only when no managed source sets the key and only in Claude Code v2.1.246 or later.
1071* **Type**: object with an optional `multiplier` and an optional `overrides` map
1072* **Default**: unset, so Claude Code reports list price unless a host application supplies a table
1073
1074This example sets contracted rates for Sonnet 4.6 and then reduces every figure, the Sonnet row included, by 15%. Set `multiplier` alone for a flat discount, `overrides` alone for per-model rates, or both:
1075
1076```json managed-settings.json theme={null}
1077{
1078 "modelPricing": {
1079 "multiplier": 0.85,
1080 "overrides": {
1081 "claude-sonnet-4-6": {
1082 "input": 2.4,
1083 "output": 12,
1084 "cacheRead": 0.24,
1085 "cacheWrite": 3
1086 }
1087 }
1088 }
1089}
1090```
1091
1092For the steps, including how to confirm the rates are in effect, see [Report spend at your contracted rates](/docs/en/costs#report-spend-at-your-contracted-rates).
1093
1094<span id="modelpricing-multiplier" />
1095
1096<span id="modelpricing-overrides" />
1097
1098#### Fields for `modelPricing`
1099
1100| Field | Type | What it does |
1101| :----------- | :------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1102| `multiplier` | number greater than 0 and at most 1 | Scales every cost Claude Code computes, whether or not an `overrides` row covers it |
1103| `overrides` | map of model ID to a rate object with `input`, `output`, `cacheRead`, and `cacheWrite`, each 0 to 10000 | The USD-per-million-token rates for that model, all four required. `cacheWrite` covers both five-minute and one-hour cache writes. See [Which models a row applies to](#which-models-a-modelpricing-row-applies-to) |
1104
1105Claude Code uses a row's rates exactly as you wrote them, without adding the fast-mode surcharge or the [US-only-inference rate](https://platform.claude.com/docs/en/about-claude/pricing). If you also set `multiplier`, Claude Code applies it on top of the row's rates. Claude Code drops a row with a rate it can't parse, or a `multiplier` it can't parse, and keeps the rest; see [Fix a broken settings file](/docs/en/settings#fix-a-broken-settings-file).
1106
1107#### Which models a `modelPricing` row applies to
1108
1109Claude Code decides which models a row applies to from the row's key:
1110
1111* **A built-in model's ID**: a key Claude Code itself uses for a built-in model, whether that key is the model's own ID, such as `claude-sonnet-4-6`, or its Bedrock, Agent Platform, or Foundry ID. Claude Code applies the row to every dated snapshot ID and provider-specific ID of that model.
1112* **Any other key**: a key that isn't a built-in model's ID, such as a gateway model alias. Claude Code applies the row to that one ID only. When a model ID matches one of your keys exactly and also falls under a row keyed by a built-in model's ID, Claude Code uses the exact match.
1113* **A Bedrock application inference profile**: once Claude Code has resolved the profile to the model it routes to, through your [`modelOverrides`](#modeloverrides) map or the [`bedrock:GetInferenceProfile` lookup](/docs/en/amazon-bedrock#iam-configuration), Claude Code applies that model's row to the profile.
1114
10651115### `outputStyle`
10661116
10671117Select an [output style](/docs/en/output-styles) by name. An output style is a saved set of instructions that Claude Code adds to the system prompt to change Claude's role, tone, and output format, such as the built-in Explanatory and Learning styles or one you wrote yourself.
from line 3458
34083458
34093459### `attribution`
34103460
3411Customize the attribution Claude Code adds to git commits and pull requests. Commits get a [git trailer](https://git-scm.com/docs/git-interpret-trailers) such as `Co-Authored-By` by default; pull request descriptions get plain text. Set each part separately with the sub-keys below.
3412
3413* **Scope**: [`Any file`](#scopes)
3414* **Type**: object with `commit` and `pr` strings and a `sessionUrl` Boolean
3415* **Default**: unset, so Claude Code uses the standard attribution shown under each sub-key
3416
3417This example replaces the commit attribution, removes pull request attribution, and drops the session link:
3418
3419```json settings.json theme={null}
3420{
3421 "attribution": {
3422 "commit": "Generated with AI\n\nCo-Authored-By: AI <[email protected]>",
3423 "pr": "",
3424 "sessionUrl": false
3425 }
3426}
3427```
3428
3429To hide all attribution, set [`commit`](#attribution-commit) and [`pr`](#attribution-pr) to empty strings and [`sessionUrl`](#attribution-sessionurl) to `false`. Once you set `commit` or `pr`, Claude Code ignores the deprecated `includeCoAuthoredBy` setting and uses its default text for whichever of the two you left unset.
3430
3431### `includeCoAuthoredBy`
3432
3433<Warning>
3434 Deprecated since v2.0.62, when [`attribution`](#attribution) replaced it. Claude Code still reads it, but new configurations should set `attribution`.
3435</Warning>
3436
3437Use [`attribution`](#attribution) instead, which replaces this key and lets you change or hide the commit trailer, the pull request text, and the session link separately. Claude Code still honors `includeCoAuthoredBy: false` from settings files that predate `attribution`, but ignores it once you set `attribution.commit` or `attribution.pr`.
3438
3439* **Scope**: [`Any file`](#scopes)
3440* **Type**: Boolean
3441 * `true`: the same as unset; Claude Code adds the commit trailer and the pull request attribution text
3442 * `false`: Claude Code omits both the commit trailer and the pull request attribution text, unless `attribution` sets `commit` or `pr`, in which case the [`attribution`](#attribution) rules apply
3443* **Default**: `true`
3444
3445```json settings.json theme={null}
3446{
3447 "includeCoAuthoredBy": false
3448}
3449```
3450
3451To hide all attribution today, set [`attribution.commit`](#attribution-commit) and [`attribution.pr`](#attribution-pr) to empty strings and [`attribution.sessionUrl`](#attribution-sessionurl) to `false`.
3452
3453### `includeGitInstructions`
3454
3455At session start, Claude Code adds two git-related pieces to Claude's prompt: its built-in instructions for how to write commits and pull requests, in the Bash tool's description, and a git status snapshot of your repository in the system prompt, meaning the current branch, the main branch, `git status` output, and recent commits. Set this key to `false` to leave both out, for example when you use your own git workflow skills.
3456
3457* **Scope**: [`Any file`](#scopes)
3458* **Type**: Boolean
3459 * `true`: Claude Code includes its built-in commit and pull request workflow instructions and the git status snapshot. Cloud sessions never include the snapshot
3460 * `false`: Claude Code leaves both out
3461* **Default**: `true`
3462* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS`](/docs/en/env-vars) takes precedence over this key for one session
3463
3464```json settings.json theme={null}
3465{
3466 "includeGitInstructions": false
3467}
3468```
3469
3470### `prUrlTemplate`
3471
3472Point the PR links Claude Code renders, in the footer badge and in tool-result summaries, at an internal code-review tool instead of `github.com`. Claude Code substitutes `{host}`, `{owner}`, `{repo}`, `{number}`, and `{url}` from the `gh`-reported PR URL. The [GitLab merge request badge](/docs/en/interactive-mode#gitlab-merge-requests) keeps its GitLab URL.
3473
3474* **Scope**: [`Any file`](#scopes)
3475* **Type**: string, a URL template using any of the five placeholders
3476* **Default**: unset, so links use the `gh`-reported URL
3477
3478```json settings.json theme={null}
3479{
3480 "prUrlTemplate": "https://reviews.example.com/{owner}/{repo}/pull/{number}"
3481}
3482```
3483
3484Claude Code applies the template only to the links it renders itself; a PR number Claude writes in a message, such as `#123`, stays as Claude wrote it. A URL that doesn't have the `/pull/<number>` shape is left unchanged.
3485
3486### `attribution.commit`
3487
3488Set the attribution text Claude Code adds to git commits, including any trailers. Set it to an empty string to hide commit attribution.
3489
3490* **Scope**: [`Any file`](#scopes)
3491* **Type**: string
3492* **Default**: unset, so Claude Code adds `Co-Authored-By: <model name> <[email protected]>`, where the model name reflects the active model for the session, such as `Claude Sonnet 5`, or `Claude` alone when the session's model isn't a public model
3493
3494This example replaces the default trailer with a custom line and a custom `Co-Authored-By` trailer:
3495
3496```json settings.json theme={null}
3497{
3498 "attribution": {
3499 "commit": "Generated with AI\n\nCo-Authored-By: AI <[email protected]>"
3500 }
3501}
3502```
3503
3504### `attribution.pr`
3505
3506Set the attribution text Claude Code adds to pull request descriptions. Set it to an empty string to hide pull request attribution.
3507
3508* **Scope**: [`Any file`](#scopes)
3509* **Type**: string
3510* **Default**: unset, so Claude Code adds `🤖 Generated with [Claude Code](https://claude.com/claude-code)`
3511
3512```json settings.json theme={null}
3513{
3514 "attribution": {
3515 "pr": ""
3516 }
3517}
3518```
3519
3520### `attribution.sessionUrl`
3521
3522Choose whether Claude Code appends the claude.ai session link when it commits or opens a pull request from a [cloud](/docs/en/claude-code-on-the-web) or [Remote Control](/docs/en/remote-control) session. Claude Code adds the link as a `Claude-Session` trailer on commits and as a link in pull request descriptions. Set it to `false` to omit the link.
3523
3524* **Scope**
3461Customize the attri
No line in this hunk matches that.