# cc-switch
**Repository Path**: xiaochenyang1314/cc-switch
## Basic Information
- **Project Name**: cc-switch
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-18
- **Last Updated**: 2025-11-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Claude API 配置管理工具
一个基于 Electron 的跨平台桌面应用,专为 Claude API 用户打造的配置管理和快速切换工具。
[](LICENSE.txt)
[](https://www.electronjs.org/)
[](https://github.com/electron/electron)
---
## 📖 项目简介
**Claude API 配置管理工具** 是一款轻量级桌面应用程序,帮助开发者轻松管理多个 Claude API 配置,并一键启动终端并自动注入环境变量。无需手动修改系统环境变量,即可快速在不同 API 配置之间切换。
### 核心特性
- ✨ **多配置管理**:支持添加、编辑、删除多个 API 配置
- 🚀 **一键启动终端**:自动注入环境变量到新终端会话
- 🔒 **安全存储**:配置文件本地保存,Token 脱敏显示
- 🌍 **跨平台支持**:Windows、macOS、Linux 全平台兼容
- 💼 **便携绿色**:配置文件随程序移动,无系统污染
- 🎨 **现代化 UI**:渐变紫色主题,卡片式布局,流畅动画
---
## 🖼️ 应用截图
### 主界面
配置列表展示,支持快速操作
### 添加/编辑配置
模态对话框表单,简洁直观
---
## 🛠️ 技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Electron | 28.3.3 | 跨平台桌面应用框架 |
| electron-builder | 24.9.1 | 应用打包和分发工具 |
| HTML5 + CSS3 | - | 前端界面 |
| Vanilla JavaScript | ES6+ | 业务逻辑 |
| Node.js | - | 后端进程处理 |
---
## 📦 安装与使用
### 方式一:下载安装包(推荐)
1. 前往 [Releases](https://gitee.com/xiaochenyang1314/cc-switch/releases) 页面
2. 下载最新版本的 `API配置管理工具 Setup 1.0.0.exe`(Windows)
3. 运行安装程序,选择安装路径
4. 建议安装到用户目录,避免权限问题(如 `D:\MyApps\`)
**注意**:避免安装到以下系统目录:
- `C:\Program Files`
- `C:\Windows`
- `C:\Windows\System32`
### 方式二:从源码构建
#### 前置要求
- Node.js >= 16.x
- npm >= 8.x
#### 构建步骤
```bash
# 克隆仓库
git clone https://gitee.com/xiaochenyang1314/cc-switch.git
cd cc-switch
# 安装依赖
npm install
# 开发模式运行
npm start
# 打包应用(Windows)
npm run build
```
构建产物位于 `dist/` 目录:
- `API配置管理工具 Setup 1.0.0.exe` - 安装包
- `win-unpacked/` - 免安装便携版
---
## 📝 使用指南
### 1. 添加 API 配置
点击 **添加新配置** 按钮,填写以下信息:
| 字段 | 说明 | 示例 |
|------|------|------|
| 配置名称 | 自定义名称,用于识别配置 | `官方API`、`备用API` |
| Base URL | Claude API 的基础 URL | `https://api.anthropic.com` |
| Auth Token | 你的 API 密钥 | `sk-ant-xxx...` |
点击 **保存** 完成添加。
### 2. 编辑配置
点击配置卡片上的 **编辑** 按钮,修改配置信息后保存。
### 3. 删除配置
点击配置卡片上的 **删除** 按钮,二次确认后删除。
### 4. 启动终端
点击 **启动终端** 按钮,应用会:
1. 根据操作系统类型启动终端程序
2. 自动设置以下环境变量:
- `ANTHROPIC_BASE_URL`:配置的 Base URL
- `ANTHROPIC_AUTH_TOKEN`:配置的 Auth Token
3. 打开独立的终端窗口,环境变量仅在该会话有效
### 5. 跨平台终端支持
| 操作系统 | 终端程序 | 环境变量设置命令 |
|---------|---------|-----------------|
| Windows | `cmd.exe` | `set VAR=value` |
| macOS | `Terminal.app` | `export VAR=value` |
| Linux | `gnome-terminal` / `konsole` / `xterm` | `export VAR=value` |
---
## 📂 配置文件
### 存储位置
#### 开发环境
```
项目根目录/configs.json
```
#### 打包后应用
```
[安装目录]/configs.json
```
例如安装到 `D:\MyApps\API配置管理工具\`,配置文件位于:
```
D:\MyApps\API配置管理工具\configs.json
```
### 文件格式
```json
{
"configs": [
{
"id": "1234567890",
"name": "官方API",
"baseUrl": "https://api.anthropic.com",
"authToken": "sk-ant-xxx..."
},
{
"id": "9876543210",
"name": "备用API",
"baseUrl": "https://api.example.com",
"authToken": "your-token-here..."
}
]
}
```
### 备份与迁移
1. **备份**:复制 `configs.json` 文件到安全位置
2. **迁移**:将 `configs.json` 文件复制到新安装目录
---
## 🔒 安全说明
### 已实现的安全特性
1. **上下文隔离**:Electron 上下文隔离(`contextIsolation: true`)
2. **Node 集成禁用**:渲染进程禁用 Node 集成(`nodeIntegration: false`)
3. **XSS 防护**:HTML 转义函数防止跨站脚本攻击
4. **Token 脱敏**:界面仅显示 Token 前 30 个字符
5. **IPC 白名单**:仅暴露必要的 API 通道
6. **独立进程**:终端进程 detached 模式运行
### 安全建议
- ⚠️ **配置文件以明文存储**,请妥善保管
- 🔐 不要将 `configs.json` 文件分享给他人
- 📁 建议将应用安装到用户目录,避免权限问题
- 🗑️ 卸载前请手动备份或删除配置文件
---
## 🏗️ 项目结构
```
cc-switch/
├── main.js # Electron 主进程入口
├── preload.js # 预加载脚本(IPC 桥接层)
├── package.json # 项目配置
├── installer.nsh # NSIS 安装程序自定义脚本
├── LICENSE.txt # MIT 许可证
├── .gitignore # Git 忽略文件
│
├── renderer/ # 渲染进程(前端界面)
│ ├── index.html # 主界面 HTML
│ ├── renderer.js # 前端业务逻辑
│ └── styles.css # 样式表
│
├── dist/ # 构建输出目录
│ ├── API配置管理工具 Setup 1.0.0.exe
│ └── win-unpacked/
│
└── node_modules/ # 依赖包
```
---
## 🚀 核心功能实现
### IPC 通信架构
```
渲染进程(前端)
↓ window.electronAPI
预加载脚本(安全桥接层)
↓ ipcRenderer
主进程(后端)
↓ ipcMain.handle
文件系统 / 子进程
```
### 环境变量注入流程
```mermaid
graph LR
A[用户点击启动] --> B[IPC 通信]
B --> C[主进程获取配置]
C --> D[根据系统选择终端]
D --> E[spawn 启动进程]
E --> F[注入环境变量]
F --> G[显示终端窗口]
```
---
## 🤝 参与贡献
欢迎提交 Issue 和 Pull Request!
### 贡献步骤
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
### 开发建议
- 遵循现有代码风格
- 添加必要的注释
- 测试跨平台兼容性
- 更新相关文档
---
## 📄 开源协议
本项目采用 [MIT License](LICENSE.txt) 开源协议。
---
## 🔧 常见问题
### 1. 终端启动失败怎么办?
**Windows**:确保系统路径中包含 `cmd.exe`
**macOS**:确保 Terminal.app 存在
**Linux**:确保安装了 `gnome-terminal`、`konsole` 或 `xterm`
### 2. 配置文件丢失了怎么办?
配置文件存储在应用程序目录下的 `configs.json`,如果误删需要重新添加配置。
### 3. 可以加密存储 Token 吗?
当前版本为明文存储,后续版本可能会添加加密功能。如有需求请提交 Issue。
### 4. 支持导入/导出配置吗?
当前版本不支持,但你可以手动复制 `configs.json` 文件实现备份和迁移。
### 5. 为什么建议不要安装到系统目录?
系统目录(如 `C:\Program Files`)可能需要管理员权限才能写入 `configs.json`,导致保存配置失败。
---
## 📞 联系方式
- **仓库地址**:[https://gitee.com/xiaochenyang1314/cc-switch](https://gitee.com/xiaochenyang1314/cc-switch)
- **问题反馈**:[提交 Issue](https://gitee.com/xiaochenyang1314/cc-switch/issues)
---
## 🌟 致谢
感谢所有为本项目做出贡献的开发者!
---
**如果这个项目对你有帮助,请给个 Star ⭐**
Made with ❤️ by Claude Code