Skip to content

Godofbush/cc-switcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Code 登录态切换器

“说句人话”

本项目完全由 AI 生成,用来快速切换 Claude Code 环境变量,当前仅支持 Mac。

本人同时使用 Claude 官方接口、anyrouter 和 Kimi K2,anyrouter 挂了就用 k2,k2 满载太慢就用 Claude 官方,切换过程相当丝滑。

不知道 anyrouter 是啥的,认准一键白嫖入口(没错是我的邀请链接)

好了,下面的话都是 AI 说的了。

🚀 一个用于在 macOS 上快速切换 Claude Code 程序登录态的 shell 脚本工具。

功能特性

  • 🔄 快速切换:支持交互式和命令行两种方式切换登录态
  • 📝 配置管理:添加、删除、修改登录态标签和对应的环境变量
  • 🎨 美观界面:彩色输出,清晰易读的交互界面
  • Shell 集成:提供快速命令和自动补全功能
  • 💾 安全存储:配置信息安全存储在本地 JSON 文件中
  • 🔒 自动备份:每次修改配置前自动备份

支持的环境变量

  • ANTHROPIC_AUTH_TOKEN:认证令牌
  • ANTHROPIC_BASE_URL:API 基础 URL
  • HTTPS_PROXY:HTTPS 代理设置

系统要求

  • macOS (Darwin)
  • jq (JSON 处理工具)
  • Bash 或 Zsh

快速安装

# 克隆或下载项目到本地
git clone <repository-url> cc-switcher
cd cc-switcher

# 运行安装脚本
./install.sh

安装脚本会自动:

  • ✅ 检查并安装 jq 依赖
  • ✅ 创建独立的集成文件
  • ✅ 添加 shell 集成(一行引用)
  • ✅ 环境变量在当前 shell 中直接生效

安装完成后重新启动终端或运行:

source ~/.zshrc  # 对于 zsh
#
source ~/.bashrc  # 对于 bash

手动安装

如果你喜欢手动控制安装过程:

  1. 确保安装了 jq:

    brew install jq
  2. 给脚本添加执行权限:

    chmod +x cc-switcher.sh
  3. 创建集成文件:

    # 创建独立的集成文件
    cp shell-integration.sh ~/.cc-switcher.sh
    
    # 修改脚本路径
    sed -i '' "s|CC_SWITCHER_PATH=.*|CC_SWITCHER_PATH=\"$(pwd)/cc-switcher.sh\"|" ~/.cc-switcher.sh
  4. 添加 shell 引用:

    echo 'source "$HOME/.cc-switcher.sh"' >> ~/.zshrc
    source ~/.zshrc

使用方法

交互模式

直接运行脚本进入交互模式:

./cc-switcher.sh

或者如果已安装 shell 集成:

ccs

命令行模式

# 查看帮助
./cc-switcher.sh --help
ccs help

# 列出所有配置
./cc-switcher.sh --list
ccs list

# 显示当前环境状态
./cc-switcher.sh --current
ccs status

# 切换到指定配置
./cc-switcher.sh --switch <配置名称>
ccs switch <配置名称>
ccs <配置名称>  # 快捷方式

Shell 集成命令

如果安装了 shell 集成,可以使用以下简短命令:

命令 说明
ccs 进入交互模式
ccs list 列出所有配置
ccs status 显示当前状态
ccs switch <名称> 切换到指定配置
ccs <名称> 快速切换(支持 Tab 补全)
ccs help 显示帮助信息

配置示例

添加配置

  1. 运行 ccs 进入交互模式
  2. 选择 "3. 添加/更新配置"
  3. 按提示输入信息:
请输入配置标签名称: 个人账号
ANTHROPIC_AUTH_TOKEN: sk-ant-api03-...
ANTHROPIC_BASE_URL: https://api.anthropic.com
HTTPS_PROXY (可选): http://proxy.example.com:8080
描述 (可选): 个人使用的 Claude 账号

配置文件格式

配置存储在 ~/.cc-switcher-config.json

