All settings changedsettings-reference
Nearest release: v2.1.243, 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+53added
Lines−2removed
From line
677
where the diff opens
First seen
21 Aug 2026
this site's first read of the page
Recorded edits143to this page, all time
### `modelPicker` #### Fields for `modelPicker`
The whole hunk
from line 677, 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 677
677677| [`minimumVersion`](#minimumversion) | Keep [auto-updates](/docs/en/setup#pin-a-minimum-version) from installing anything below a version | Updates and versioning | Any file |
678678| [`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 |
679679| [`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 |
680| [`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 |
680681| [`otelHeadersHelper`](#otelheadershelper) | Generate rotating [OpenTelemetry](/docs/en/monitoring-usage#dynamic-headers) headers with your own command | Authentication and providers | Any file |
681682| [`outputStyle`](#outputstyle) | Change Claude's role, tone, and output format with an [output style](/docs/en/output-styles) | Model and responses | Any file |
682683| [`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 1008
10071008
10081009See [Override model IDs per version](/docs/en/model-config#override-model-ids-per-version).
10091010
1011### `modelPicker`
1012
1013List the models the `/model` picker offers, in the order you write them and under labels you choose, so the picker lists the models your organization runs, after the built-in lineup or instead of it. Each row's `model` is taken verbatim, so it accepts anything `--model` accepts: an alias such as `opus`, an Anthropic model ID, or a provider-format ID for Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or an LLM gateway. Requires Claude Code v2.1.242 or later.
1014
1015* **Scope**: [`User or managed`](#scopes). Claude Code reads the key from managed settings, `--settings`, and user settings, and ignores it in project and local settings so a repository you clone can't relabel the picker. The highest of those three that sets the key supplies the whole lineup, and Claude Code never combines lineups from two sources.
1016* **Type**: object with an `options` array of rows and an optional `replaceBuiltInOptions` Boolean
1017* **Default**: unset, so the picker shows the built-in lineup
1018
1019This example adds two Bedrock deployments after the built-in lineup, under names your team recognizes:
1020
1021```json managed-settings.json theme={null}
1022{
1023 "modelPicker": {
1024 "options": [
1025 { "model": "us.anthropic.claude-opus-4-8", "label": "Opus (production)" },
1026 {
1027 "model": "us.anthropic.claude-sonnet-4-6",
1028 "label": "Sonnet (production)",
1029 "description": "Day-to-day work"
1030 }
1031 ]
1032 }
1033}
1034```
1035
1036<span id="modelpicker-options" />
1037
1038<span id="modelpicker-replacebuiltinoptions" />
1039
1040#### Fields for `modelPicker`
1041
1042The key takes two fields, one for the rows themselves and one for whether they replace the built-in lineup or add to it.
1043
1044| Field | Type | What it does |
1045| :---------------------- | :------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1046| `options` | array of rows, each with a required `model` and an optional `label` and `description` | The rows the picker shows, in this order, except that a grayed-out row moves to the bottom. Without a `label`, Claude Code titles the row with the built-in name for a model it knows, or the model ID otherwise, and without a `description` it writes a generic second line |
1047| `replaceBuiltInOptions` | Boolean, default `false` | Set it to `true` to show only these rows, **Default**, and a row for the model the session is already using. Leave it unset to add these rows after the built-in lineup |
1048
1049With `replaceBuiltInOptions` on, Claude Code hides every other row: the built-in lineup, the rows it adds for [`availableModels`](#availablemodels) entries, the models [gateway discovery](/docs/en/llm-gateway-protocol#model-discovery) found, and [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/en/model-config#add-a-custom-model-option). With it off, Claude Code skips a listed model that the built-in lineup already covers. A label changes what the picker shows, not which model Claude Code runs.
1050
1051An [`availableModels`](#availablemodels) allowlist still applies to these rows. Before you add a listed model to the allowlist, read [Merge behavior](/docs/en/model-config#merge-behavior): a specific model ID narrows its family's wildcard entry. Claude Code also checks each row against the session before it shows the picker:
1052
1053* **Dropped**: a row Claude Code can't serve, such as a retired model or a model your organization has no access to
1054* **Grayed out**: a row you can't select yet, shown with the reason
1055* **No row survives**: Claude Code keeps the built-in lineup, filtered by the allowlist as usual
1056
1057Claude 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).
1058
10101059### `outputStyle`
10111060
10121061Select 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 3506
34573506
34583507The reach depends on which file carries the key:
34593508
3460* **In managed settings**: Claude Code disables every hook, including managed ones
3461* **In any other settings file**: Claude Code disables user, project, local, and plugin hooks; managed hooks and hooks from plugins force-enabled in managed [`enabledPlugins`](#enabledplugins) keep running
3509* **In managed settings**: Claude Code disables every configured hook, including managed ones, and keeps running the hooks the [Agent SDK](/docs/en/agent-sdk/overview) registers in process
3510* **In any other settings file**: Claude Code disables user, project, local, and plugin hooks; managed hooks, Agent SDK hooks, and hooks from plugins force-enabled in managed [`enabledPlugins`](#enabledplugins) keep running
34623511
3512Keeping Agent SDK hooks running when managed settings set this key requires Claude Code v2.1.242 or later.
3513
34633514The [`/goal`](/docs/en/goal) command can't run while hooks are disabled, and the `/hooks` menu shows a notice instead of your hooks.
34643515
34653516#### Status line and file suggestion gates
from line 3619
35683619}
35693620```
35703621
3571The `ultracode` effort setting, `/workflows`, and saved workflow commands are unaffected. Requires Claude Code v2.1.157 or later. Before v2.1.160, the trigger keyword was `workflow`.
3572
3573### `workflowSizeGuideline`
3574
3575Set the [agent count Claude aims for](/docs/en/workflows#set-a-size-guideline) in the dynamic workflows it writes. Claude Code sends the value to Claude as advice, not an enforced cap: `"small"` asks for fewer than 5 agents, `"medium"` fewer than 15, and `"large"` fewer than 50. Choose `"small"` when you want to bound what a workflow spends. Requires Claude Code v2.1.219 or later.
3576
3577* **Scope**: [`Any file`](#scopes). A value there takes precedence over the **Dynamic workflow size** choice in `/config`, which Claude Code stores in `~/.claude.json`, and Claude Code hides that row while a settings file sets the key.
3578* **Type**: string, one of:
3579 * `"unrestricted"`: no guideline, so Claude sizes the workflow to the task
3580 * `"small"`: Claude aims for fewer than 5 agents
3581 * `"medium"`: Claude aims for fewer than 15 agents
3582 * `"large"`: Claude aims for fewer than 50 agents
3583* **Default**: `"medium"`
3584
3585```json settings.json theme={null}
3586{
3587 "workflowSizeGuideline": "small"
3588}
3589```
3590
3591Requires Claude Code v2.1.219 or later; on v2.1.202 through v2.1.218, set the guideline in `/config` instead.
3592
3593<span id="plugin-configuration" />
3594
3595<span id="manage-plugins" />
3596
3597<span id="plugin-settings" />
3598
3599## Plugins and skills
3600
3601Enable plugins, register marketplaces, restrict which plugin sources an organization allows, and control which skills load. For installing and building plugins, see [Plugins](/docs/en/plugins).
3602
3603### `disableBundledSkills`
3604
3605Turn off the [skills](/docs/en/skills) and workflows included with Claude Code. Claude Code removes bundled skills and workflows entirely, while built-in commands such as `/init` stay typable but are hidden from the model.
3606
3607* **Scope**: [`Any file`](#scopes)
3608* **Type**: Boolean
3609 * `true`: Claude Code removes bundled skills and workflows and hides built-in commands such as `/init` from the model
3610 * `false`: bundled skills load
3611* **Default**: unset, so bundled skills load
3612* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_BUNDLED_SKILLS`](/docs/en/env-vars) set to `1` turns bundled skills off for one session; whichever of the two turns them off, the other can't turn them back on
3613
3614```json settings.json theme={null}
3615{
3616 "disableBundledSkills": true
3617}
3618```
3619
3620Skills from plugins, `.claude/skills/`, and `.claude/commands/` are unaffected. `/doctor` stays typable like the built-in commands; to hide it, set [`DISABLE_DOCTOR_COMMAND`](/docs/en/env-vars) instead.
3621
3622### `disableSkillShellExecution`
3623
3624Turn off inline shell execution for `` !`...` `` and ` ```! ` blocks in [skills](/en/skills) and custom commands from user, project, plugin, or additional-directory sources. Claude Code replaces each command with `[shell command execution disabled by policy]` instead of running it.
3625
3626* **Scope**: [`Any file`](#scopes). A `true` in managed settings can't be overridden by `false` elsewhere.
3627* **Type**: Boolean
3628 * `true`: Claude Code replaces each inline shell command with `[shell command execution disabled by policy]` instead of running it
3629 * `false`: inline shell runs
3630* **Default**: unset, so inline shell runs
3631
3632```json settings.json theme={null}
3633{
3634 "disableSkillShellExecution": true
3635}
3636```
3637
3638Bundled skills and skills deployed through managed settings are unaffected.
3639
3640### `skillOverrides`
3641
3642Hide or collapse a [skill](/docs/en/skills#override-skill-visibility-from-settings) without editing its `SKILL.md`. Claude Code applies the value under each skill's name to the skill list Claude sees and to your `/` autocomplete.
3643
3644* **Scope**: [`Any file`](#scopes). The `/skills` menu writes to `.claude/settings.local.json`.
3645* **Type**: object mapping skill name to one of:
3646 * `"on"`: Claude sees the skill and you can type `/name`
3647 * `"name-only"`: Claude sees the skill by name without its description
3648 * `"user-invocable-only"`: Claude doesn't see the skill, but you can still type `/name`
3649 * `"off"`: Claude doesn't see the skill and `/name` is hidden from autocomplete
3650* **Default**: unset, so every skill is `"on"`
3651
3652This example lists `legacy-context` to Claude by name only and hides `deploy` from Claude and from `/` autocomplete:
3653
3654```json settings.json theme={null}
3655{
3656 "skillOverrides": {
3657 "legacy-context": "name-only",
3658 "deploy": "off"
3659 }
3660}
3661```
3662
3663`"name-only"` lists the skill to the model without its description, `"user-invocable-only"` hides it from the model but keeps `/name` typable, and `"off"` hides it from both. Overrides don't apply to plugin skills, which you manage through `/plugin`.
3664
3665### `syncClaudeAiSkills`
3666
3667Turn off the download of the [skills you enable on claude.ai](/docs/en/skills#how-synced-skills-behave). Claude Code downloads them into `~/.claude/skills/synced/` when you run it in [non-interactive mode](/docs/en/headless) with the `-p` flag and [`CLAUDE_CODE_SYNC_SKILLS`](/docs/en/env-vars#variables) set. Set `false` to stop that download and hide the skills it already synced. Claude Code honors only `false`
3622The `ultracode` effor
No line in this hunk matches that.