ccl

command module
v1.2.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2026 License: MIT Imports: 1 Imported by: 0

README

ccl: Claude Code 多网关智能代理启动器 (Multi-Provider Launcher)

ccl 是一个专门为 Anthropic 官方 CLI 工具 Claude Code 开发的多模型网关代理与极速启动器。

它可以帮助你在运行 Claude Code 时,无缝对接 OpenAI 兼容格式的网关(如 DeepSeek、SiliconFlow、OpenRouter、OneAPI 等),实现超低成本运行。

✨ 核心亮点

  1. 智能多档模型映射 (无需复杂配置)

    • 当槽位未手动配置时,ccl 自动进入 「智能协议代理映射模式」
    • 自动在启动时拉取接口提供商的可用模型库,按关键词动态分析并分配到各档位:
      • 💎 Opus 强推理档 → 优先匹配 deepseek-reasoner (R1) 或 o1o3-minigpt-4o
      • 🚀 Sonnet 黄金档 → 优先匹配 deepseek-chat (V3)、gpt-4oclaude-3-5-sonnet
      • Haiku 极速档 → 优先匹配 gpt-4o-minigpt-3.5-turbo
    • 若通过 ccl set 手动为某个档位指定了模型,则该档位的自动映射被覆盖,其余未配置的档位仍走自动映射。
  2. 零感协议翻译与流式代理

    • 采用本地轻量级的高性能并发 socket 服务(TCP),自动拦截并完美将 Anthropic 专有的 Messages 协议以及 Streaming (SSE) 转换为标准的 OpenAI / Chat Completions 协议。
  3. 交互式 TUI 配置向导

    • 全新的 bubbletea 驱动的全屏 TUI:多页表单,键盘导航(方向键 / Tab / Enter / Esc),实时协议探测与模型拉取。
    • 支持 Default + 6 档 Reasoning Effort(low ~ ultracode):Default 不注入 CLAUDE_CODE_EFFORT_LEVEL,允许 Claude 内部设置生效。
    • 自动识别 Anthropic 兼容网关的认证方式:官方 x-api-key 或 Bearer token(ANTHROPIC_AUTH_TOKEN)。
    • 多语言支持:中文 / English,运行时通过 ccl lang 随时切换。
  4. 智能环境探针与诊断 (ccl doctor)

    • 自动检查本地环境依赖(Node.js, Claude CLI)。
    • 如果系统未安装 Claude CLI,ccl 将触发全自动静默安装
    • 提供连接探针,对各 Provider 的 Endpoint 连通性、API 鉴权密钥进行安全测试。
    • 模型可用性检测:并发批量测试所有配置的模型(50 并发 / 10s 超时),自动将可用模型排在配置文件前列。
    • 实时进度条:模型测试时显示 [████████░░░░░░] 45/100 ✓38 ✗7 进度条。
  5. 多通道配置与灵活切换

    • 支持添加、切换、列出、复制、重命名、删除以及管理多个独立网关。
    • 配置统一存储在 ~/.ccl/config.yaml,方便备份与迁移。

🚀 安装与编译

快速安装
npm install -g @claudecodelaunch/ccl
预编译二进制

前往 GitHub Releases 下载适合您平台的压缩包:

平台 文件名
macOS Intel ccl-darwin-amd64
macOS Apple Silicon ccl-darwin-arm64
Linux amd64 ccl-linux-amd64
Linux arm64 ccl-linux-arm64
Windows x64 ccl-win32-x64.exe
Windows arm64 ccl-win32-arm64.exe
chmod +x ccl-darwin-arm64
mv ccl-darwin-arm64 /usr/local/bin/ccl
源码编译
git clone https://github.com/claude-code-launch/ccl.git
cd ccl
go build -o ccl .
Go 安装
go install github.com/claude-code-launch/ccl@latest

🛠️ 命令参考

ccl set — 添加/更新 Provider
# 交互式选择已有 provider 或新建
ccl set

# 直接指定名称新建或更新
ccl set my-provider

无参数时弹出 Provider 选择框(↑↓ 选择,Enter 确认):

┌─ Select a provider or create new: ─────────────────┐
│                                                     │
│  ▸ + Create new provider                            │
│    deepseek                                         │
│    oc1 (active)                                     │
│    zhipu                                            │
│                                                     │
│  ↑↓ choose · enter confirm · esc cancel             │
└─────────────────────────────────────────────────────┘

