Any LLM in Claude Code 是一个开源代理工具,托管于 GitHub,由 chachako 开发,fork 自 CogAgent/claude-code-proxy。它允许用户在 Claude Code 中无需 Pro 订阅即可使用 LiteLLM 支持的任何语言模型(如 OpenAI、Vertex AI、xAI 的模型)。通过简单的环境变量配置,用户可为复杂任务(sonnet)和辅助任务(haiku)分配不同模型,优化性能和成本。项目基于 Python 和 LiteLLM,使用 uv 管理依赖,安装简便,适合 AI 开发者、Claude Code 用户和开源爱好者。文档清晰,社区活跃,提供详细的配置和调试指南。
功能列表
- 支持在 Claude Code 中使用 LiteLLM 兼容的任何语言模型(如 OpenAI、Vertex AI、xAI)。
- 提供大模型(sonnet)和小模型(haiku)的独立路由配置,优化任务分配。
- 支持自定义 API 密钥和端点,兼容多种模型提供商。
- 使用 LiteLLM 自动转换 API 请求和响应,确保与 Anthropic API 格式兼容。
- 集成 uv 工具,自动管理项目依赖,简化部署流程。
- 提供详细日志功能,记录请求和响应内容,便于调试和提示工程分析。
- 支持本地模型服务器,允许配置自定义 API 端点。
- 开源项目,支持用户修改代码或贡献功能。
使用帮助
安装流程
使用 Any LLM in Claude Code 需要完成以下安装和配置步骤,基于官方文档,确保清晰可操作:
- 克隆项目
在终端运行以下命令,将项目克隆到本地:git clone https://github.com/chachako/freecc.git cd freecc
2. **安装 uv 工具**
项目使用 uv 管理 Python 依赖。若未安装 uv,运行以下命令:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
uv 会根据 pyproject.toml
自动安装依赖,无需手动操作。
3. 配置环境变量
项目通过 .env
文件配置模型路由和 API 密钥。复制示例文件:
cp .env.example .env
使用文本编辑器(如 nano)打开 .env
,配置以下变量:
- 模型路由配置:
BIG_MODEL_PROVIDER
:大模型提供商(如openai
、vertex
、xai
)。BIG_MODEL_NAME
:大模型名称(如gpt-4.1
、gemini-1.5-pro
)。BIG_MODEL_API_KEY
:大模型的 API 密钥。BIG_MODEL_API_BASE
:(可选)大模型的自定义 API 端点。SMALL_MODEL_PROVIDER
:小模型提供商。SMALL_MODEL_NAME
:小模型名称(如gpt-4o-mini
)。SMALL_MODEL_API_KEY
:小模型的 API 密钥。SMALL_MODEL_API_BASE
:(可选)小模型的自定义 API 端点。
- 全局提供商配置(作为后备或直接请求):
OPENAI_API_KEY
、XAI_API_KEY
、GEMINI_API_KEY
、ANTHROPIC_API_KEY
:各提供商的 API 密钥。OPENAI_API_BASE
、XAI_API_BASE
等:自定义 API 端点。
- Vertex AI 特定配置:
VERTEX_PROJECT_ID
:Google Cloud 项目 ID。VERTEX_LOCATION
:Vertex AI 区域(如us-central1
)。- 配置 Google 应用默认凭据(ADC):
gcloud auth application-default login
或设置环境变量
GOOGLE_APPLICATION_CREDENTIALS
指向凭据文件。
- 日志配置:
FILE_LOG_LEVEL
:日志文件(claude-proxy.log
)级别(默认DEBUG
)。CONSOLE_LOG_LEVEL
:控制台日志级别(默认INFO
)。LOG_REQUEST_BODY
:设为true
记录请求内容,便于分析提示工程。LOG_RESPONSE_BODY
:设为true
记录模型响应内容。
示例 .env
配置:
BIG_MODEL_PROVIDER="vertex"
BIG_MODEL_NAME="gemini-1.5-pro-preview-0514"
BIG_MODEL_API_KEY="your-vertex-key"
VERTEX_PROJECT_ID="your-gcp-project-id"
VERTEX_LOCATION="us-central1"
SMALL_MODEL_PROVIDER="openai"
SMALL_MODEL_NAME="gpt-4o-mini"
SMALL_MODEL_API_KEY="sk-xxx"
SMALL_MODEL_API_BASE="https://xyz.llm.com/v1"
FILE_LOG_LEVEL="DEBUG"
LOG_REQUEST_BODY="true"
- 运行服务器
配置完成后,启动代理服务器:uv run uvicorn server:app --host 127.0.0.1 --port 8082 --reload
参数
--reload
可选,用于开发时自动重载。 - 连接 Claude Code
安装 Claude Code(若未安装):npm install -g @anthropic-ai/claude-code
设置环境变量,连接代理:
export ANTHROPIC_BASE_URL=http://localhost:8082 && claude
功能操作
Any LLM in Claude Code 的核心是通过代理将 Claude Code 的请求路由到用户配置的模型。以下为详细操作说明:
- 模型路由
项目支持为 Claude Code 的sonnet
(主任务,如复杂代码生成)和haiku
(辅助任务,如快速语法检查)配置不同模型。例如:- 配置
BIG_MODEL_PROVIDER="vertex"
和BIG_MODEL_NAME="gemini-1.5-pro"
,将sonnet
路由到高性能模型。 - 配置
SMALL_MODEL_PROVIDER="openai"
和SMALL_MODEL_NAME="gpt-4o-mini"
,将haiku
路由到轻量模型,降低成本。
用户可通过.env
文件灵活切换模型和提供商。
- 配置
- API 请求转换
项目通过 LiteLLM 实现 API 格式转换,流程如下:- Claude Code 发送 Anthropic 格式的请求(如调用
claude-3-sonnet-20240229
)。 - 代理根据
.env
配置,将请求转换为目标模型格式(如 OpenAI 的gpt-4.1
)。 - 注入配置的 API 密钥和端点,发送请求。
- 将模型响应转换回 Anthropic 格式,返回给 Claude Code。
用户无需手动干预,转换过程完全自动化。
- Claude Code 发送 Anthropic 格式的请求(如调用
- 日志与调试
项目提供详细日志功能:- 设置
LOG_REQUEST_BODY="true"
,记录 Claude Code 的请求内容,便于分析提示工程。 - 设置
LOG_RESPONSE_BODY="true"
,记录模型响应,检查输出是否正确。 - 日志保存在
claude-proxy.log
,通过FILE_LOG_LEVEL
和CONSOLE_LOG_LEVEL
控制日志级别。
若遇到问题,检查日志或验证.env
中的密钥和端点。
- 设置
- 本地模型支持
支持本地模型服务器。例如,配置SMALL_MODEL_API_BASE="http://localhost:8000/v1"
,可将haiku
路由到本地模型(如 LM Studio)。本地模型无需 API 密钥,适合隐私敏感场景。
注意事项
- 确保网络连接稳定,API 密钥有效。
- Vertex AI 用户需正确配置
VERTEX_PROJECT_ID
、VERTEX_LOCATION
和 ADC。 - 定期访问 GitHub 项目页面(https://github.com/chachako/freecc),获取更新或社区支持。
- 日志可能包含敏感信息,调试后建议关闭
LOG_REQUEST_BODY
和LOG_RESPONSE_BODY
。
应用场景
- 提升 Claude Code 灵活性
用户无需 Claude Pro 订阅即可使用高性能模型(如 Gemini 1.5 Pro)或低成本模型(如 gpt-4o-mini),扩展上下文窗口或降低成本。 - 模型性能对比
开发者可通过代理快速切换模型(如 OpenAI、Vertex AI),测试不同模型在 Claude Code 中的表现,优化开发流程。 - 本地模型部署
企业或研究者可配置本地模型服务器,保护数据隐私,适合本地化 AI 应用场景。 - 开源社区参与
作为开源项目,开发者可通过 GitHub 提交代码,优化功能或修复问题,适合学习 Python 和 AI 开发的初学者。
QA
- Any LLM in Claude Code 支持哪些模型?
支持 LiteLLM 兼容的所有模型,包括 OpenAI、Vertex AI、xAI、Anthropic 等,通过.env
配置模型和提供商。 - 如何处理配置错误?
查看claude-proxy.log
日志,检查 API 密钥、端点和模型名称。确保FILE_LOG_LEVEL="DEBUG"
获取详细日志。 - 需要 Claude Pro 订阅吗?
不需要。项目通过代理支持免费用户使用其他模型,绕过订阅限制。 - 可以部署在远程服务器吗?
可以。将--host
设置为0.0.0.0
,确保端口(如8082
)开放。 - 如何贡献代码?
访问 https://github.com/chachako/freecc,提交 Pull Request,建议先阅读贡献指南。