@claudecodelaunch/ccl 1.1.0 → 1.1.1
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 +158 -114
- 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
|
@@ -7,24 +7,32 @@
|
|
|
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` 手动为某个档位指定了模型,则该档位的自动映射被覆盖,其余未配置的档位仍走自动映射。
|
|
16
|
+
|
|
17
|
+
> **两种模式的关系**:自动映射是兜底策略,手动槽位配置优先级更高。你可以只配置 Opus 档(指向推理模型),让 Sonnet / Haiku 继续走自动映射——完全按需混用。
|
|
16
18
|
|
|
17
19
|
2. **零感协议翻译与流式代理**
|
|
18
20
|
- 采用本地轻量级的高性能并发 socket 服务(TCP),自动拦截并完美将 Anthropic 专有的 `Messages` 协议以及 `Streaming (SSE)` 转换为标准的 `OpenAI / Chat Completions` 协议。
|
|
19
21
|
- 完美适配 Claude Code CLI 所有的 Tools(工具调用)和 System Prompt,使用体验 100% 丝滑。
|
|
20
22
|
|
|
21
|
-
3.
|
|
23
|
+
3. **精细模型槽位配置 (`ccl set` / `ccl conf set` 高级模式)**
|
|
24
|
+
- 支持对 Claude Code 的每个模型档位(Opus / Sonnet / Haiku / Custom)独立指定模型。
|
|
25
|
+
- 全新的 **双栏 TUI 交互界面**:左侧选项(1M 开关 + Done),右侧模型列表(支持实时输入过滤)。
|
|
26
|
+
- **一键启用 1M 上下文**:为指定槽位开启 `[x] 1M` 后,自动在模型名添加 `[1m]` 后缀,并注入 `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000` 环境变量。
|
|
27
|
+
- 外层槽位列表实时显示已启用 1M 的槽位红色 `⚡1M` 标识。
|
|
28
|
+
|
|
29
|
+
4. **智能环境探针与诊断 (`ccl doctor`)**
|
|
22
30
|
- 自动检查本地环境依赖(Node.js, Claude CLI)。
|
|
23
31
|
- 如果系统未安装 Claude CLI,`ccl` 将触发**全自动静默安装**,无需你手动运行 `npm install -g`。
|
|
24
32
|
- 提供连接探针,对各 Provider 的 Endpoint 连通性、API 鉴权密钥进行安全测试。
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
-
|
|
34
|
+
5. **多通道配置与灵活切换**
|
|
35
|
+
- 支持添加、切换、列出、复制、删除以及管理多个独立网关。
|
|
28
36
|
- 极简 CLI 交互界面,支持漂亮的终端可视化菜单。
|
|
29
37
|
|
|
30
38
|
---
|
|
@@ -32,8 +40,8 @@
|
|
|
32
40
|
## 🚀 安装与编译
|
|
33
41
|
|
|
34
42
|
### 快速安装
|
|
35
|
-
```
|
|
36
|
-
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g @claudecodelaunch/ccl
|
|
37
45
|
```
|
|
38
46
|
|
|
39
47
|
### 方法一:直接下载预编译二进制
|
|
@@ -54,170 +62,206 @@ mv ccl-darwin-arm64 /usr/local/bin/ccl
|
|
|
54
62
|
如果您希望从源码编译,确保您本地已经安装了 Go (推荐 1.22+)。
|
|
55
63
|
|
|
56
64
|
```bash
|
|
57
|
-
# 克隆仓库
|
|
58
65
|
git clone https://github.com/claude-code-launch/ccl.git
|
|
59
|
-
cd
|
|
60
|
-
|
|
61
|
-
# 编译生成 ccl 执行文件
|
|
62
|
-
go build -o ccl main.go
|
|
66
|
+
cd ccl
|
|
67
|
+
go build -o ccl .
|
|
63
68
|
```
|
|
64
|
-
### 方法三:Go 安装
|
|
65
|
-
确保您本地已经安装了 Go(推荐 1.22+)。
|
|
66
69
|
|
|
67
|
-
|
|
70
|
+
### 方法三:Go 安装
|
|
71
|
+
```bash
|
|
68
72
|
go install github.com/claude-code-launch/ccl@latest
|
|
69
73
|
```
|
|
70
|
-
⚠️ 注意:安装完成后,您需要将 GOBIN 目录添加到系统的 PATH 环境变量中,否则可能无法在终端直接运行 ccl 命令。
|
|
71
|
-
|
|
72
|
-
如何配置 PATH 环境变量?
|
|
73
|
-
根据您的操作系统,选择对应的配置方式:
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
打开终端并运行以下命令(根据你使用的 shell,修改 ~/.zshrc 或 ~/.bashrc):
|
|
75
|
+
⚠️ 安装完成后,需将 `$GOPATH/bin` 添加到系统 `PATH`:
|
|
77
76
|
|
|
78
|
-
```
|
|
77
|
+
```bash
|
|
79
78
|
export GOPATH=$(go env GOPATH)
|
|
80
79
|
export PATH=$PATH:$GOPATH/bin
|
|
81
|
-
source ~/.zshrc
|
|
80
|
+
source ~/.zshrc # 或 ~/.bashrc
|
|
82
81
|
```
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 🛠️ 快速上手
|
|
86
|
+
|
|
87
|
+
### 极速免配置模式 (推荐 🚀)
|
|
88
|
+
如果你已经在终端的环境变量中配置了 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`,`ccl` 将会自动识别并直接以此作为服务源,**完全零配置运行**:
|
|
86
89
|
|
|
87
|
-
```
|
|
88
|
-
|
|
90
|
+
```bash
|
|
91
|
+
export OPENAI_API_KEY="sk-your-deepseek-api-key"
|
|
92
|
+
export OPENAI_BASE_URL="https://api.deepseek.com"
|
|
93
|
+
ccl
|
|
89
94
|
```
|
|
90
|
-
注:重启终端后生效。
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
### 交互配置模式
|
|
93
97
|
|
|
94
|
-
|
|
98
|
+
#### 1. 添加 / 更新 Provider
|
|
95
99
|
|
|
96
100
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
#
|
|
101
|
-
|
|
101
|
+
ccl set
|
|
102
|
+
# 或
|
|
103
|
+
ccl conf set
|
|
104
|
+
# 或直接指定名称
|
|
105
|
+
ccl set deepseek
|
|
102
106
|
```
|
|
103
|
-
GitHub Actions 会自动触发并执行以下操作:
|
|
104
|
-
- 拉取代码,配置 Go 1.24 运行环境。
|
|
105
|
-
- 使用 `-ldflags="-s -w"` 深度压缩二进制体积(剔除符号调试表,缩减 35%+)。
|
|
106
|
-
- 跨平台交叉编译 macOS、Linux、Windows 5 大核心架构的目标文件。
|
|
107
|
-
- 自动提取标签之间的 Commit 历史生成发布日志并发布。
|
|
108
107
|
|
|
109
|
-
|
|
108
|
+
向导会引导你依次填写:
|
|
110
109
|
|
|
111
|
-
|
|
110
|
+
| 步骤 | 说明 |
|
|
111
|
+
|------|------|
|
|
112
|
+
| Language | 选择交互语言(中文 / English) |
|
|
113
|
+
| Provider Name | 唯一标识符,如 `deepseek`、`openrouter` |
|
|
114
|
+
| Endpoint URL | API 地址,如 `https://api.deepseek.com` |
|
|
115
|
+
| API Key | 密钥,本地存储 |
|
|
116
|
+
| 协议自动探测 | 自动识别 Anthropic / OpenAI 兼容协议 |
|
|
117
|
+
| 模型池 | 自动从接口拉取,或手动输入(逗号分隔) |
|
|
118
|
+
| **高级槽位配置** | 见下方说明(默认开启) |
|
|
119
|
+
| Effort Level | `low / medium / high / xhigh / max / ultracode` |
|
|
112
120
|
|
|
113
|
-
|
|
114
|
-
如果你已经在终端的环境变量中配置了 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`,`ccl` 将会自动识别并直接以此作为服务源,**完全零配置运行**!
|
|
121
|
+
#### 高级槽位配置(双栏 TUI)
|
|
115
122
|
|
|
116
|
-
|
|
117
|
-
# 1. 注入你的环境变量(例如使用 DeepSeek 官方)
|
|
118
|
-
export OPENAI_API_KEY="sk-your-deepseek-api-key"
|
|
119
|
-
export OPENAI_BASE_URL="https://api.deepseek.com" # 选填,默认指向官方 OpenAI
|
|
123
|
+
进入高级配置后,外层以列表形式展示四个槽位:
|
|
120
124
|
|
|
121
|
-
# 2. 直接一行启动
|
|
122
|
-
ccl
|
|
123
125
|
```
|
|
124
|
-
|
|
126
|
+
Claude Slot 映射
|
|
127
|
+
Select a slot to configure its model, or select [ ] 1m to toggle.
|
|
128
|
+
|
|
129
|
+
> Opus — current: devstral-2512 ⚡1M
|
|
130
|
+
Sonnet — current: mistral-medium-2505
|
|
131
|
+
Haiku — current: (not set)
|
|
132
|
+
Custom (user-defined slot) — current: (not set)
|
|
133
|
+
完成
|
|
134
|
+
```
|
|
125
135
|
|
|
126
|
-
|
|
136
|
+
选中某个槽位后,进入**双栏 TUI**:
|
|
127
137
|
|
|
128
|
-
|
|
129
|
-
|
|
138
|
+
```
|
|
139
|
+
Configure: Opus
|
|
140
|
+
|
|
141
|
+
╭────────────────────────────╮ ╭───────────────────────────╮
|
|
142
|
+
│ Slot: Opus │ │ / type to filter... │
|
|
143
|
+
│ Model: glm-5.2 │ │ codestral-2512 │
|
|
144
|
+
│ │ │ > glm-5.2 │
|
|
145
|
+
│ > [x] Enable 1M Context │ │ glm-4.5-air │
|
|
146
|
+
│ Done │ │ mistral-medium-2505 │
|
|
147
|
+
│ │ │ … 3/59 │
|
|
148
|
+
│ Tab → model list │ ╰───────────────────────────╯
|
|
149
|
+
╰────────────────────────────╯
|
|
150
|
+
|
|
151
|
+
↑↓ Navigate Enter Select Tab → model list Esc Cancel
|
|
152
|
+
```
|
|
130
153
|
|
|
131
|
-
|
|
154
|
+
| 操作 | 说明 |
|
|
155
|
+
|------|------|
|
|
156
|
+
| `↑ ↓` | 在左侧选项(1M / Done)间导航 |
|
|
157
|
+
| `Enter` on `[x] Enable 1M Context` | 切换 1M 开关 |
|
|
158
|
+
| `Enter` on `Done` | 确认并返回槽位列表 |
|
|
159
|
+
| `Tab` | 切换到右侧模型列表 |
|
|
160
|
+
| 右侧输入字符 | 实时过滤模型 |
|
|
161
|
+
| `Enter`(右侧) | 选中模型,自动跳回左侧 |
|
|
162
|
+
| `Esc` | 取消,返回槽位列表 |
|
|
132
163
|
|
|
133
|
-
|
|
164
|
+
> 启用 1M 后,该槽位模型名自动追加 `[1m]` 后缀(如 `glm-5.2[1m]`),并在 provider 环境变量中注入 `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000`。
|
|
165
|
+
|
|
166
|
+
#### 2. Provider 管理
|
|
134
167
|
|
|
135
168
|
```bash
|
|
136
|
-
|
|
137
|
-
|
|
169
|
+
# 查看所有已添加的服务商(* 为当前激活)
|
|
170
|
+
ccl conf ls
|
|
171
|
+
# 或显示全部模型
|
|
172
|
+
ccl conf ls -a
|
|
173
|
+
|
|
174
|
+
# 复制一个 Provider 配置
|
|
175
|
+
ccl conf cp source target
|
|
138
176
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
* **Provider Type**: 选择 `openai` (哪怕是 DeepSeek、OpenRouter 均选此项以启用本地协议代理)
|
|
142
|
-
* **API Key**: 填入你的 DeepSeek API Key (形如 `sk-...`)
|
|
143
|
-
* **Endpoint**: 填入 `https://api.deepseek.com` 或中转服务地址(不带 `/v1/chat/completions` 后缀)
|
|
144
|
-
* **Model**: **[推荐留空]** 直接按回车跳过。这样代理层将为你开启全自动的「智能模型映射」,在发送普通对话时跑 `deepseek-chat` (V3),在调用深度推理时完美、低延迟地跑 `deepseek-reasoner` (R1)。
|
|
177
|
+
# 重命名一个 Provider
|
|
178
|
+
ccl conf mv old-name new-name
|
|
145
179
|
|
|
146
|
-
|
|
180
|
+
# 删除一个 Provider
|
|
181
|
+
ccl conf rm name
|
|
147
182
|
|
|
148
|
-
|
|
183
|
+
# 切换到指定 provider
|
|
184
|
+
ccl use name
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
#### 3. 环境变量管理
|
|
149
188
|
|
|
150
189
|
```bash
|
|
151
|
-
#
|
|
152
|
-
|
|
190
|
+
# 查看当前 provider 的环境变量
|
|
191
|
+
ccl env ls
|
|
153
192
|
|
|
154
|
-
#
|
|
155
|
-
|
|
156
|
-
```
|
|
193
|
+
# 设置/修改环境变量
|
|
194
|
+
ccl env KEY VALUE
|
|
157
195
|
|
|
158
|
-
|
|
196
|
+
# 重命名环境变量
|
|
197
|
+
ccl env mv OLD_KEY NEW_KEY
|
|
159
198
|
|
|
160
|
-
|
|
199
|
+
# 删除环境变量
|
|
200
|
+
ccl env rm KEY
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
#### 4. 环境诊断
|
|
161
204
|
|
|
162
205
|
```bash
|
|
163
|
-
|
|
206
|
+
ccl doctor
|
|
164
207
|
```
|
|
165
208
|
|
|
166
|
-
如果检测到本地没有全局安装 `@anthropic-ai/claude-code
|
|
167
|
-
|
|
168
|
-
### 4. 开启 Claude Code 奇妙旅程
|
|
209
|
+
如果检测到本地没有全局安装 `@anthropic-ai/claude-code`,会提示并尝试一键静默安装。
|
|
169
210
|
|
|
170
|
-
|
|
211
|
+
#### 5. 启动 Claude Code
|
|
171
212
|
|
|
172
213
|
```bash
|
|
173
|
-
#
|
|
174
|
-
|
|
214
|
+
# 直接启动
|
|
215
|
+
ccl
|
|
175
216
|
|
|
176
|
-
#
|
|
177
|
-
|
|
178
|
-
|
|
217
|
+
# 透传参数给 Claude Code
|
|
218
|
+
ccl resume
|
|
219
|
+
ccl --dangerously-skip-permissions
|
|
220
|
+
ccl claude --dangerously-skip-permissions
|
|
221
|
+
```
|
|
179
222
|
|
|
180
|
-
|
|
181
|
-
./ccl claude resume
|
|
182
|
-
./ccl claude --dangerously-skip-permissions
|
|
223
|
+
#### 6. 一键升级
|
|
183
224
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
./ccl /compact
|
|
225
|
+
```bash
|
|
226
|
+
ccl update
|
|
187
227
|
```
|
|
188
228
|
|
|
189
|
-
|
|
229
|
+
自动查询最新版本,支持通过 `npm` 或 `go install` 一键覆盖更新。
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 🔧 自动化发布 (CI/CD)
|
|
190
234
|
|
|
191
|
-
`
|
|
235
|
+
推送符合 `v*` 规范的 tag 即可触发 GitHub Actions 自动编译多平台包并发布:
|
|
192
236
|
|
|
193
237
|
```bash
|
|
194
|
-
|
|
238
|
+
git tag v1.1.0
|
|
239
|
+
git push origin v1.1.0
|
|
195
240
|
```
|
|
196
241
|
|
|
197
|
-
运行后,`ccl` 会:
|
|
198
|
-
- 自动查询 npm 镜像源上的最新版本。
|
|
199
|
-
- 比对当前版本,若有新版本,将提示您选择升级方式(支持通过 `npm` 或 `go install` 一键自动下载并完成覆盖更新)。
|
|
200
|
-
|
|
201
242
|
---
|
|
202
243
|
|
|
203
244
|
## 📁 目录结构
|
|
204
245
|
|
|
205
246
|
```text
|
|
206
|
-
├── cmd/
|
|
207
|
-
│ ├──
|
|
208
|
-
│ ├──
|
|
209
|
-
│ ├──
|
|
210
|
-
│ ├──
|
|
211
|
-
│ ├──
|
|
212
|
-
│ ├──
|
|
213
|
-
│
|
|
247
|
+
├── cmd/
|
|
248
|
+
│ ├── conf.go # Provider 配置管理(cp/ls/mv/rm/set)
|
|
249
|
+
│ ├── env.go # 环境变量管理(ls/rm/mv)
|
|
250
|
+
│ ├── set.go # 添加/更新提供商(交互式向导 + 高级槽位配置)
|
|
251
|
+
│ ├── slot_config_tui.go # 双栏 TUI:模型选择 + 1M 上下文开关
|
|
252
|
+
│ ├── doctor.go # 环境及密钥连通性自检
|
|
253
|
+
│ ├── list.go # 列表展示提供商
|
|
254
|
+
│ ├── root.go # ccl 主入口及 Claude 进程拉起
|
|
255
|
+
│ ├── translate.go # 多语言支持(中文 / English)
|
|
256
|
+
│ ├── update.go # 自动检查并更新 ccl 版本
|
|
257
|
+
│ └── use.go # 快速切换激活提供商
|
|
214
258
|
├── internal/
|
|
215
|
-
│ ├── claude/
|
|
216
|
-
│ ├── config/
|
|
217
|
-
│ ├── protocol/
|
|
218
|
-
│ ├── provider/
|
|
219
|
-
│ └── proxy/
|
|
220
|
-
└── main.go
|
|
259
|
+
│ ├── claude/ # Claude Code CLI 自动安装、进程拉起及端口注入
|
|
260
|
+
│ ├── config/ # yaml 配置文件读写
|
|
261
|
+
│ ├── protocol/ # Anthropic ↔ OpenAI 协议转换 & Stream 事件转换
|
|
262
|
+
│ ├── provider/ # 提供商实体定义(含槽位模型字段)
|
|
263
|
+
│ └── proxy/ # 本地并发 TCP 代理服务、模型自动感知与映射
|
|
264
|
+
└── main.go
|
|
221
265
|
```
|
|
222
266
|
|
|
223
267
|
## 📄 开源许可
|
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
|