@claudecodelaunch/ccl 1.1.1 → 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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  `ccl` 是一个专门为 Anthropic 官方 CLI 工具 **Claude Code** 开发的多模型网关代理与极速启动器。
4
4
 
5
- 它可以帮助你在运行 Claude Code 时,无缝对接 OpenAI 兼容格式的网关(如官方 DeepSeek、SiliconFlow、OpenRouter、OneAPI 等),实现超低成本运行。
5
+ 它可以帮助你在运行 Claude Code 时,无缝对接 OpenAI 兼容格式的网关(如 DeepSeek、SiliconFlow、OpenRouter、OneAPI 等),实现超低成本运行。
6
6
 
7
7
  ## ✨ 核心亮点
8
8
 
@@ -12,28 +12,24 @@
12
12
  - 💎 **Opus 强推理档** → 优先匹配 `deepseek-reasoner` (R1) 或 `o1`、`o3-mini`、`gpt-4o`
13
13
  - 🚀 **Sonnet 黄金档** → 优先匹配 `deepseek-chat` (V3)、`gpt-4o`、`claude-3-5-sonnet`
14
14
  - ⚡ **Haiku 极速档** → 优先匹配 `gpt-4o-mini`、`gpt-3.5-turbo`
15
- - 若通过 `ccl set` 手动为某个档位指定了模型,则该档位的自动映射被覆盖,其余未配置的档位仍走自动映射。
16
-
17
- > **两种模式的关系**:自动映射是兜底策略,手动槽位配置优先级更高。你可以只配置 Opus 档(指向推理模型),让 Sonnet / Haiku 继续走自动映射——完全按需混用。
15
+ - 若通过 `ccl set` / `ccl conf set` 手动为某个档位指定了模型,则该档位的自动映射被覆盖,其余未配置的档位仍走自动映射。
18
16
 
19
17
  2. **零感协议翻译与流式代理**
20
18
  - 采用本地轻量级的高性能并发 socket 服务(TCP),自动拦截并完美将 Anthropic 专有的 `Messages` 协议以及 `Streaming (SSE)` 转换为标准的 `OpenAI / Chat Completions` 协议。
21
- - 完美适配 Claude Code CLI 所有的 Tools(工具调用)和 System Prompt,使用体验 100% 丝滑。
22
19
 
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` 标识。
20
+ 3. **交互式 TUI 配置向导**
21
+ - 全新的 bubbletea 驱动的全屏 TUI:多页表单,键盘导航(方向键 / Tab / Enter / Esc),实时协议探测与模型拉取。
22
+ - 支持 6 Reasoning Effort(`low` ~ `ultracode`)、每个槽位独立配置模型、一键启用 1M 上下文。
23
+ - **多语言支持**:中文 / English,运行时通过 `ccl lang` 随时切换。
28
24
 
29
25
  4. **智能环境探针与诊断 (`ccl doctor`)**
30
26
  - 自动检查本地环境依赖(Node.js, Claude CLI)。
31
- - 如果系统未安装 Claude CLI,`ccl` 将触发**全自动静默安装**,无需你手动运行 `npm install -g`。
27
+ - 如果系统未安装 Claude CLI,`ccl` 将触发**全自动静默安装**。
32
28
  - 提供连接探针,对各 Provider 的 Endpoint 连通性、API 鉴权密钥进行安全测试。
33
29
 
34
30
  5. **多通道配置与灵活切换**
35
- - 支持添加、切换、列出、复制、删除以及管理多个独立网关。
36
- - 极简 CLI 交互界面,支持漂亮的终端可视化菜单。
31
+ - 支持添加、切换、列出、复制、重命名、删除以及管理多个独立网关。
32
+ - 配置统一存储在 `~/.ccl/config.yaml`,方便备份与迁移。
37
33
 
38
34
  ---
39
35
 
@@ -44,226 +40,229 @@
44
40
  npm install -g @claudecodelaunch/ccl
45
41
  ```
46
42
 