{
  "profiles": {
    "个人账号": {
      "auth_token": "sk-ant-api03-...",
      "base_url": "https://api.anthropic.com",
      "https_proxy": "http://proxy.example.com:8080",
      "description": "个人使用的 Claude 账号"
    },
    "公司账号": {
      "auth_token": "sk-ant-api03-...", 
      "base_url": "https://api.anthropic.com",
      "https_proxy": "",
      "description": "公司项目使用"
    }
  },
  "current": "个人账号"
}

使用场景

典型工作流程

  1. 初次设置

    ccs                   # 进入交互模式
    # 选择 3 添加配置
  2. 日常切换

    ccs list             # 查看可用配置
    ccs 个人账号         # 快速切换
    ccs status           # 确认当前状态
  3. 环境验证

    echo $ANTHROPIC_AUTH_TOKEN  # 检查环境变量

批量操作

# 快速切换并验证
ccs work && echo "已切换到工作环境"

# 在脚本中使用
if ccs personal; then
    echo "个人环境已激活"
    # 执行个人项目相关命令
fi

高级功能

环境变量设置

⚠️ 重要:环境变量生效方式

环境变量的设置方式决定了是否能在当前 shell 中生效:

✅ 正确方法(推荐)

# 1. 使用 shell 集成(安装后)
ccs <配置名称>              # 自动在当前 shell 中生效

# 2. 手动执行环境变量设置
eval "$(./cc-switcher.sh --switch <配置名称>)"

❌ 错误方法

# 直接运行脚本不会影响父 shell
./cc-switcher.sh --switch <配置名称>  # 环境变量不会生效!

🔄 在新 shell 中重新应用

如需在新 shell 中生效,重新运行切换命令:

ccs <配置名称>              # shell 集成方式
#
eval "$(./cc-switcher.sh --switch <配置名称>)"  # 手动方式

备份和恢复

  • 配置修改前自动备份到 ~/.cc-switcher-config.json.bak
  • 可手动备份重要配置:
    cp ~/.cc-switcher-config.json ~/cc-config-backup.json

安全注意事项

  • 配置文件包含敏感的认证信息,建议设置适当的文件权限:
    chmod 600 ~/.cc-switcher-config.json
  • 不要将配置文件提交到版本控制系统
  • 定期更新和轮换认证令牌

故障排除

常见问题

  1. jq 命令未找到

    brew install jq
  2. 配置文件损坏

    # 从备份恢复
    cp ~/.cc-switcher-config.json.bak ~/.cc-switcher-config.json
    
    # 或重新初始化
    rm ~/.cc-switcher-config.json
    ccs  # 重新运行会自动创建新配置
  3. 权限问题

    chmod +x cc-switcher.sh
  4. 环境变量未生效

    • 最常见原因:直接运行了 ./cc-switcher.sh --switch xxx 而不是 ccs xxx
    • 解决方法:使用 ccs <配置名>eval "$(./cc-switcher.sh --switch <配置名>)"
    • 使用 ccs status 检查当前状态
    • 确保在同一个 shell 会话中使用

调试模式

如需调试,可以启用详细输出:

bash -x cc-switcher.sh

文件结构

cc-switcher/
├── cc-switcher.sh          # 主脚本
├── shell-integration.sh    # Shell 集成函数
├── install.sh             # 安装脚本
├── uninstall.sh           # 卸载脚本
├── README.md              # 说明文档
└── INTEGRATION.md         # 高级集成方式指南

卸载

如果需要卸载工具:

./uninstall.sh

卸载脚本会:

  • ✅ 删除集成文件 ~/.cc-switcher.sh
  • ✅ 从 shell 配置中移除引用
  • ✅ 备份用户配置文件
  • ✅ 保留用户数据(配置文件)

或者手动卸载:

# 删除集成文件
rm -f ~/.cc-switcher.sh

# 从 shell 配置中删除引用行
# 编辑 ~/.zshrc 或 ~/.bashrc,删除包含 "cc-switcher" 的行

贡献

欢迎提交 Issue 和 Pull Request 来改进这个工具!

许可证

MIT License


💡 提示:使用 ccs help 随时查看帮助信息,或查看本文档了解更多详细用法。

About

A tool for switching Claude Code login states.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages