{"id":30827583,"url":"https://github.com/fullstackplayer/claude-code-launcher","last_synced_at":"2025-09-06T13:34:06.846Z","repository":{"id":312129852,"uuid":"1046401553","full_name":"FullStackPlayer/claude-code-launcher","owner":"FullStackPlayer","description":"使用国产优秀编程大模型驱动 Claude Code，省去手动配置环境变量，一个命令启动即用","archived":false,"fork":false,"pushed_at":"2025-08-28T17:36:58.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-29T00:00:04.245Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FullStackPlayer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-28T16:24:10.000Z","updated_at":"2025-08-28T17:37:01.000Z","dependencies_parsed_at":"2025-08-29T00:00:12.064Z","dependency_job_id":"9a04d7f0-c330-4e3a-8b9b-0d26b3f93327","html_url":"https://github.com/FullStackPlayer/claude-code-launcher","commit_stats":null,"previous_names":["fullstackplayer/claude-code-launcher"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/FullStackPlayer/claude-code-launcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullStackPlayer%2Fclaude-code-launcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullStackPlayer%2Fclaude-code-launcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullStackPlayer%2Fclaude-code-launcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullStackPlayer%2Fclaude-code-launcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FullStackPlayer","download_url":"https://codeload.github.com/FullStackPlayer/claude-code-launcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FullStackPlayer%2Fclaude-code-launcher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273912666,"owners_count":25189969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-06T13:34:00.926Z","updated_at":"2025-09-06T13:34:06.829Z","avatar_url":"https://github.com/FullStackPlayer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Launcher (ccl)\n\nClaude Code 模型启动器 - 让您轻松切换使用不同的 AI 模型作为 Claude Code 的后端。\n\n## 注意\n\n目前通过 `npm install -g ccl-cli-installer` 即可快速将 `ccl` 命令安装到你的系统，方便随处使用。\n\n## 前言\n\n在 Coding Agent 领域，目前 Claude Code 还是当之无愧的王者，谁能想到一个 cli 工具，竟然把之前的领头羊 Cursor 干得半死不活（还不是蓄意针对的前提下）。\n\n可惜，Claude Code 虽好，却有两个无法忽视的缺憾（对中国开发者来说）：\n\n1. 模型锁定，官方只支持 Anthropic 家的 Claude 系列模型（好用真好用，但是也真不便宜）；\n2. Anthropic 对中国开发者非常不友好，具体情况我就不说了，懂的都懂；\n\n我当然知道 `claude-code-router` 项目，它很棒，几乎可以代理和桥接任何模型，甚至可以高度定制模型路由器，给开发者带来了更多选择，本人也曾受益于这个项目，非常感谢作者。\n\n然而，现在环境正在起变化，进入 2025 年下半年，国产开源编程大模型先后爆发，智谱 GLM-4.5、Kimi K2、DeepSeek V3.1、通义千问 Qwen3-Coder，这几个优秀代表，已经可以挑战业界公认的最佳编程模型 Claude 系列，虽然暂时还没有完成超越，但是成为平替已经毫无问题。\n\n更重要的是，截至目前[2025.08]，除了 Qwen3-Coder 模型，前三家都直接提供了 Anthropic 兼容 api 接口（如果还有更多家这样做的请让我知道），这也就意味着这几家供应商官方下场支持自家模型成为 Claude Code 的后端模型，实测结果也非常优秀，且价格便宜。\n\n[更新] 2025.08.29 ：感谢小伙伴提醒，阿里云百炼官方部署的 qwen3-coder 模型也支持了 Anthropic 的 api 协议（不过据说 qwen3-coder 比较费 token，要小心账单就是了），ccl 最新版已经默认自带支持，之前下载了 v0.9.0 版本的兄弟无需版本升级即可使用，只要在 `ccl.config.json` 文件中增加一个 provider 节点，保存然后重启 ccl 即可：\n\n```json\n{\n  \"providers\": {\n    \"qwen3-coder\": {\n      \"base_url\": \"https://dashscope.aliyuncs.com/api/v2/apps/claude-code-proxy\",\n      \"auth_token\": \"YOUR_BAILIAN_API_KEY\"\n    },\n    ... // 原代码\n  }\n}\n```\n\n在上述背景下，我选择直接给 Claude Code 接入这几家的官方 api 使用，付费尽管微薄，却也是对这些优秀开源企业的认可和支持。并且从逻辑上来讲，官方出手对 Claude Code 进行适配，效果应该会好于 claude-code-router 逆向再适配的方式，还可以获得官方同步的 BUG 修复和更新。\n\n然而我又开始面临另一个烦恼，有时候你需要同时启动几个不同后端模型的 Claude Code 进程，或者尝试切换使用不同模型的进程来解决棘手的问题，说难不难，用命令行设定环境变量而已，但也真的繁琐，不丝滑，作为一个懒人，很难接受这种类似梗阻的体验。\n\n于是就有了这个项目，下面统一简称 ccl。\n\n## 鸣谢\n\n阿里出品的 Qoder 帮我完成了这个项目的绝大多数代码，为我节省了很多时间，表现堪称经验，值得推荐给大家！\n\n## 功能特点\n\n- 🚀 支持多个国内优秀的 AI 模型（目前是智谱 GLM 4.5、DeepSeek V3.1、Kimi K2、Qwen3 Coder）\n- 🖥️ 美观的交互式 TUI 模型选择界面\n- 🎯 命令行参数快速直达\n- ⚙️ 灵活的配置文件管理\n- 🔄 跨平台支持（Windows, macOS, Linux）\n- 📦 单文件可执行程序\n- 📚 支持快捷单次请求输出（一行命令让 Claude Code 使用指定模型解答单个问题并输出结果）\n- 🛠️ 设定工作路径（可以更加灵活的充当 agent tool 角色）\n\n## 安装要求\n\n在使用 ccl 之前，请确保电脑已经安装了 Nodejs，然后使用 npm 全局安装 Claude Code：\n\n```bash\nnpm install -g @anthropic-ai/claude-code\n```\n\n**注意**：安装的包名是 `@anthropic-ai/claude-code`，但启动命令是 `claude`。\n\n万一你还没有安装 claude 就启动了 ccl 也没事儿，它会尝试为你自动安装。\n\n## 配置文件\n\nccl 首次执行会在可执行文件同级目录（ts 脚本模式则是入口 ts 文件的同级目录）下创建一个 `ccl.config.json` 配置文件，内容如下：\n\n```json\n{\n  \"providers\": {\n    \"glm-4.5\": {\n      \"base_url\": \"https://open.bigmodel.cn/api/anthropic\",\n      \"auth_token\": \"YOUR_GLM_API_KEY\"\n    },\n    \"deepseek-3.1\": {\n      \"base_url\": \"https://api.deepseek.com/anthropic\",\n      \"auth_token\": \"YOUR_DEEPSEEK_API_KEY\",\n      \"model\": \"deepseek-chat\",\n      \"small_fast_model\": \"deepseek-chat\"\n    },\n    \"kimi-k2\": {\n      \"base_url\": \"https://api.moonshot.cn/anthropic\",\n      \"auth_token\": \"YOUR_KIMI_API_KEY\",\n      \"model\": \"kimi-k2-turbo-preview\",\n      \"small_fast_model\": \"kimi-k2-turbo-preview\"\n    },\n    \"qwen3-coder\": {\n      \"base_url\": \"https://dashscope.aliyuncs.com/api/v2/apps/claude-code-proxy\",\n      \"auth_token\": \"YOUR_BAILIAN_API_KEY\"\n    }\n  },\n  \"additionalOTQP\": \"\"\n}\n```\n\n配置文件非常一目了然，你只需要将你要用的 provider 下 auth_token 参数替换成自己从服务商那里获取的 API Key 即可，理论上还可以自由添加新的 provider，只要它支持 Anthropic 接口协议即可。\n\n**### **additionalOTQP 配置**\n\n`additionalOTQP`（一次性请求提示词）是一个可选的全局配置项，允许你定义用户自定义的提示词，它会在每个单次请求时自动追加到预设的提示词后面。这个功能特别适用于为特定模型单次请求补充统一要求的场景，例如：\n\n- 指定回复语言（如\"请使用中文回复\"）\n- 添加特定格式要求（如\"请在回复中包含'Claude Code'字样\"）\n- 设置特定的行为规范（如\"请不要使用代码块格式\"）\n\n示例配置：\n```json\n{\n  \"additionalOTQP\": \"请使用中文回复，并在回复中包含'Claude Code'字样。\",\n  // ... 其他配置\n}\n```\n\n## 使用方法\n\n### Bun 支持下的 ts 脚本模式（跨平台通用）\n\n确保你的电脑已经安装了 bun 运行时，克隆当前仓库到本地，进入目录后执行：\n\n```bash\n# 安装依赖包\nbun install\n\n# 交互式选择 provider\nbun run start\n\n# 使用指定 provider 直接运行，无需选择\nbun run start --provider=deepseek-3.1\n```\n\n### 使用可执行文件\n\n#### 获得\n\n1. 你可以到 release 页面下载可执行文件。\n\n2. 也可以自己构建可执行文件，克隆仓库到本地后，在项目目录下执行：\n\n```bash\n# 安装依赖\nbun install\n\n# 构建所有平台\nbun run build:all\n\n# 构建特定平台\nbun run build:linux:x64\nbun run build:darwin:arm64\nbun run build:darwin:x64\nbun run build:win32:x64\n```\n\n#### 运行\n\n**macOS \u0026 linux**\n\n```\n# 交互式选择\n./dist/darwin/arm64/ccl\n\n# 指定 provider\n./dist/darwin/arm64/ccl --provider=glm-4.5\n```\n\n为了方便随时使用，推荐你将 ccl 安装成为当前系统命令，我提供了一个专门的包来实现它，请执行 `npm install -g ccl-cli-installer` 进行安装。\n\n**windows**\n\nwindows 用户可以通过两种方式：\n\n1. 下载后解压出 `ccl.exe` 直接双击运行即可；\n2. 在 PowerShell 中执行 `.\\ccl.exe` 命令，当然也可以加上 `--provider=xxx` 参数（参见配置文件中的 provider 名称）直接以指定模型启动；\n\n### 命令行参数\n\nccl 支持以下命令行参数：\n\n```bash\n# 指令类参数\n--provider=\u003cprovider\u003e  指定要使用的 provider name，参见配置文件 providers 节点\n--prompt=\u003cprompt\u003e      指定要发送给 Claude Code 的提示词\n--output=\u003cfile\u003e        指定输出文件名或路径名，单次请求的响应将被保存到该文件中\n--pwd=\u003cpath\u003e           指定工作目录路径\n\n# 响应类参数\n--config-file, -cf     返回配置文件路径\n--version, -v          显示版本号\n--help, -h             显示帮助信息\n```\n\n当使用 `--output` 参数时，ccl 会自动为文件名添加时间戳后缀，以防止文件同名覆盖。如果输出路径包含目录部分，ccl 会自动检查目录是否存在，不存在则创建目录。\n\n示例：\n```bash\n# 使用指定 provider 并将输出保存到文件\n./ccl --provider=glm-4.5 --prompt=\"写一个Hello World程序\" --output=hello.js\n\n# 输出到带目录的路径\n./ccl --provider=glm-4.5 --prompt=\"写一个Hello World程序\" --output=output/hello.js\n\n# 改变工作目录\n./ccl --pwd=\"../\"\n\n# 显示版本号\n./ccl --version\n\n# 显示帮助信息\n./ccl --help\n```\n\n## 支持的模型\n\n| Provider     | 描述          | 相关文档                                                         |\n| ------------ | ------------- | ---------------------------------------------------------------- |\n| glm-4.5      | 智谱 GLM-4.5  | [文档](https://docs.bigmodel.cn/cn/guide/develop/claude)         |\n| deepseek-3.1 | DeepSeek V3.1 | [文档](https://api-docs.deepseek.com/zh-cn/guides/anthropic_api) |\n| kimi-k2      | Kimi K2       | [文档](https://platform.moonshot.cn/docs/guide/agent-support)    |\n| qwen3-coder  | 阿里云百炼    | [文档](https://bailian.console.aliyun.com/?spm=5176.30029779.nav-v2-dropdown-menu-0.d_main_0_0_0.1fed71bfMnRdoo\u0026tab=doc\u0026scm=20140722.M_10863655._.V_1#/doc/?type=model\u0026url=2949529)    |\n\n如有同学发现新的国产模型也官方支持了 Anthropic API，欢迎告诉我。\n\n## 开发\n\n```\n# 安装依赖\nbun install\n\n# 运行开发模式\nbun run dev\n\n# 运行测试\nbun test\n\n# 启动应用\nbun run start\n```\n\n## 项目结构\n\n```\nclaude-code-launcher/\n├── .gitignore            # Git 忽略文件配置\n├── LICENSE               # 开源许可证\n├── README.md             # 项目说明文档\n├── Releases.md           # 发布日志\n├── Requirements.md       # 项目需求文档\n├── bun.lock              # Bun 依赖锁文件\n├── package.json          # 项目配置文件\n├── tsconfig.json         # TypeScript 配置文件\n├── releases/\n│   ├── release.sh        # release 发布脚本\n├── src/\n│   ├── index.ts          # 主程序入口\n│   ├── types.ts          # 类型定义\n│   ├── utils.ts          # 工具函数\n│   └── types/\n│       └── prompts.d.ts  # prompts 库类型定义\n├── test/\n│   ├── bun-spawn.test.ts # Bun.spawn 测试\n│   ├── command.test.ts   # 命令行参数测试\n│   ├── launch.test.ts    # 启动功能测试\n│   ├── tty-state.test.ts # TTY 状态测试\n│   └── utils.test.ts     # 工具函数测试\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstackplayer%2Fclaude-code-launcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffullstackplayer%2Fclaude-code-launcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffullstackplayer%2Fclaude-code-launcher/lists"}