@claudecodelaunch/ccl 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +171 -128
- package/bin/ccl-darwin-amd64 +0 -0
- package/bin/ccl-darwin-arm64 +0 -0
- package/bin/ccl-linux-amd64 +0 -0
- package/bin/ccl-linux-arm64 +0 -0
- package/bin/ccl-win32-arm64.exe +0 -0
- package/bin/ccl-win32-x64.exe +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,224 +2,267 @@
|
|
|
2
2
|
|
|
3
3
|
`ccl` 是一个专门为 Anthropic 官方 CLI 工具 **Claude Code** 开发的多模型网关代理与极速启动器。
|
|
4
4
|
|
|
5
|
-
它可以帮助你在运行 Claude Code 时,无缝对接 OpenAI
|
|
5
|
+
它可以帮助你在运行 Claude Code 时,无缝对接 OpenAI 兼容格式的网关(如 DeepSeek、SiliconFlow、OpenRouter、OneAPI 等),实现超低成本运行。
|
|
6
6
|
|
|
7
7
|
## ✨ 核心亮点
|
|
8
8
|
|
|
9
9
|
1. **智能多档模型映射 (无需复杂配置)**
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
|
|
10
|
+
- 当槽位未手动配置时,`ccl` 自动进入 **「智能协议代理映射模式」**。
|
|
11
|
+
- 自动在启动时拉取接口提供商的可用模型库,按关键词动态分析并分配到各档位:
|
|
12
|
+
- 💎 **Opus 强推理档** → 优先匹配 `deepseek-reasoner` (R1) 或 `o1`、`o3-mini`、`gpt-4o`
|
|
13
|
+
- 🚀 **Sonnet 黄金档** → 优先匹配 `deepseek-chat` (V3)、`gpt-4o`、`claude-3-5-sonnet`
|
|
14
|
+
- ⚡ **Haiku 极速档** → 优先匹配 `gpt-4o-mini`、`gpt-3.5-turbo`
|
|
15
|
+
- 若通过 `ccl set` / `ccl conf set` 手动为某个档位指定了模型,则该档位的自动映射被覆盖,其余未配置的档位仍走自动映射。
|
|
16
16
|
|
|
17
17
|
2. **零感协议翻译与流式代理**
|
|
18
18
|
- 采用本地轻量级的高性能并发 socket 服务(TCP),自动拦截并完美将 Anthropic 专有的 `Messages` 协议以及 `Streaming (SSE)` 转换为标准的 `OpenAI / Chat Completions` 协议。
|
|
19
|
-
- 完美适配 Claude Code CLI 所有的 Tools(工具调用)和 System Prompt,使用体验 100% 丝滑。
|
|
20
19
|
|
|
21
|
-
3.
|
|
20
|
+
3. **交互式 TUI 配置向导**
|
|
21
|
+
- 全新的 bubbletea 驱动的全屏 TUI:多页表单,键盘导航(方向键 / Tab / Enter / Esc),实时协议探测与模型拉取。
|
|
22
|
+
- 支持 6 档 Reasoning Effort(`low` ~ `ultracode`)、每个槽位独立配置模型、一键启用 1M 上下文。
|
|
23
|
+
- **多语言支持**:中文 / English,运行时通过 `ccl lang` 随时切换。
|
|
24
|
+
|
|
25
|
+
4. **智能环境探针与诊断 (`ccl doctor`)**
|
|
22
26
|
- 自动检查本地环境依赖(Node.js, Claude CLI)。
|
|
23
|
-
- 如果系统未安装 Claude CLI,`ccl`
|
|
27
|
+
- 如果系统未安装 Claude CLI,`ccl` 将触发**全自动静默安装**。
|
|
24
28
|
- 提供连接探针,对各 Provider 的 Endpoint 连通性、API 鉴权密钥进行安全测试。
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
30
|
+
5. **多通道配置与灵活切换**
|
|
31
|
+
- 支持添加、切换、列出、复制、重命名、删除以及管理多个独立网关。
|
|
32
|
+
- 配置统一存储在 `~/.ccl/config.yaml`,方便备份与迁移。
|
|
29
33
|
|
|
30
34
|
---
|
|
31
35
|
|
|
32
36
|
## 🚀 安装与编译
|
|
33
37
|
|
|
34
38
|
### 快速安装
|
|
35
|
-
```
|
|
36
|
-
|
|
39
|
+
```bash
|
|
40
|
+
npm install -g @claudecodelaunch/ccl
|
|
37
41
|
```
|
|
38
42
|
|
|
39
|
-
###
|
|
40
|
-
|
|
43
|
+
### 预编译二进制
|
|
44
|
+
前往 [GitHub Releases](https://github.com/claude-code-launch/ccl/releases) 下载适合您平台的压缩包:
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
| 平台 | 文件名 |
|
|
47
|
+
|------|--------|
|
|
48
|
+
| macOS Intel | `ccl-darwin-amd64` |
|
|
49
|
+
| macOS Apple Silicon | `ccl-darwin-arm64` |
|
|
50
|
+
| Linux amd64 | `ccl-linux-amd64` |
|
|
51
|
+
| Linux arm64 | `ccl-linux-arm64` |
|
|
52
|
+
| Windows x64 | `ccl-win32-x64.exe` |
|
|
53
|
+
| Windows arm64 | `ccl-win32-arm64.exe` |
|
|
46
54
|
|
|
47
|
-
下载后将其移动到您的系统 `PATH` 目录(例如 macOS/Linux 下的 `/usr/local/bin`),并赋予执行权限:
|
|
48
55
|
```bash
|
|
49
56
|
chmod +x ccl-darwin-arm64
|
|
50
57
|
mv ccl-darwin-arm64 /usr/local/bin/ccl
|
|
51
58
|
```
|
|
52
59
|
|
|
53
|
-
###
|
|
54
|
-
如果您希望从源码编译,确保您本地已经安装了 Go (推荐 1.22+)。
|
|
55
|
-
|
|
60
|
+
### 源码编译
|
|
56
61
|
```bash
|
|
57
|
-
# 克隆仓库
|
|
58
62
|
git clone https://github.com/claude-code-launch/ccl.git
|
|
59
|
-
cd
|
|
60
|
-
|
|
61
|
-
# 编译生成 ccl 执行文件
|
|
62
|
-
go build -o ccl main.go
|
|
63
|
+
cd ccl
|
|
64
|
+
go build -o ccl .
|
|
63
65
|
```
|
|
64
|
-
### 方法三:Go 安装
|
|
65
|
-
确保您本地已经安装了 Go(推荐 1.22+)。
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
### Go 安装
|
|
68
|
+
```bash
|
|
68
69
|
go install github.com/claude-code-launch/ccl@latest
|
|
69
70
|
```
|
|
70
|
-
⚠️ 注意:安装完成后,您需要将 GOBIN 目录添加到系统的 PATH 环境变量中,否则可能无法在终端直接运行 ccl 命令。
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
根据您的操作系统,选择对应的配置方式:
|
|
72
|
+
---
|
|
74
73
|
|
|
75
|
-
|
|
76
|
-
打开终端并运行以下命令(根据你使用的 shell,修改 ~/.zshrc 或 ~/.bashrc):
|
|
74
|
+
## 🛠️ 命令参考
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
### `ccl set` / `ccl conf set` — 添加/更新 Provider
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# 交互式选择已有 provider 或新建
|
|
80
|
+
ccl set
|
|
81
|
+
|
|
82
|
+
# 直接指定名称新建或更新
|
|
83
|
+
ccl set my-provider
|
|
84
|
+
ccl conf set my-provider
|
|
82
85
|
```
|
|
83
86
|
|
|
84
|
-
|
|
85
|
-
在 PowerShell 中运行以下命令(仅对当前用户永久生效):
|
|
87
|
+
无参数时弹出 **Provider 选择框**(↑↓ 选择,Enter 确认):
|
|
86
88
|
|
|
87
|
-
```PowerShell
|
|
88
|
-
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$(go env GOPATH)\bin", "User")
|
|
89
89
|
```
|
|
90
|
-
|
|
90
|
+
┌─ Select a provider or create new: ─────────────────┐
|
|
91
|
+
│ │
|
|
92
|
+
│ ▸ + Create new provider │
|
|
93
|
+
│ deepseek │
|
|
94
|
+
│ oc1 (active) │
|
|
95
|
+
│ zhipu │
|
|
96
|
+
│ │
|
|
97
|
+
│ ↑↓ choose · enter confirm · esc cancel │
|
|
98
|
+
└─────────────────────────────────────────────────────┘
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
选择后进入**全屏 TUI 配置向导**,分 5 页完成:
|
|
102
|
+
|
|
103
|
+
| 页面 | 内容 | 操作 |
|
|
104
|
+
|------|------|------|
|
|
105
|
+
| Page 0 | **凭据配置** — Endpoint URL + API Key | ↑↓ 切换输入框 · Enter 下一步 |
|
|
106
|
+
| Page 1 | **Slot 映射** — Opus / Sonnet / Haiku / Custom 模型选择 | ↑↓ 选槽位 · Enter 进入模型列表 · 打字过滤 · Enter 锁定 |
|
|
107
|
+
| Page 2 | **1M 上下文** — 每槽位独立开关 | Space 切换 · Enter 下一步 |
|
|
108
|
+
| Page 3 | **Reasoning Effort** — low ~ ultracode 6 档 | ↑↓ 选择 · Enter 确认 |
|
|
109
|
+
| Page 4 | **核对保存** — 确认配置并设为激活 | ←→ 切换是/否 · Enter 保存 |
|
|
91
110
|
|
|
92
|
-
|
|
111
|
+
页面间通过 `Tab` / `Shift+Tab` 或底部按钮 `[Next]` / `[Back]` 导航。
|
|
93
112
|
|
|
94
|
-
|
|
113
|
+
### `ccl conf` — Provider 配置管理
|
|
95
114
|
|
|
96
115
|
```bash
|
|
97
|
-
#
|
|
98
|
-
|
|
116
|
+
# 列出所有 provider
|
|
117
|
+
ccl conf ls
|
|
118
|
+
ccl conf ls -a # 显示全部模型(默认只显示前 3 个)
|
|
99
119
|
|
|
100
|
-
#
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
GitHub Actions 会自动触发并执行以下操作:
|
|
104
|
-
- 拉取代码,配置 Go 1.24 运行环境。
|
|
105
|
-
- 使用 `-ldflags="-s -w"` 深度压缩二进制体积(剔除符号调试表,缩减 35%+)。
|
|
106
|
-
- 跨平台交叉编译 macOS、Linux、Windows 5 大核心架构的目标文件。
|
|
107
|
-
- 自动提取标签之间的 Commit 历史生成发布日志并发布。
|
|
120
|
+
# 复制配置
|
|
121
|
+
ccl conf cp source target
|
|
108
122
|
|
|
109
|
-
|
|
123
|
+
# 重命名
|
|
124
|
+
ccl conf mv old-name new-name
|
|
110
125
|
|
|
111
|
-
|
|
126
|
+
# 删除
|
|
127
|
+
ccl conf rm name
|
|
128
|
+
```
|
|
112
129
|
|
|
113
|
-
###
|
|
114
|
-
如果你已经在终端的环境变量中配置了 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`,`ccl` 将会自动识别并直接以此作为服务源,**完全零配置运行**!
|
|
130
|
+
### `ccl env` — 环境变量管理
|
|
115
131
|
|
|
116
132
|
```bash
|
|
117
|
-
#
|
|
118
|
-
|
|
119
|
-
export OPENAI_BASE_URL="https://api.deepseek.com" # 选填,默认指向官方 OpenAI
|
|
120
|
-
|
|
121
|
-
# 2. 直接一行启动
|
|
122
|
-
ccl
|
|
123
|
-
```
|
|
124
|
-
> 💡 在此模式下,依旧享受超强的 **「智能模型映射」**:常规对话走 `deepseek-chat`,深度推理全自动路由至 `deepseek-reasoner`!
|
|
133
|
+
# 列出所有环境变量
|
|
134
|
+
ccl env ls
|
|
125
135
|
|
|
126
|
-
|
|
136
|
+
# 设置/修改
|
|
137
|
+
ccl env KEY VALUE
|
|
127
138
|
|
|
128
|
-
|
|
129
|
-
|
|
139
|
+
# 重命名
|
|
140
|
+
ccl env mv OLD_KEY NEW_KEY
|
|
130
141
|
|
|
131
|
-
|
|
142
|
+
# 删除
|
|
143
|
+
ccl env rm KEY
|
|
144
|
+
```
|
|
132
145
|
|
|
133
|
-
|
|
146
|
+
### `ccl use` — 切换激活 Provider
|
|
134
147
|
|
|
135
148
|
```bash
|
|
136
|
-
|
|
149
|
+
ccl use provider-name
|
|
137
150
|
```
|
|
138
151
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
* **Model**: **[推荐留空]** 直接按回车跳过。这样代理层将为你开启全自动的「智能模型映射」,在发送普通对话时跑 `deepseek-chat` (V3),在调用深度推理时完美、低延迟地跑 `deepseek-reasoner` (R1)。
|
|
152
|
+
### `ccl lang` — 切换显示语言
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# 交互式选择
|
|
156
|
+
ccl lang
|
|
145
157
|
|
|
146
|
-
|
|
158
|
+
# 直接指定
|
|
159
|
+
ccl lang zh # 中文
|
|
160
|
+
ccl lang en # English
|
|
161
|
+
```
|
|
147
162
|
|
|
148
|
-
|
|
163
|
+
设置后立即生效并持久化到 `~/.ccl/config.yaml`。优先级:`CCL_LANG` 环境变量 > config.yaml > 系统语言。
|
|
149
164
|
|
|
150
|
-
|
|
151
|
-
# 查看所有已添加的服务商 (带有 * 的为当前激活)
|
|
152
|
-
./ccl list
|
|
165
|
+
### `ccl doctor` — 环境诊断
|
|
153
166
|
|
|
154
|
-
|
|
155
|
-
|
|
167
|
+
```bash
|
|
168
|
+
ccl doctor
|
|
156
169
|
```
|
|
157
170
|
|
|
158
|
-
|
|
171
|
+
检查本地依赖、Endpoint 连通性、API 鉴权。如果 Claude CLI 未安装,自动触发一键安装。
|
|
159
172
|
|
|
160
|
-
|
|
173
|
+
### `ccl list` — 查看所有 Provider
|
|
161
174
|
|
|
162
175
|
```bash
|
|
163
|
-
|
|
176
|
+
ccl list
|
|
177
|
+
# 或
|
|
178
|
+
ccl conf ls
|
|
164
179
|
```
|
|
165
180
|
|
|
166
|
-
|
|
181
|
+
### `ccl update` — 升级
|
|
167
182
|
|
|
168
|
-
|
|
183
|
+
```bash
|
|
184
|
+
ccl update
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
支持通过 `npm` / `go install` 一键升级。
|
|
169
188
|
|
|
170
|
-
|
|
189
|
+
### `ccl` — 启动 Claude Code
|
|
171
190
|
|
|
172
191
|
```bash
|
|
173
|
-
#
|
|
174
|
-
|
|
192
|
+
# 直接启动
|
|
193
|
+
ccl
|
|
175
194
|
|
|
176
|
-
#
|
|
177
|
-
|
|
178
|
-
|
|
195
|
+
# 透传参数
|
|
196
|
+
ccl resume
|
|
197
|
+
ccl --dangerously-skip-permissions
|
|
198
|
+
ccl claude --dangerously-skip-permissions
|
|
199
|
+
```
|
|
179
200
|
|
|
180
|
-
|
|
181
|
-
./ccl claude resume
|
|
182
|
-
./ccl claude --dangerously-skip-permissions
|
|
201
|
+
---
|
|
183
202
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
203
|
+
## ⚙️ 配置存储
|
|
204
|
+
|
|
205
|
+
所有配置统一存储在 `~/.ccl/config.yaml`:
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
active_provider: deepseek
|
|
209
|
+
lang: zh-CN
|
|
210
|
+
providers:
|
|
211
|
+
deepseek:
|
|
212
|
+
name: deepseek
|
|
213
|
+
type: openai
|
|
214
|
+
endpoint: https://api.deepseek.com
|
|
215
|
+
apikey: sk-xxx
|
|
216
|
+
model: deepseek-chat,deepseek-reasoner
|
|
217
|
+
opusModel: deepseek-reasoner
|
|
218
|
+
sonnetModel: deepseek-chat
|
|
219
|
+
effortLevel: max
|
|
187
220
|
```
|
|
188
221
|
|
|
189
|
-
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 🔧 CI/CD
|
|
190
225
|
|
|
191
|
-
`
|
|
226
|
+
推送符合 `v*` 规范的 tag 触发自动编译发布:
|
|
192
227
|
|
|
193
228
|
```bash
|
|
194
|
-
|
|
229
|
+
git tag v1.2.0
|
|
230
|
+
git push origin v1.2.0
|
|
195
231
|
```
|
|
196
232
|
|
|
197
|
-
|
|
198
|
-
- 自动查询 npm 镜像源上的最新版本。
|
|
199
|
-
- 比对当前版本,若有新版本,将提示您选择升级方式(支持通过 `npm` 或 `go install` 一键自动下载并完成覆盖更新)。
|
|
233
|
+
GitHub Actions 自动构建 6 个平台二进制并发布到 GitHub Releases + npm。
|
|
200
234
|
|
|
201
235
|
---
|
|
202
236
|
|
|
203
237
|
## 📁 目录结构
|
|
204
238
|
|
|
205
239
|
```text
|
|
206
|
-
├── cmd/
|
|
207
|
-
│ ├──
|
|
208
|
-
│ ├──
|
|
209
|
-
│ ├──
|
|
210
|
-
│ ├──
|
|
211
|
-
│ ├──
|
|
212
|
-
│ ├──
|
|
213
|
-
│
|
|
240
|
+
├── cmd/
|
|
241
|
+
│ ├── advanced_config.go # TUI 配置向导(5 页表单 + 协议探测)
|
|
242
|
+
│ ├── conf.go # Provider 配置管理(cp/ls/mv/rm/set)
|
|
243
|
+
│ ├── env.go # 环境变量管理(ls/rm/mv)
|
|
244
|
+
│ ├── set.go # set 命令入口 + RunConfSet 共享逻辑
|
|
245
|
+
│ ├── select.go # 通用 TUI 选择器组件
|
|
246
|
+
│ ├── doctor.go # 环境及密钥连通性自检
|
|
247
|
+
│ ├── install.go # Claude CLI 自动安装
|
|
248
|
+
│ ├── lang_cmd.go # ccl lang 命令
|
|
249
|
+
│ ├── list.go # list 命令
|
|
250
|
+
│ ├── models.go # 模型列表展示
|
|
251
|
+
│ ├── root.go # ccl 主入口 + passthrough 模式
|
|
252
|
+
│ ├── settings.go # 预览 settings.json
|
|
253
|
+
│ ├── update.go # 自动升级
|
|
254
|
+
│ ├── use.go # 切换激活 provider
|
|
255
|
+
│ └── version.go # 版本信息
|
|
214
256
|
├── internal/
|
|
215
|
-
│ ├── claude/
|
|
216
|
-
│ ├── config/
|
|
217
|
-
│ ├──
|
|
218
|
-
│ ├──
|
|
219
|
-
│
|
|
220
|
-
└──
|
|
257
|
+
│ ├── claude/ # Claude Code 进程拉起 & 端口注入
|
|
258
|
+
│ ├── config/ # yaml 配置文件读写
|
|
259
|
+
│ ├── locale/ # 多语言支持(中文 / English)
|
|
260
|
+
│ ├── protocol/ # Anthropic ↔ OpenAI 协议转换
|
|
261
|
+
│ ├── provider/ # Provider & Config 数据结构
|
|
262
|
+
│ └── proxy/ # 本地 TCP 代理服务
|
|
263
|
+
└── main.go
|
|
221
264
|
```
|
|
222
265
|
|
|
223
266
|
## 📄 开源许可
|
|
224
267
|
|
|
225
|
-
|
|
268
|
+
MIT
|
package/bin/ccl-darwin-amd64
CHANGED
|
Binary file
|
package/bin/ccl-darwin-arm64
CHANGED
|
Binary file
|
package/bin/ccl-linux-amd64
CHANGED
|
Binary file
|
package/bin/ccl-linux-arm64
CHANGED
|
Binary file
|
package/bin/ccl-win32-arm64.exe
CHANGED
|
Binary file
|
package/bin/ccl-win32-x64.exe
CHANGED
|
Binary file
|