Skip to content

feat(cli): /config set <key> <value> — edit settings from the REPL#165

Merged
oratis merged 1 commit into
mainfrom
feat/cli-config-set
Jun 7, 2026
Merged

feat(cli): /config set <key> <value> — edit settings from the REPL#165
oratis merged 1 commit into
mainfrom
feat/cli-config-set

Conversation

@oratis
Copy link
Copy Markdown
Owner

@oratis oratis commented Jun 7, 2026

/config was a read-only dump. Adds a set subcommand that writes to the user settings.json:

  • dotted keys nest (e.g. /config set permissions.defaultMode plan);
  • the value is parsed as JSON (number / bool / object / array), falling back to a string;
  • writes via a REPL-injected userSettingsPath (honors --home, so tests + a custom $HOME never touch the real config).

Applies to new sessions (model/mode/effort still change live via /model etc.).

Tests (+3): dotted-key write, JSON-number parse (200 → number not string), usage. cli 140, typecheck + format:check clean. Doc: /config row updated.

🤖 Generated with Claude Code

/config was a read-only dump. Add a `set` subcommand that writes to the user
settings.json:
- dotted keys nest (e.g. `permissions.defaultMode`);
- the value is parsed as JSON (number / bool / object / array), falling back to
  a string;
- writes via the REPL-injected userSettingsPath (honors --home, so tests + a
  custom $HOME never touch the real config).

Applies to new sessions (model/mode/effort still change live via /model etc.).

Tests (parity-commands.test.ts, +3): dotted-key write, JSON-number parse, usage.
cli 140. Doc: /config row notes `set`.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@oratis oratis merged commit dfc8440 into main Jun 7, 2026
3 checks passed
@oratis oratis deleted the feat/cli-config-set branch June 7, 2026 09:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant