# settings — Settings Namespace Commands
> **Deprecation notice:** `.settings.show`, `.settings.get`, and `.settings.set` are deprecated in favor of the unified [`.config`](config.md) command. They remain functional but will be removed in a future version.
### Scope
- **Purpose**: Reference for settings-namespace clv commands (deprecated).
- **Responsibility**: Command syntax, parameters, exit codes, and cross-references for `.settings.show`, `.settings.get`, and `.settings.set`.
- **In Scope**: `.settings.show`, `.settings.get`, `.settings.set`.
- **Out of Scope**: Version commands (→ [version.md](version.md)), process commands (→ [processes.md](processes.md)), unified config command (→ [config.md](config.md)).
---
### Command :: 9. `.settings.show`
Print all key-value pairs from `~/.claude/settings.json`. Use this to inspect the current settings state before reading or writing individual keys.
-- **Parameters:** v::, format::
**Syntax:**
```sh
clv.settings.show [v::N] [format::FMT]
```
**Parameters:**
| [`v::`](../param/04_v.md) | [`VerbosityLevel`](../type/01_verbosity_level.md) | 1 | No | Output detail level |
| [`format::`](../param/05_format.md) | [`OutputFormat`](../type/02_output_format.md) | text | No | Output format |
**Algorithm (2 steps):**
1. Read and parse `~/.claude/settings.json`; exit 2 on read or parse error.
2. Render all key-value pairs in the requested format.
**Examples:**
```sh
clv.settings.show
clv.settings.show format::json
```
### Referenced Formats
| 1 | [text](../format/01_text.md) | Default human-readable output |
| 2 | [json](../format/02_json.md) | Machine-readable structured output |
### Referenced Parameter Groups
| 1 | [Output Control](../param_group/01_output_control.md) | Partial | `count::` |
### Related Commands
| 1 | [`.settings.get`](#command--10-settings-get) | Reads a single key from the displayed set |
| 2 | [`.settings.set`](#command--11-settings-set) | Modifies a key from the displayed set |
### Referenced User Stories
| 1 | [004 Settings Management](../user_story/004_settings_management.md) | Developer (settings management) |
---
**Category:** settings
**Complexity:** 2
**API Requirement:** None
**Idempotent:** Yes
**Risk Level:** Low
---
### Command :: 10. `.settings.get`
Read a single setting from `~/.claude/settings.json` by key. Exits 2 if the key is absent from the settings file.
-- **Parameters:** key::, v::, format::
**Syntax:**
```sh
clv.settings.get key::<KEY> [v::N] [format::FMT]
```
**Parameters:**
| [`key::`](../param/06_key.md) | [`SettingsKey`](../type/04_settings_key.md) | — | Yes | Setting to read |
| [`v::`](../param/04_v.md) | [`VerbosityLevel`](../type/01_verbosity_level.md) | 1 | No | Output detail level |
| [`format::`](../param/05_format.md) | [`OutputFormat`](../type/02_output_format.md) | text | No | Output format |
**Algorithm (3 steps):**
1. Validate `key::` is present; exit 1 if absent.
2. Read and parse `~/.claude/settings.json`; look up the key; exit 2 on file error or missing key.
3. Render the key-value pair in the requested format.
**Examples:**
```sh
clv.settings.get key::theme
clv.settings.get key::autoUpdate format::json
```
### Referenced Formats
| 1 | [text](../format/01_text.md) | Default human-readable output |
| 2 | [json](../format/02_json.md) | Machine-readable structured output |
### Referenced Parameter Groups
| 1 | [Output Control](../param_group/01_output_control.md) | Partial | `count::` |
| 2 | [Settings Identity](../param_group/03_settings_identity.md) | Partial | `value::` |
### Related Commands
| 1 | [`.settings.show`](#command--9-settings-show) | Shows all settings for broader context |
| 2 | [`.settings.set`](#command--11-settings-set) | Writes the key that this command reads |
### Referenced User Stories
| 1 | [004 Settings Management](../user_story/004_settings_management.md) | Developer (settings management) |
---
**Category:** settings
**Complexity:** 5
**API Requirement:** None
**Idempotent:** Yes
**Risk Level:** Low
---
### Command :: 11. `.settings.set`
Write a single setting atomically to `~/.claude/settings.json`. The value is type-inferred: `"true"`/`"false"` → bool, integer/float → number, otherwise → string. Creates the key if absent (upsert semantics).
-- **Parameters:** key::, value::, dry::
**Syntax:**
```sh
clv.settings.set key::<KEY> value::<VALUE> [dry::1]
```
**Parameters:**
| [`key::`](../param/06_key.md) | [`SettingsKey`](../type/04_settings_key.md) | — | Yes | Setting to write |
| [`value::`](../param/07_value.md) | [`SettingsValue`](../type/05_settings_value.md) | — | Yes | Value to write (type-inferred) |
| [`dry::`](../param/02_dry.md) | bool | false | No | Preview without writing |
**Algorithm (4 steps):**
1. Validate both `key::` and `value::` are present; exit 1 if either absent.
2. Infer value type: `"true"`/`"false"` → bool, numeric string → number, anything else → string.
3. Atomically read-modify-write `~/.claude/settings.json` via temp-file rename (upsert semantics).
4. Print confirmation line showing the key and its new stored value.
**Examples:**
```sh
clv.settings.set key::theme value::dark
clv.settings.set key::timeout value::30 # stored as number
clv.settings.set key::autoUpdate value::true # stored as bool
clv.settings.set key::theme value::dark dry::1
```
### Referenced Parameter Groups
| 1 | [Execution Control](../param_group/02_execution_control.md) | Partial | `force::` |
| 2 | [Settings Identity](../param_group/03_settings_identity.md) | Full | — |
### Related Commands
| 1 | [`.settings.get`](#command--10-settings-get) | Reads the key after writing |
| 2 | [`.settings.show`](#command--9-settings-show) | Verifies full settings after modification |
### Referenced User Stories
| 1 | [004 Settings Management](../user_story/004_settings_management.md) | Developer (settings management) |
---
**Category:** settings
**Complexity:** 7
**API Requirement:** Write
**Idempotent:** Yes
**Risk Level:** Low