选择后进入全屏 TUI 配置向导,分 5 页完成:

页面 内容 操作
Page 0 凭据配置 — Endpoint URL + API Key ↑↓ 切换输入框 · Enter 下一步
Page 1 Slot 映射 — Opus / Sonnet / Haiku / Custom 模型选择 ↑↓ 选槽位 · Enter 进入模型列表 · 打字过滤 · Enter 锁定
Page 2 1M 上下文 — 每槽位独立开关 Space 切换 · Enter 下一步
Page 3 Reasoning Effort — Default + low ~ ultracode ↑↓ 选择 · Enter 确认
Page 4 核对保存 — 确认配置并设为激活 ←→ 切换是/否 · Enter 保存

页面间通过 Tab / Shift+Tab 或底部按钮 [Next] / [Back] 导航。

Provider 配置管理
# 列出所有 provider
ccl ls
ccl ls -a             # 展开详情与完整模型池(默认显示扫描表)
ccl provider ls       # 完整语义入口,输出同 ccl ls

# 复制配置
ccl cp source target
ccl provider cp source target

# 重命名
ccl mv old-name new-name
ccl provider mv old-name new-name

# 删除
ccl rm name
ccl provider rm name

# 其他 provider 子命令
ccl provider set my-provider
ccl provider use my-provider
ccl provider map
ccl provider models
ccl provider env
ccl provider doctor
ccl provider preview
ccl env — 环境变量管理
# 列出所有环境变量
ccl env ls

# 设置/修改
ccl env KEY VALUE
ccl provider env KEY VALUE

# 重命名
ccl env mv OLD_KEY NEW_KEY
ccl provider env mv OLD_KEY NEW_KEY

# 删除
ccl env rm KEY
ccl provider env rm KEY
ccl use — 切换激活 Provider
ccl use provider-name
ccl lang — 切换显示语言
# 交互式选择
ccl lang

# 直接指定
ccl lang zh       # 中文
ccl lang en       # English

设置后立即生效并持久化到 ~/.ccl/config.yaml。优先级:CCL_LANG 环境变量 > config.yaml > 系统语言。

ccl doctor — 环境诊断
ccl doctor
ccl provider doctor

检查本地依赖、Endpoint 连通性、API 鉴权。并发测试所有配置模型,自动将可用模型排在配置前列,显示实时进度条。如果 Claude CLI 未安装,自动触发一键安装。

ccl models — 查看可用模型
# 查看已配置模型的可用性
ccl models

# 查看 Provider 全部模型
ccl models --all
ccl provider models --all

并发测试每个模型,显示 (可用)或 ✗ (unavailable)(不可用),带实时进度条。

ccl map — 快速设置 Slot 模型映射
# 交互式 TUI — 直接进入 Slot 映射页面
ccl map
ccl provider map

# 自动填充 — 自动检测可用模型并填入前 4 个槽位
ccl map auto
ccl map auto my-provider
ccl provider map auto

# 直接指定 — 通过 CLI 参数快速映射
ccl map --opus gpt-5.1 --sonnet gpt-5.1-codex-max
ccl map --opus gpt-5.1 --sonnet gpt-5.1-mini --haiku gpt-4o-mini
ccl map --custom gpt-5.1 my-provider
ccl provider map --custom gpt-5.1 my-provider

三种模式:交互式 TUI(直接跳转到 Slot 映射页面)、自动检测填充、CLI 参数直接映射。

ccl ls
ccl preview — 预览 Claude Code 注入配置
ccl preview
ccl provider preview

输出当前激活 Provider 会生成的 settings JSON,适合检查 ANTHROPIC_BASE_URL、认证变量、slot 模型和 effort 注入结果。

ccl update — 升级
ccl update

支持通过 npm / go install 一键升级。

ccl version — 查看版本
ccl version

显示当前二进制版本。Release 构建会从 tag 注入版本号。

ccl completion — Shell 补全脚本
ccl completion zsh
ccl completion bash
ccl completion fish
ccl completion powershell

由 Cobra 自动生成对应 shell 的补全脚本。

ccl — 启动 Claude Code
# 直接启动
ccl

# 透传参数
ccl resume
ccl --dangerously-skip-permissions
ccl claude --dangerously-skip-permissions

⚙️ 配置存储

