【Vibe Coding】Claude Code CLI 本地版与全局版冲突

0 阅读2分钟

🔍 问题现象

  • 使用 cc switch 配置 OpenRouter 与自定义模型(如 z-ai/glm-5)后,CLI 仍返回默认 Claude Opus 4.1

CC Switch 已经改了默认模型 glm-5,但是在 Claude Code Cli 中, 我问 Claude Code 是什么模型, 他回答始终是 Opus 4.1

image.png

  • 执行 claude diagnostics 发现:系统同时存在 本地版 (npm-local)全局版 (npm-global) 两个安装

image.png

这是本地版本与全局的版本冲突了, CC-Switch 安装的是 /Users/nanlan/.claude/local 目录,而全局的版本我是安装在 /opt/homebrew/bin/claude目录下,两个版本的配置混乱

⚠️ 冲突根源

  1. 版本共存:全局版(Homebrew/npm 全局安装)与本地版(~/.claude/local)同时存在,CLI 优先运行全局版
  2. 配置隔离cc switch 仅修改本地版配置文件,全局版无法读取该配置
  3. 默认回退:全局版未读到自定义配置时,自动回退到官方默认模型(Opus 4.1)

✅ 解决方案

方案 1:迁移到本地版(推荐,彻底解决冲突)

claude migrate-installer
  • 自动卸载全局版,仅保留本地版
  • 配置路径与 cc switch 完全对齐
  • 后续 cc switch 配置立即生效

方案 2:保留全局版(备选方案)

这种方式我觉得麻烦,因为 cc switch 只支持本地版 Claude CLI,用不了全局版。 CC-Switch 多好用的工具

  1. 删除本地版目录:

    rm -rf ~/.claude/local
    
  2. 修复全局版更新权限:

    sudo chown -R $USER:$(id -gn) $(npm -g config get prefix)
    
  3. 通过环境变量配置模型(写入 ~/.zshrc):

    export ANTHROPIC_BASE_URL="https://openrouter.ai/api/v1"
    export ANTHROPIC_MODEL="z-ai/glm-5"
    export ANTHROPIC_DEFAULT_HAIKU_MODEL="anthropic/claude-opus-4.6"
    export ANTHROPIC_DEFAULT_SONNET_MODEL="anthropic/claude-opus-4.6"
    export ANTHROPIC_DEFAULT_OPUS_MODEL="anthropic/claude-opus-4.6"
    
  4. 使环境变量生效:

    source ~/.zshrc
    

🧪 验证步骤

  1. 查看当前运行版本:

    claude doctor
    

    确认 Currently runningnpm-local(本地版)

image.png

  1. 验证当前模型:

    claude model
    

    返回配置的模型(如 z-ai/glm-5

🤩 全局安装与本地的方式

  • 全局安装
 # brew install
 brew uninstall claude
 
 # npm
 npm install -g calude 
  • 本地安装
curl -fsSL https://claude.ai/install | sh

💡 关键结论

  • cc switch 是为本地版设计的配置工具,仅对本地版生效
  • 全局版与 cc switch 天然不兼容,是导致配置不生效的核心原因
  • 推荐迁移到本地版,这是最干净、最稳定的解决方案,能彻底避免版本冲突和配置失效问题