47
- ### 方法一:直接下载预编译二进制
48
- 我们利用 GitHub Actions 实现了完美的 CI/CD 流程,所有发布版本均包含多平台的开箱即用二进制。
43
+ ### 预编译二进制
44
+ 前往 [GitHub Releases](https://github.com/claude-code-launch/ccl/releases) 下载适合您平台的压缩包:
49
45
 
50
- 请前往 [GitHub Releases](https://github.com/claude-code-launch/ccl/releases) 页面,下载适合您平台的压缩包:
51
- - **Apple macOS**: `ccl-darwin-amd64` (Intel) / `ccl-darwin-arm64` (Apple Silicon M1/M2/M3)
52
- - **Linux**: `ccl-linux-amd64` / `ccl-linux-arm64`
53
- - **Windows**: `ccl-windows-amd64.exe`
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` |
54
54
 
55
- 下载后将其移动到您的系统 `PATH` 目录(例如 macOS/Linux 下的 `/usr/local/bin`),并赋予执行权限:
56
55
  ```bash
57
56
  chmod +x ccl-darwin-arm64
58
57
  mv ccl-darwin-arm64 /usr/local/bin/ccl
59
58
  ```
60
59
 
61
- ### 方法二:本地源码编译
62
- 如果您希望从源码编译,确保您本地已经安装了 Go (推荐 1.22+)。
63
-
60
+ ### 源码编译
64
61
  ```bash
65
62
  git clone https://github.com/claude-code-launch/ccl.git
66
63
  cd ccl
67
64
  go build -o ccl .
68
65
  ```
69
66
 
70
- ### 方法三:Go 安装
67
+ ### Go 安装
71
68
  ```bash
72
69
  go install github.com/claude-code-launch/ccl@latest
73
70
  ```
74
71
 
75
- ⚠️ 安装完成后,需将 `$GOPATH/bin` 添加到系统 `PATH`:
76
-
77
- ```bash
78
- export GOPATH=$(go env GOPATH)
79
- export PATH=$PATH:$GOPATH/bin
80
- source ~/.zshrc # 或 ~/.bashrc
81
- ```
82
-
83
72
  ---
84
73
 
85
- ## 🛠️ 快速上手
86
-
87
- ### 极速免配置模式 (推荐 🚀)
88
- 如果你已经在终端的环境变量中配置了 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`,`ccl` 将会自动识别并直接以此作为服务源,**完全零配置运行**:
89
-
90
- ```bash
91
- export OPENAI_API_KEY="sk-your-deepseek-api-key"
92
- export OPENAI_BASE_URL="https://api.deepseek.com"
93
- ccl
94
- ```
95
-
96
- ### 交互配置模式
74
+ ## 🛠️ 命令参考
97
75
 
98
- #### 1. 添加 / 更新 Provider
76
+ ### `ccl set` / `ccl conf set` — 添加/更新 Provider
99
77
 
100
78
  ```bash
79
+ # 交互式选择已有 provider 或新建
101
80
  ccl set
102
- # 或
103
- ccl conf set
104
- # 或直接指定名称
105
- ccl set deepseek
106
- ```
107
-
108
- 向导会引导你依次填写:
109
-
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` |
120
-
121
- #### 高级槽位配置(双栏 TUI)
122
-
123
- 进入高级配置后,外层以列表形式展示四个槽位:
124
81
 
125
- ```
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
- 完成
82
+ # 直接指定名称新建或更新
83
+ ccl set my-provider
84
+ ccl conf set my-provider
134
85
  ```
135
86
 
136
- 选中某个槽位后,进入**双栏 TUI**:
87
+ 无参数时弹出 **Provider 选择框**(↑↓ 选择,Enter 确认):
137
88
 
138
89
  ```
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
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
+ └─────────────────────────────────────────────────────┘
152
99
  ```
153
100
 
154
- | 操作 | 说明 |
155
- |------|------|
156
- | `↑ ↓` | 在左侧选项(1M / Done)间导航 |
157
- | `Enter` on `[x] Enable 1M Context` | 切换 1M 开关 |
158
- | `Enter` on `Done` | 确认并返回槽位列表 |
159
- | `Tab` | 切换到右侧模型列表 |
160
- | 右侧输入字符 | 实时过滤模型 |
161
- | `Enter`(右侧) | 选中模型,自动跳回左侧 |
162
- | `Esc` | 取消,返回槽位列表 |
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 保存 |
163
110
 
164
- > 启用 1M 后,该槽位模型名自动追加 `[1m]` 后缀(如 `glm-5.2[1m]`),并在 provider 环境变量中注入 `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000`。
111
+ 页面间通过 `Tab` / `Shift+Tab` 或底部按钮 `[Next]` / `[Back]` 导航。
165
112
 
166
- #### 2. Provider 管理
113
+ ### `ccl conf` — Provider 配置管理
167
114
 
168
115
  ```bash
169
- # 查看所有已添加的服务商(* 为当前激活)
116
+ # 列出所有 provider
170
117
  ccl conf ls
171
- # 或显示全部模型
172
- ccl conf ls -a
118
+ ccl conf ls -a # 显示全部模型(默认只显示前 3 个)
173
119
 
174
- # 复制一个 Provider 配置
120
+ # 复制配置
175
121
  ccl conf cp source target
176
122
 
177
- # 重命名一个 Provider
123
+ # 重命名
178
124
  ccl conf mv old-name new-name
179
125
 
180
- # 删除一个 Provider
126
+ # 删除
181
127
  ccl conf rm name
182
-
183
- # 切换到指定 provider
184
- ccl use name
185
128
  ```
186
129
 
187
- #### 3. 环境变量管理
130
+ ### `ccl env` — 环境变量管理
188
131
 
189
132
  ```bash
190
- # 查看当前 provider 的环境变量
133
+ # 列出所有环境变量
191
134
  ccl env ls
192
135
 
193
- # 设置/修改环境变量
136
+ # 设置/修改
194
137
  ccl env KEY VALUE
195
138
 
196
- # 重命名环境变量
139
+ # 重命名
197
140
  ccl env mv OLD_KEY NEW_KEY
198
141
 
199
- # 删除环境变量
142
+ # 删除
200
143
  ccl env rm KEY
201
144
  ```
202
145
 
203
- #### 4. 环境诊断
146
+ ### `ccl use` — 切换激活 Provider
147
+
148
+ ```bash
149
+ ccl use provider-name
150
+ ```
151
+
152
+ ### `ccl lang` — 切换显示语言
153
+
154
+ ```bash
155
+ # 交互式选择
156
+ ccl lang
157
+
158
+ # 直接指定
159
+ ccl lang zh # 中文
160
+ ccl lang en # English
161
+ ```
162
+
163
+ 设置后立即生效并持久化到 `~/.ccl/config.yaml`。优先级:`CCL_LANG` 环境变量 > config.yaml > 系统语言。
164
+
165
+ ### `ccl doctor` — 环境诊断
204
166
 
205
167
  ```bash
206
168
  ccl doctor
207
169
  ```
208
170
 
209
- 如果检测到本地没有全局安装 `@anthropic-ai/claude-code`,会提示并尝试一键静默安装。
171
+ 检查本地依赖、Endpoint 连通性、API 鉴权。如果 Claude CLI 未安装,自动触发一键安装。
172
+
173
+ ### `ccl list` — 查看所有 Provider
174
+
175
+ ```bash
176
+ ccl list
177
+ # 或
178
+ ccl conf ls
179
+ ```
180
+
181
+ ### `ccl update` — 升级
182
+
183
+ ```bash
184
+ ccl update
185
+ ```
186
+
187
+ 支持通过 `npm` / `go install` 一键升级。
210
188
 
211
- #### 5. 启动 Claude Code
189
+ ### `ccl` 启动 Claude Code
212
190
 
213
191
  ```bash
214
192
  # 直接启动
215
193
  ccl
216
194
 
217
- # 透传参数给 Claude Code
195
+ # 透传参数
218
196
  ccl resume
219
197
  ccl --dangerously-skip-permissions
220
198
  ccl claude --dangerously-skip-permissions
221
199
  ```
222
200
 
223
- #### 6. 一键升级
201
+ ---
224
202
 
225
- ```bash
226
- ccl update
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
227
220
  ```
228
221
 
229
- 自动查询最新版本,支持通过 `npm` 或 `go install` 一键覆盖更新。
230
-
231
222
  ---
232
223
 
233
- ## 🔧 自动化发布 (CI/CD)
224
+ ## 🔧 CI/CD
234
225
 
235
- 推送符合 `v*` 规范的 tag 即可触发 GitHub Actions 自动编译多平台包并发布:
226
+ 推送符合 `v*` 规范的 tag 触发自动编译发布:
236
227
 
237
228
  ```bash
238
- git tag v1.1.0
239
- git push origin v1.1.0
229
+ git tag v1.2.0
230
+ git push origin v1.2.0
240
231
  ```
241
232
 
233
+ GitHub Actions 自动构建 6 个平台二进制并发布到 GitHub Releases + npm。
234
+
242
235
  ---
243
236
 
244
237
  ## 📁 目录结构
245
238
 
246
239
  ```text
247
240
  ├── 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 # 快速切换激活提供商
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 # 版本信息
258
256
  ├── internal/
259
- │ ├── claude/ # Claude Code CLI 自动安装、进程拉起及端口注入
260
- │ ├── config/ # yaml 配置文件读写
261
- │ ├── protocol/ # Anthropic OpenAI 协议转换 & Stream 事件转换
262
- │ ├── provider/ # 提供商实体定义(含槽位模型字段)
263
- └── proxy/ # 本地并发 TCP 代理服务、模型自动感知与映射
257
+ │ ├── claude/ # Claude Code 进程拉起 & 端口注入
258
+ │ ├── config/ # yaml 配置文件读写
259
+ │ ├── locale/ # 多语言支持(中文 / English)
260
+ │ ├── protocol/ # Anthropic ↔ OpenAI 协议转换
261
+ ├── provider/ # Provider & Config 数据结构
262
+ │ └── proxy/ # 本地 TCP 代理服务
264
263
  └── main.go
265
264
  ```
266
265
 
267
266
  ## 📄 开源许可
268
267
 
269
- 本项目采用 MIT 协议开源。
268
+ MIT
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudecodelaunch/ccl",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "Launcher and proxy wrapper for Claude Code CLI",
5
5
  "repository": {
6
6
  "type": "git",