settings.json 被全量重写,enabledPlugins 被清空 Claude Code
Quick fix
将需保留的 Claude Code 项目设置放入 .claude/settings.local.json,避免 cc-switch 覆盖用户级 settings.json 时丢失。
Symptom
Section titled “Symptom”但是只要一切换到 路由模式 上面这段就消失了 导致我设置失效 CC还自动升级 缓存也无法有效命中该报告称 cc-switch 会以 provider 配置与数据库中的 common config 重新生成并整文件写入 `~/.claude/settings.json`。不属于 common config 白名单的 `statusLine`、`enabledPlugins`、`permissions`、`hooks` 及自定义 `env` 键可能不会被保存到该片段,因此在切换、同步或路由模式等写盘动作后静默丢失。
讨论中指出,3.17.0 到 3.18.0 的 switch 路径已加入部分同步,但 update、add、路由模式和启动同步等路径仍可能使用旧片段覆盖文件。评论者已提交 PR #5786 拟补齐这些路径,但原帖未显示该 PR 已合并或发布;因此不能将其视为已验证的正式修复。
若问题只需在特定项目中规避,在该项目仓库根目录创建 `.claude/settings.local.json`,保存需要跨 cc-switch 切换保留的设置。该文件是项目级 Local scope,cc-switch 不会写入它。
// .claude/settings.local.json{"statusLine": {"type": "command","command": "node ~/.claude/plugins/claude-hud/statusline.mjs","padding": 0},"enabledPlugins": {"claude-hud@claude-hud": true},"skipDangerousModePermissionPrompt": true,"hooks": { ... },"permissions": { ... }}切换或同步后检查 `~/.claude/settings.json` 中的自定义设置是否已丢失;对于多个项目,需要分别在各项目的 `.claude/settings.local.json` 中配置。
关注 issue #3631 中提到的 PR #5786 是否合并并发布;原帖尚未提供已发布版本可验证的根治方案。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 1 个真实 issue
- `~/.claude/settings.local.json` 能作为用户级设置的避难所吗?
- 不能。讨论说明不存在用户级 `.local` 变体;`.claude/settings.local.json` 仅在项目仓库根目录生效。
- 3.18.0 是否已修复 `statusLine` 丢失?
- 讨论称 3.18.0 仅在 switch 路径加入部分 autosync;update、add、路由模式和启动同步路径仍可能覆盖陈旧片段,原帖未确认正式发布的完整修复。
- 为什么自定义 `env` 键也会消失?
- 讨论中的源码分析称 common config 采用白名单序列化;报告列出的 `DISABLE_AUTOUPDATER`、`CLAUDE_CODE_ATTRIBUTION_HEADER` 等自定义键不会进入该片段。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。