@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 CHANGED
@@ -2,224 +2,267 @@
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
 
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` / `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. **智能环境探针与诊断 (`ccl doctor`)**
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` 将触发**全自动静默安装**,无需你手动运行 `npm install -g`。
27
+ - 如果系统未安装 Claude CLI,`ccl` 将触发**全自动静默安装**。
24
28
  - 提供连接探针,对各 Provider 的 Endpoint 连通性、API 鉴权密钥进行安全测试。
25
29
 
26
- 4. **多通道配置与灵活切换**
27
- - 支持添加、切换、列出、删除以及管理多个独立网关。
28
- - 极简 CLI 交互界面,支持漂亮的终端可视化菜单。
30
+ 5. **多通道配置与灵活切换**
31
+ - 支持添加、切换、列出、复制、重命名、删除以及管理多个独立网关。
32
+ - 配置统一存储在 `~/.ccl/config.yaml`,方便备份与迁移。
29
33
 
30
34
  ---
31
35
 
32
36
  ## 🚀 安装与编译
33
37
 
34
38
  ### 快速安装
35
- ```
36
- npm install -g @claudecodelaunch/ccl
39
+ ```bash
40
+ npm install -g @claudecodelaunch/ccl
37
41
  ```
38
42
 
39
- ### 方法一:直接下载预编译二进制
40
- 我们利用 GitHub Actions 实现了完美的 CI/CD 流程,所有发布版本均包含多平台的开箱即用二进制。
43
+ ### 预编译二进制
44
+ 前往 [GitHub Releases](https://github.com/claude-code-launch/ccl/releases) 下载适合您平台的压缩包:
41
45
 
42
- 请前往 [GitHub Releases](https://github.com/claude-code-launch/ccl/releases) 页面,下载适合您平台的压缩包:
43
- - **Apple macOS**: `ccl-darwin-amd64` (Intel) / `ccl-darwin-arm64` (Apple Silicon M1/M2/M3)
44
- - **Linux**: `ccl-linux-amd64` / `ccl-linux-arm64`
45
- - **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` |
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 claude-code-launch
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
- 如何配置 PATH 环境变量?
73
- 根据您的操作系统,选择对应的配置方式:
72
+ ---
74
73
 
75
- macOS / Linux (Bash/Zsh)
76
- 打开终端并运行以下命令(根据你使用的 shell,修改 ~/.zshrc 或 ~/.bashrc):
74
+ ## 🛠️ 命令参考
77
75
 
78
- ```
79
- export GOPATH=$(go env GOPATH)
80
- export PATH=$PATH:$GOPATH/bin
81
- source ~/.zshrc # 如果使用的是 bash,请改为 source ~/.bashrc
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
- Windows (PowerShell)
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
- ## 🛠️ 自动化发布指南 (CI/CD)
111
+ 页面间通过 `Tab` / `Shift+Tab` 或底部按钮 `[Next]` / `[Back]` 导航。
93
112
 
94
- 项目配置了 GitHub Actions 自动化工作流。当需要发布新版本时,无需手动编译多平台包,只需直接在本地推送标签即可:
113
+ ### `ccl conf` — Provider 配置管理
95
114
 
96
115
  ```bash
97
- # 1. 创建符合 v* 规范的版本 tag
98
- git tag v1.0.1
116
+ # 列出所有 provider
117
+ ccl conf ls
118
+ ccl conf ls -a # 显示全部模型(默认只显示前 3 个)
99
119
 
100
- # 2. 推送到 GitHub
101
- git push origin v1.0.1
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
- # 1. 注入你的环境变量(例如使用 DeepSeek 官方)
118
- export OPENAI_API_KEY="sk-your-deepseek-api-key"
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
- 如果你需要管理多个网关通道,可以使用 `ccl` 的配置管理系统:
139
+ # 重命名
140
+ ccl env mv OLD_KEY NEW_KEY
130
141
 
131
- #### 1. 添加你的 AI 接口服务商 (Provider)
142
+ # 删除
143
+ ccl env rm KEY
144
+ ```
132
145
 
133
- 运行 `ccl add` 命令,开始添加。如果你使用的是 DeepSeek 官方,可以配置如下:
146
+ ### `ccl use` 切换激活 Provider
134
147
 
135
148
  ```bash
136
- ./ccl add
149
+ ccl use provider-name
137
150
  ```
138
151
 
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)。
152
+ ### `ccl lang` — 切换显示语言
153
+
154
+ ```bash
155
+ # 交互式选择
156
+ ccl lang
145
157
 
146
- ### 2. 查看与切换 Provider
158
+ # 直接指定
159
+ ccl lang zh # 中文
160
+ ccl lang en # English
161
+ ```
147
162
 
148
- 你可以管理和随时切换当前处于 Active 激活状态的服务商:
163
+ 设置后立即生效并持久化到 `~/.ccl/config.yaml`。优先级:`CCL_LANG` 环境变量 > config.yaml > 系统语言。
149
164
 
150
- ```bash
151
- # 查看所有已添加的服务商 (带有 * 的为当前激活)
152
- ./ccl list
165
+ ### `ccl doctor` — 环境诊断
153
166
 
154
- # 切换到指定的 provider
155
- ./ccl use deepseek
167
+ ```bash
168
+ ccl doctor
156
169
  ```
157
170
 
158
- ### 3. 环境诊断
171
+ 检查本地依赖、Endpoint 连通性、API 鉴权。如果 Claude CLI 未安装,自动触发一键安装。
159
172
 
160
- 在正式跑 Claude 之前,可以测试网关的健康度和密钥是否有效:
173
+ ### `ccl list` — 查看所有 Provider
161
174
 
162
175
  ```bash
163
- ./ccl doctor
176
+ ccl list
177
+ # 或
178
+ ccl conf ls
164
179
  ```
165
180
 
166
- 如果检测到本地没有全局安装 `@anthropic-ai/claude-code`,它会提示并尝试为你一键静默安装。
181
+ ### `ccl update` — 升级
167
182
 
168
- ### 4. 开启 Claude Code 奇妙旅程
183
+ ```bash
184
+ ccl update
185
+ ```
186
+
187
+ 支持通过 `npm` / `go install` 一键升级。
169
188
 
170
- 直接输入 `ccl`,即可丝滑进入 Claude Code CLI 原生界面:
189
+ ### `ccl` — 启动 Claude Code
171
190
 
172
191
  ```bash
173
- # 启动 Claude Code 交互,所有请求均自动经本地 ccl 代理安全转换
174
- ./ccl
192
+ # 直接启动
193
+ ccl
175
194
 
176
- # 支持将后续的所有参数直接透传给 Claude Code:
177
- ./ccl resume
178
- ./ccl --dangerously-skip-permissions
195
+ # 透传参数
196
+ ccl resume
197
+ ccl --dangerously-skip-permissions
198
+ ccl claude --dangerously-skip-permissions
199
+ ```
179
200
 
180
- # 也可以显式使用 claude 命令来透传后面的所有参数:
181
- ./ccl claude resume
182
- ./ccl claude --dangerously-skip-permissions
201
+ ---
183
202
 
184
- # 你也可以像原来一样跟上其他的子命令或路径:
185
- ./ccl --help
186
- ./ccl /compact
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
- ### 5. 一键自我升级
222
+ ---
223
+
224
+ ## 🔧 CI/CD
190
225
 
191
- `ccl` 提供了非常便捷的在线检测及升级命令:
226
+ 推送符合 `v*` 规范的 tag 触发自动编译发布:
192
227
 
193
228
  ```bash
194
- ccl update
229
+ git tag v1.2.0
230
+ git push origin v1.2.0
195
231
  ```
196
232
 
197
- 运行后,`ccl` 会:
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/ # 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 # 快速切换激活提供商
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/ # Claude Code CLI 自动安装、进程拉起及端口注入逻辑
216
- │ ├── config/ # 极简 yaml 配置文件加解密与载入
217
- │ ├── protocol/ # Anthropic <=> OpenAI 核心协议数据结构转换与 Stream 事件转换
218
- │ ├── provider/ # 提供商实体定义
219
- └── proxy/ # 本地自愈并发 TCP 代理服务、模型自动感知与映射
220
- └── main.go # 引导文件
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
- 本项目采用 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.0",
3
+ "version": "1.2.0",
4
4
  "description": "Launcher and proxy wrapper for Claude Code CLI",
5
5
  "repository": {
6
6
  "type": "git",