cc-switch 是跨平台的供应商配置管理工具,把多套供应商配置集中保存,启用某一项时改写目标配置目录中的 settings.json。Windows 版可以把 Claude Code 的配置目录指向 WSL 内的路径,从而在不上手改文件的前提下完成切换。

在 WSL 内安装并运行一次 Claude Code,得到配置目录;在 Windows 侧安装 cc-switch;把 cc-switch 的 Claude 配置目录指向 WSL 内的路径;添加供应商并启用;回到 WSL 验证。

前置条件:WSL2 已按另一篇博客配置完成,发行版可用;Windows 10 及以上,用于安装 cc-switch。

◆ 配置的存放与读写关系

WSL 内 Claude Code 的配置目录是 ~/.claude,其中的 settings.json 记录供应商信息,键值形如:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.example.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-自己申请的密钥"
  }
}

env 下的键值会作为环境变量提供给 Claude Code;ANTHROPIC_BASE_URL 决定请求发往的接口地址;ANTHROPIC_AUTH_TOKEN 为鉴权密钥,以 Authorization 请求头发送并自动加 Bearer 前缀,两者是第三方中转最常用的配置项。cc-switch 的工作方式即按选中的供应商重写这一段。

◆ 在 WSL 内安装 Claude Code

在 WSL 终端中执行官方安装脚本:

curl -fsSL https://claude.ai/install.sh | bash

脚本把程序安装到用户目录并写入 PATH,重新打开终端后确认:

claude --version

随后运行一次 claude,等首次运行的界面出现后退出,让 ~/.claude 目录与 settings.json 生成,供下一步的 cc-switch 指向;此时的登录引导暂不处理。

◆ 安装 cc-switch

从官方仓库的发布页或官网 ccswitch.io 下载 Windows 安装包,文件名形如 CC-Switch-v3.20.3-Windows.msi,双击安装;官方另提供便携版压缩包,解压即用。

也可以在 WSL 内安装 Linux 版,界面经 WSLg 显示,配置目录使用 Linux 路径;本文以 Windows 版为例。

◆ 把配置目录指向 WSL

在 WSL 终端中把 Linux 路径转换为 Windows 可识别的写法:

wslpath -w ~/.claude/settings.json

输出形如 \wsl.localhost\Ubuntu-24.04\home\用户名.claude\settings.json,取其中的目录部分,即 \wsl.localhost\Ubuntu-24.04\home\用户名.claude

打开 cc-switch 的设置,在 CLI 工具目录一类选项中把 Claude 目录改为上面的路径,保存后重启应用

◆ 添加供应商与切换

在主界面的 Claude 分组中点击添加按钮,预设列表包含常见供应商与中转服务,选中后只需补充密钥;列表中没有的选自定义,逐项填写。

Base URL 为接口地址,写入 settings.json 的 ANTHROPIC_BASE_URL

API Key 为该接口提供的密钥,写入鉴权字段;模型一栏按需指定该供应商下各档模型对应的名称,分别写入 ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL 等变量,留空则使用默认值。

保存后点击该项的启用按钮完成切换

正常结果为配置文件被重写,内容与选中的供应商一致。失败特征:提示写入失败或路径不支持时,见常见问题一节。

◆ 验证

在 WSL 终端中查看写入结果:

cat ~/.claude/settings.json

输出中应包含刚选中供应商的接口地址与密钥。

随后运行 Claude Code:

claude

正常结果为直接进入对话界面,输入内容能收到回复。会话内执行 /status 可直接确认生效情况,输出中的 Setting sources 与 Anthropic base URL 两行分别显示配置来源与当前地址,与启用的供应商一致即切换成功

◆ 常见问题

切换后未生效:先确认改动的是 WSL 侧目录,即路径以 \wsl.localhost 开头,再退出正在运行的 claude 会话重新进入。

写入时报“不支持该请求”(os error 50):v3.19.2 在 \wsl.localhost 路径上的已知缺陷,原子替换操作不被支持,升级到 v3.20.0 及以上即可解决。

路径不可写或无响应:WSL 完全关闭时该路径不可访问,先在 WSL 内执行任意命令使发行版处于运行状态,再执行切换。

手工 export 过环境变量:配置文件中的同名值会覆盖 shell 中的导出值,不影响切换;但 shell 变量只在启动时读取,改动后需重开终端,确认当前生效的来源用会话内的 /status。

反复要求登录:只写了接口地址而没有写凭据时,已保存的官方登录仍被视为有效凭据;确认 env 中同时包含 ANTHROPIC_AUTH_TOKEN,并确认配置写在用户级的 ~/.claude/settings.json 中,项目目录下的 .claude/settings.json 要等首次引导与目录信任确认之后才被读取。

凭据不要写进项目目录下的 .claude/settings.json,该文件通常会随仓库提交。

发行版名或用户名不符:以 wsl --list 与 WSL 内的 whoami 输出为准,逐字对齐。test