@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 CHANGED
@@ -7,24 +7,32 @@
7
7
  ## ✨ 核心亮点
8
8
 
9
9
  1. **智能多档模型映射 (无需复杂配置)**
10
- - 当 `config.yaml` 里的 `model` 字段留空时,`ccl` 将进入 **「智能协议代理映射模式」**。
11
- - 自动在启动时拉取接口提供商的可用模型库。
12
- - 动态分析 Claude Code 的模型档位(Opus / Sonnet / Haiku),匹配最佳替代:
13
- - 💎 **Opus 强推理档** (Claude Opus, Claude 4.8 / 4.7 等) $\Rightarrow$ 优先匹配 `deepseek-reasoner` (R1) 或 `o1`、`o3-mini`、`gpt-4o`。
14
- - 🚀 **Sonnet 黄金档** (Claude 3.5 Sonnet 等) $\Rightarrow$ 优先匹配 `deepseek-chat` (V3)、`gpt-4o`、`claude-3-5-sonnet`。
15
- - **Haiku 极速档** (Claude 3.5 Haiku 等) $\Rightarrow$ 优先匹配 `gpt-4o-mini`、`gpt-3.5-turbo`。
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. **智能环境探针与诊断 (`ccl doctor`)**
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
- 4. **多通道配置与灵活切换**
27
- - 支持添加、切换、列出、删除以及管理多个独立网关。
34
+ 5. **多通道配置与灵活切换**
35
+ - 支持添加、切换、列出、复制、删除以及管理多个独立网关。
28
36
  - 极简 CLI 交互界面,支持漂亮的终端可视化菜单。
29
37
 
30
38
  ---
@@ -32,8 +40,8 @@
32
40
  ## 🚀 安装与编译
33
41
 
34
42
  ### 快速安装
35
- ```
36
- npm install -g @claudecodelaunch/ccl
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 claude-code-launch
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
- macOS / Linux (Bash/Zsh)
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 # 如果使用的是 bash,请改为 source ~/.bashrc
80
+ source ~/.zshrc # ~/.bashrc
82
81
  ```
83
82
 
84
- Windows (PowerShell)
85
- 在 PowerShell 中运行以下命令(仅对当前用户永久生效):
83
+ ---
84
+
85
+ ## 🛠️ 快速上手
86
+
87
+ ### 极速免配置模式 (推荐 🚀)
88
+ 如果你已经在终端的环境变量中配置了 `OPENAI_API_KEY` 和 `OPENAI_BASE_URL`,`ccl` 将会自动识别并直接以此作为服务源,**完全零配置运行**:
86
89
 
87
- ```PowerShell
88
- [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$(go env GOPATH)\bin", "User")
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
- ## 🛠️ 自动化发布指南 (CI/CD)
96
+ ### 交互配置模式
93
97
 
94
- 项目配置了 GitHub Actions 自动化工作流。当需要发布新版本时,无需手动编译多平台包,只需直接在本地推送标签即可:
98
+ #### 1. 添加 / 更新 Provider
95
99
 
96
100
  ```bash
97
- # 1. 创建符合 v* 规范的版本 tag
98
- git tag v1.0.1
99
-
100
- # 2. 推送到 GitHub
101
- git push origin v1.0.1
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
- ```bash
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
- > 💡 在此模式下,依旧享受超强的 **「智能模型映射」**:常规对话走 `deepseek-chat`,深度推理全自动路由至 `deepseek-reasoner`!
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
- 如果你需要管理多个网关通道,可以使用 `ccl` 的配置管理系统:
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
- #### 1. 添加你的 AI 接口服务商 (Provider)
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
- 运行 `ccl add` 命令,开始添加。如果你使用的是 DeepSeek 官方,可以配置如下:
164
+ > 启用 1M 后,该槽位模型名自动追加 `[1m]` 后缀(如 `glm-5.2[1m]`),并在 provider 环境变量中注入 `CLAUDE_CODE_AUTO_COMPACT_WINDOW=1000000`。
165
+
166
+ #### 2. Provider 管理
134
167
 
135
168
  ```bash