所有配置统一存储在 ~/.ccl/config.yaml

active_provider: deepseek
lang: zh-CN
providers:
  deepseek:
    name: deepseek
    type: openai
    endpoint: https://api.deepseek.com
    apikey: sk-xxx
    model: deepseek-chat,deepseek-reasoner
    opusModel: deepseek-reasoner
    sonnetModel: deepseek-chat
    effortLevel: max
  sensenova:
    name: sensenova
    type: anthropic
    endpoint: https://token.sensenova.cn
    apikey: sk-xxx
    anthropicAuth: bearer

配置字段说明:

  • type: openaiccl 会启动本地代理,把 Claude Code 的 Anthropic Messages 请求转换为 OpenAI Chat Completions;model 是本地模型池,同时会作为本地代理的 /v1/models 返回给 Claude Code 做 gateway model discovery。
  • type: anthropic:Claude Code 直连该 endpoint,ccl 不在请求链路中做协议转换;model 只作为 ccl 的本地模型池,用于 TUI 列表、map auto、默认 slot 映射和可用性检测。Claude Code 访问 /v1/models 时看到的是 provider 自己返回的结果。
  • Anthropic 直连时 endpoint 建议使用裸域名,例如 https://token.sensenova.cnccl set 会自动去掉常见的 /v1/v1/messages/v1/models 后缀,避免 Claude Code 运行时拼成 /v1/v1/messages

✅ 本地验证清单

开发时可以用临时 HOME 验证配置,不会污染真实 ~/.ccl/config.yaml

go test ./...
go build -o /tmp/ccl-debug .

export CCL_TEST_HOME="$(mktemp -d)"
HOME="$CCL_TEST_HOME" /tmp/ccl-debug set sensenova
HOME="$CCL_TEST_HOME" /tmp/ccl-debug preview
HOME="$CCL_TEST_HOME" /tmp/ccl-debug doctor
HOME="$CCL_TEST_HOME" /tmp/ccl-debug models --all

Anthropic 兼容网关(例如 https://token.sensenova.cn)应确认:

  • endpoint 保存为裸域名,不带 /v1
  • Bearer 认证时 preview 里出现 ANTHROPIC_AUTH_TOKEN,不出现 ANTHROPIC_API_KEY
  • Effort 选择 Default 时,preview 里不出现 CLAUDE_CODE_EFFORT_LEVEL
  • preview 顶层不出现 model 字段,模型通过 slot/env 交给 Claude Code。

🔧 CI/CD

推送符合 v* 规范的 tag 触发自动编译发布:

git tag v1.2.0
git push origin v1.2.0

GitHub Actions 自动构建 6 个平台二进制并发布到 GitHub Releases + npm。


📁 目录结构

├── cmd/
│   ├── advanced_config.go     # TUI 配置向导(5 页表单 + 协议探测)
│   ├── provider.go            # Provider 子命令入口(cp/ls/mv/rm/set/map/models/env/doctor/preview)
│   ├── env.go                 # 环境变量管理(ls/rm/mv)
│   ├── set.go                 # set 命令入口 + RunProviderSet 共享逻辑
│   ├── select.go              # 通用 TUI 选择器组件
│   ├── doctor.go              # 环境及密钥连通性自检
│   ├── install.go             # Claude CLI 自动安装
│   ├── lang_cmd.go            # ccl lang 命令
│   ├── list.go                # ls 命令
│   ├── map.go                 # ccl map 命令(交互式/自动/CLI 三种映射模式)
│   ├── models.go              # 模型列表展示 + 可用性检测
│   ├── root.go                # ccl 主入口 + passthrough 模式
│   ├── preview.go             # 预览 settings JSON
│   ├── update.go              # 自动升级
│   ├── use.go                 # 切换激活 provider
│   └── version.go             # 版本信息
├── internal/
│   ├── claude/                # Claude Code 进程拉起 & 端口注入
│   ├── config/                # yaml 配置文件读写
│   ├── locale/                # 多语言支持(中文 / English)
│   ├── protocol/              # Anthropic ↔ OpenAI 协议转换
│   ├── provider/              # Provider & Config 数据结构
│   └── proxy/                 # 本地 TCP 代理服务
└── main.go

📄 开源许可

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
locale
Package locale provides cross-platform language detection and translation.
Package locale provides cross-platform language detection and translation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL