[BUG] /config settings do not persist across sessions — toggles are session-only
Bug Description
Settings changed via the /config dialog (Config tab) do not persist across sessions. Toggling settings like "Default permission mode", "Show tips", or any other option in the /config UI only affects the current session — the values are never written to disk.
Evidence
Monitored all four settings files before and after toggling "Show tips" via /config:
| File | Changed? | Contains new setting? |
|------|----------|-----------------------|
| ~/.claude/settings.json | No | No |
| ~/.claude/settings.local.json | No | No |
| <project>/.claude/settings.json | No | No |
| <project>/.claude/settings.local.json | No | No |
Also checked ~/.claude.json — its timestamp updates during /config but only session metadata is written (e.g., tipsHistory, lastPlanModeUse), not the config preference values.
grep -rl "showTips\|defaultMode\|defaultPermission" across all ~/.claude/*.json files finds nothing written by /config.
The only way to persist settings like defaultMode is to manually add them to ~/.claude/settings.json, which does work and survives restarts.
Steps to Reproduce
- Start Claude Code (
v2.1.139) - Run
/config, go to the Config tab - Change "Default permission mode" from its current value to something else (e.g., "Auto mode" → "Plan mode")
- Dismiss the dialog
- Run
grep defaultMode ~/.claude/settings.json ~/.claude/settings.local.json .claude/settings.json .claude/settings.local.json— nodefaultModekey exists in any file - Exit and restart Claude Code
- Run
/configagain — the setting has reverted to its previous value
This reproduces for all tested /config toggles, not just "Default permission mode."
Expected Behavior
/config changes should persist to ~/.claude/settings.json (or the appropriate scoped file) so they survive across sessions.
Environment
- Claude Code version: 2.1.139
- OS: Arch Linux (CachyOS kernel 7.0.5-2)
- Shell: zsh
- Auth type: Teams subscription (OAuth)
Workaround
Manually edit ~/.claude/settings.json and add the desired keys (e.g., "defaultMode": "auto" inside the "permissions" block). These manual entries do persist and are respected on startup.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