跳转到内容

切换路由模式后 setting.json文件中用户添加的配置内容被覆盖丢失 Claude Code

Quick fix

将自定义环境变量添加到 CC-Switch 对应 Provider 的配置 JSON 中,而不是直接修改 Claude Code 的 settings.json。

报错原文
但是只要一切换到 路由模式 上面这段就消失了 被自动覆盖了 导致我设置失效

CC-Switch 在切换路由模式或修改模型时,会重写 Claude Code 的 settings.json 文件中的 env 字段。由于程序在写回文件时未能保留用户手动添加的其他环境变量配置,导致诸如 DISABLE_AUTOUPDATER 等自定义设置被覆盖丢失。此外,关闭路由模式后,配置也会重置回开启路由模式前的状态。

  1. 停止直接在 Windows 下编辑 Claude Code 的 settings.json 文件来添加自定义环境变量。

  2. 打开 CC-Switch,找到你正在使用的 API 供应商(Provider)的配置界面,将需要自定义添加的环境变量内容直接放入该 Provider 的配置 JSON 内容中。

    // CC-Switch Provider 配置 JSON
    {
    "env": {
    "DISABLE_AUTOUPDATER": "1",
    "CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
    }
    }
ToolClaude Code
Version3.16.3
PlatformsWindows
为什么把配置写在通用配置段下面没有生效?
根据官方文档,这些环境变量设置只有放在 env 段下才会生效,但路由切换时 env 段会被自动覆盖清理。写在通用配置段下会被自动忽略,跟没写一样。
开启路由模式后如果需要调整配置,必须先关闭路由模式吗?
不需要。只要将自定义配置项写入 CC-Switch 对应 Provider 的配置 JSON 中,就可以避免路由切换 Provider 后配置被覆盖丢失的问题,无需反复开关路由模式。
DISABLE_AUTOUPDATER 和 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 需要同时配置吗?
不需要。CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 等同于设置 DISABLE_AUTOUPDATER、DISABLE_FEEDBACK_COMMAND、DISABLE_ERROR_REPORTING 和 DISABLE_TELEMETRY,单独配置前者即可,后者是多余的。

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