跳转到内容

settings.json 被重置 - Claude Code

Quick fix

将插件、hooks 等共享字段写入「通用配置」并在切换时勾选写入;接管模式异常时先关闭后切换供应商再开启。

报错原文
安装插件或者添加一些其他配置之类的会修改 settings.json 内的内容,但是 开启/关闭  代理就会重置该文件,导致所有的自定义变更丢失。

cc-switch 的 Claude 代理接管及供应商同步会写入 `settings.json`。部分版本与场景中,写入基底是供应商保存的 `settings_config` 或较早的恢复备份,而不是当前 live 文件,因此 `enabledPlugins`、`hooks`、`permissions`、`statusLine` 等未包含在供应商配置或通用配置中的字段会丢失。已有报告表明,即使代理接管关闭,应用部分 Claude provider 配置时也可能发生整文件覆盖。

维护者说明,请求地址和 API Key 属于供应商独有配置;插件、hooks 等共享配置应通过「通用配置」在供应商间传递。v3.12.2 曾调整代理接管的备份恢复流程以保留自定义字段,但后续 3.19.1 与 3.20.0 的开放报告仍描述了全量覆盖,因此该修复并未覆盖所有写入场景。

  1. 编辑 Claude 供应商,在「通用配置」面板点击「从当前供应商提取」,将需要跨供应商保留的插件、hooks、权限和状态栏配置纳入通用配置。

  2. 新建或切换 Claude 供应商时,勾选「写入通用配置」(维护者说明该选项默认勾选),以写回共享配置。

  3. 如果开启接管模式后恢复了旧配置,先关闭接管模式,切换到其他供应商再切回当前供应商,确认完整配置已写入后重新开启接管模式。

  4. 需要直接修改本地 `settings.json` 字段时,先关闭本地代理;代理接管会修改该文件的请求地址、key 和模型映射字段。

ToolClaude Code
Version3.12.2 - 3.20.0(已报告受影响;v3.12.2 曾修复部分接管恢复流程)
PlatformsWindowsmacOSLinux
不开代理,切换模型也会清空吗?
有用户报告不开代理切换模型也会清空配置;另有 v3.20.0 报告称代理、接管和故障转移均关闭时,应用部分供应商配置仍会整文件覆盖 live `settings.json`。
没有切换 provider,为什么 Claude HUD 插件重启后也会失效?
线程中有用户报告,即使不切换 provider,重启后配置仍可能被覆写,导致已安装插件无法识别。
把 hooks 这些配置加入通用配置呢?
维护者建议将 hooks 等共享配置写入「通用配置」,并在切换供应商时启用「写入通用配置」。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。