136
- ./ccl add
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
- * **Provider Name**: `deepseek` (名字可自定义)
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
- ### 2. 查看与切换 Provider
180
+ # 删除一个 Provider
181
+ ccl conf rm name
147
182
 
148
- 你可以管理和随时切换当前处于 Active 激活状态的服务商:
183
+ # 切换到指定 provider
184
+ ccl use name
185
+ ```
186
+
187
+ #### 3. 环境变量管理
149
188
 
150
189
  ```bash
151
- # 查看所有已添加的服务商 (带有 * 的为当前激活)
152
- ./ccl list
190
+ # 查看当前 provider 的环境变量
191
+ ccl env ls
153
192
 
154
- # 切换到指定的 provider
155
- ./ccl use deepseek
156
- ```
193
+ # 设置/修改环境变量
194
+ ccl env KEY VALUE
157
195
 
158
- ### 3. 环境诊断
196
+ # 重命名环境变量
197
+ ccl env mv OLD_KEY NEW_KEY
159
198
 
160
- 在正式跑 Claude 之前,可以测试网关的健康度和密钥是否有效:
199
+ # 删除环境变量
200
+ ccl env rm KEY
201
+ ```
202
+
203
+ #### 4. 环境诊断
161
204
 
162
205
  ```bash
163
- ./ccl doctor
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
- 直接输入 `ccl`,即可丝滑进入 Claude Code CLI 原生界面:
211
+ #### 5. 启动 Claude Code
171
212
 
172
213
  ```bash
173
- # 启动 Claude Code 交互,所有请求均自动经本地 ccl 代理安全转换
174
- ./ccl
214
+ # 直接启动
215
+ ccl
175
216
 
176
- # 支持将后续的所有参数直接透传给 Claude Code
177
- ./ccl resume
178
- ./ccl --dangerously-skip-permissions
217
+ # 透传参数给 Claude Code
218
+ ccl resume
219
+ ccl --dangerously-skip-permissions
220
+ ccl claude --dangerously-skip-permissions
221
+ ```
179
222
 
180
- # 也可以显式使用 claude 命令来透传后面的所有参数:
181
- ./ccl claude resume
182
- ./ccl claude --dangerously-skip-permissions
223
+ #### 6. 一键升级
183
224
 
184
- # 你也可以像原来一样跟上其他的子命令或路径:
185
- ./ccl --help
186
- ./ccl /compact
225
+ ```bash
226
+ ccl update
187
227
  ```
188
228
 
189
- ### 5. 一键自我升级
229
+ 自动查询最新版本,支持通过 `npm` 或 `go install` 一键覆盖更新。
230
+
231
+ ---
232
+
233
+ ## 🔧 自动化发布 (CI/CD)
190
234
 
191
- `ccl` 提供了非常便捷的在线检测及升级命令:
235
+ 推送符合 `v*` 规范的 tag 即可触发 GitHub Actions 自动编译多平台包并发布:
192
236
 
193
237
  ```bash
194
- ccl update
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/ # CLI 命令定义 (Cobra)
207
- │ ├── add.go # 添加/更新提供商 (交互式)
208
- │ ├── delete.go # 删除提供商
209
- │ ├── doctor.go # 环境及密钥连通性自检
210
- │ ├── list.go # 列表展示提供商
211
- │ ├── root.go # ccl 主入口及 Claude 进程拉起
212
- │ ├── update.go # 自动检查并更新 ccl 版本
213
- └── use.go # 快速切换激活提供商
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/ # Claude Code CLI 自动安装、进程拉起及端口注入逻辑
216
- │ ├── config/ # 极简 yaml 配置文件加解密与载入
217
- │ ├── protocol/ # Anthropic <=> OpenAI 核心协议数据结构转换与 Stream 事件转换
218
- │ ├── provider/ # 提供商实体定义
219
- │ └── proxy/ # 本地自愈并发 TCP 代理服务、模型自动感知与映射
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
  ## 📄 开源许可
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.0",
3
+ "version": "1.1.1",
4
4
  "description": "Launcher and proxy wrapper for Claude Code CLI",
5
5
  "repository": {
6
6
  "type": "git",