本服务是一个代理程序,用于将 Anthropic 的 Claude API 格式无缝转换为兼容 OpenAI 的 API 格式。基于 Hono 框架和 Bun 运行时构建,可部署到 Cloudflare Workers、Docker 或作为独立 CLI 工具使用。
# 全局安装
npm install -g @kiyo-e/claude-code-proxy
# 默认端口启动(3000)
claude-code-proxy
# 或指定端口
claude-code-proxy --port 8080
无需安装即可运行:
# 使用 npx 默认端口(3000)
npx @kiyo-e/claude-code-proxy
# 使用 bunx 指定端口
bunx @kiyo-e/claude-code-proxy --port 8080
# 设置代理地址(使用你启动代理时的端口)
export ANTHROPIC_BASE_URL=http://localhost:3000
# 使用 claude 命令
claude "帮我 review 这段代码"
# 拉取镜像
docker pull kukuqi/claude-code-proxy:ts
# GitHub Models(默认)
docker run -d -p 3000:3000 -e CLAUDE_CODE_PROXY_API_KEY=你的_github_token kukuqi/claude-code-proxy:ts
# OpenRouter
docker run -d -p 3000:3000 \
-e CLAUDE_CODE_PROXY_API_KEY=你的_openrouter_key \
-e ANTHROPIC_PROXY_BASE_URL=https://openrouter.ai/api/v1 \
-e REASONING_MODEL=z-ai/glm-4.5-air:free \
-e COMPLETION_MODEL=z-ai/glm-4.5-air:free \
-e REASONING_EFFORT=high \
kukuqi/claude-code-proxy:ts
# 与 Claude Code 一起使用
ANTHROPIC_BASE_URL=http://localhost:3000 claude "帮我 review 这段代码"
# 创建 .env 文件
cat > .env << EOF
CLAUDE_CODE_PROXY_API_KEY=your api key
ANTHROPIC_PROXY_BASE_URL=https://open.bigmodel.cn/api/v1
REASONING_MODEL=glm-4.5
COMPLETION_MODEL=glm-4.5
REASONING_MAX_TOKENS=4096
COMPLETION_MAX_TOKENS=2048
REASONING_EFFORT=high
DEBUG=true
PORT=3000
EOF
# 带环境文件运行
docker run -d -p 3000:3000 --name zhipu --env-file .env kukuqi/claude-code-proxy:ts
# 查看运行状态
docker logs -f --tail 100 zhipu
http://localhost:3000
{
"status": "ok",
"message": "Claude Code Proxy is running",
"config": {
"ANTHROPIC_PROXY_BASE_URL": "https://free.v36.cm/v1",
"REASONING_MODEL": "gpt-4o-mini",
"COMPLETION_MODEL": "gpt-4o-mini",
"REASONING_MAX_TOKENS": "4096",
"COMPLETION_MAX_TOKENS": "2048",
"REASONING_EFFORT": "high"
}
}
# Claude code通用接口格式
http://localhost:3000/v1/messages
# 部署到 Cloudflare Workers
bun run deploy
# 在 Workers 控制面板配置环境变量
# 或通过 wrangler CLI:
npx wrangler secret put CLAUDE_CODE_PROXY_API_KEY
npx wrangler secret put ANTHROPIC_PROXY_BASE_URL
部署后,你的代理将可通过 https://你的-worker-名称.你的子域名.workers.dev 访问。
# 将部署的 Worker URL 设为 base URL
export ANTHROPIC_BASE_URL=https://你的-worker-名称.你的子域名.workers.dev
# 正常使用 Claude Code
claude "帮我 review 这段代码"
claude "解释这个函数并给出改进建议"
git clone https://github.com/kiyo-e/claude-code-proxy
cd claude-code-proxy
bun install
bun run deploy
# GitHub Models(推荐)
npx wrangler secret put CLAUDE_CODE_PROXY_API_KEY
# 输入你的 GitHub Personal Access Token
# OpenRouter
npx wrangler secret put CLAUDE_CODE_PROXY_API_KEY
# 输入你的 OpenRouter API Key
npx wrangler secret put ANTHROPIC_PROXY_BASE_URL
# 输入:https://openrouter.ai/api/v1
npx wrangler secret put REASONING_MODEL
# 输入:z-ai/glm-4.5-air:free
npx wrangler secret put COMPLETION_MODEL
# 输入:z-ai/glm-4.5-air:free
curl https://你的-worker-名称.你的子域名.workers.dev
# 如未安装 Claude Code,请先安装
npm install -g @anthropics/claude-code
# 设置代理 URL
export ANTHROPIC_BASE_URL=https://你的-worker-名称.你的子域名.workers.dev
# 使用 Claude Code
claude "Review 这段 TypeScript 代码并提出改进建议"
# 安装依赖
bun install
# 热重载开发服务器(端口 3000)
bun run start
# Cloudflare Workers 开发
bun run dev
# 构建 CLI 包
bun run build
# 测试 CLI
./bin --help
# 构建并发布 npm 包
bun run build
npm publish
CLAUDE_CODE_PROXY_API_KEY - 上游 API 的 Bearer TokenANTHROPIC_PROXY_BASE_URL - 上游 API URL(默认:https://models.github.ai/inference)REASONING_MODEL - 推理任务模型(默认:openai/gpt-4.1)COMPLETION_MODEL - 补全任务模型(默认:openai/gpt-4.1)REASONING_MAX_TOKENS - 推理模型最大 token 数(可选)COMPLETION_MAX_TOKENS - 补全模型最大 token 数(可选)REASONING_EFFORT - 推理模型推理努力级别(可选,如:"low"、"medium"、"high")DEBUG - 启用调试日志(默认:false)PORT - CLI 模式服务器端口(默认:3000)通过 Workers 控制面板或 wrangler CLI 设置环境变量:
# 设置密钥(敏感数据推荐)
npx wrangler secret put CLAUDE_CODE_PROXY_API_KEY
npx wrangler secret put ANTHROPIC_PROXY_BASE_URL
# 设置普通环境变量
npx wrangler env put REASONING_MODEL "z-ai/glm-4.5-air:free"
npx wrangler env put COMPLETION_MODEL "z-ai/glm-4.5-air:free"
npx wrangler env put REASONING_EFFORT "high"
npx wrangler env put DEBUG "false"
或通过 wrangler.toml 配置:
[env.production.vars]
REASONING_MODEL = "z-ai/glm-4.5-air:free"
COMPLETION_MODEL = "z-ai/glm-4.5-air:free"
REASONING_EFFORT = "high"
DEBUG = "false"
claude-code-proxy [选项]
选项:
-v, --version 显示版本号
-h, --help 显示帮助信息
-p, --port PORT 设置服务器端口(默认:3000)
在 issue 与 PR 中启用 @claude 提及:
name: Claude PR 助手
on:
issue_comment:
types: [created]
pull_request:
types: [opened, synchronize]
jobs:
claude-code-action:
if: contains(github.event.comment.body, '@claude') || github.event_name == 'pull_request'
runs-on: ubuntu-latest
services:
claude-code-proxy:
image: ghcr.io/kiyo-e/claude-code-proxy:latest
ports:
- 3000:3000
env:
CLAUDE_CODE_PROXY_API_KEY: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: 运行 Claude PR Action
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.GITHUB_TOKEN }}
env:
ANTHROPIC_BASE_URL: http://localhost:3000
部署代理到 Cloudflare Workers 后:
# 将 Worker URL 设为 API base
export ANTHROPIC_BASE_URL=https://claude-proxy.你的子域名.workers.dev
# 使用 Claude Code 完成各种任务
claude "Review 这个 JavaScript 函数潜在的 bug"
claude "为这个 API 响应生成 TypeScript 接口"
claude "优化这个 React 组件以获得更好性能"
claude "解释这个复杂正则表达式的作用"
# 与特定文件一起使用
claude "检查这个 package.json 的安全漏洞" package.json
claude "为这个 README 提出改进建议" README.md
也可直接通过 HTTP 请求使用代理:
# 健康检查
curl https://claude-proxy.你的子域名.workers.dev
# 发送消息(示例)
curl -X POST https://claude-proxy.你的子域名.workers.dev/v1/messages \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-sonnet-20240229",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "你好,Claude!"
}
]
}'
GET / - 健康检查与配置状态POST /v1/messages - 兼容 OpenAI 的 Claude API 代理端点代理负责以下功能:
tool_use/tool_result 转换为 tool_calls/tool 角色format: 'uri' 约束以保证兼容性=============================================================================================================================================
一个代理服务器,使 Claude Code 能够与兼容 OpenAI 的 API 提供商配合使用。将 Claude API 请求转换为 OpenAI API 调用,让你可以通过 Claude Code CLI 使用各种 LLM 提供商。
/v1/messages 端点支持# 使用 UV(推荐)
uv sync
# 或者使用 pip
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 并添加你的 API 配置
# 注意:环境变量会自动从 .env 文件加载
# 直接运行
python start_proxy.py
# 或者使用 UV
uv run claude-code-proxy
# 或者使用 docker compose
docker compose up -d
# 如果代理中未设置 ANTHROPIC_API_KEY:
ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY="any-value" claude
# 如果代理中已设置 ANTHROPIC_API_KEY:
ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_API_KEY="exact-matching-key" claude
应用程序会自动从项目根目录下的 .env 文件加载环境变量,使用 python-dotenv。你也可以直接在 shell 中设置环境变量。
必需:
OPENAI_API_KEY - 目标提供商的 API 密钥安全性:
ANTHROPIC_API_KEY - 预期的 Anthropic API 密钥,用于客户端验证
模型配置:
BIG_MODEL - 用于 Claude opus 请求的模型(默认:gpt-4o)MIDDLE_MODEL - 用于 Claude opus 请求的模型(默认:gpt-4o)SMALL_MODEL - 用于 Claude haiku 请求的模型(默认:gpt-4o-mini)API 配置:
OPENAI_BASE_URL - API 基础 URL(默认:https://api.openai.com/v1)服务器设置:
HOST - 服务器主机(默认:0.0.0.0)PORT - 服务器端口(默认:8082)LOG_LEVEL - 日志级别(默认:WARNING)性能:
MAX_TOKENS_LIMIT - 令牌限制(默认:4096)REQUEST_TIMEOUT - 请求超时时间(秒)(默认:90)代理将 Claude 模型请求映射到你配置的模型:
| Claude 请求 | 映射到 | 环境变量 |
|---|---|---|
| 包含 "haiku" 的模型 | SMALL_MODEL | 默认:gpt-4o-mini |
| 包含 "sonnet" 的模型 | MIDDLE_MODEL | 默认:BIG_MODEL |
| 包含 "opus" 的模型 | BIG_MODEL | 默认:gpt-4o |
OPENAI_API_KEY="sk-your-openai-key"
OPENAI_BASE_URL="https://api.openai.com/v1"
BIG_MODEL="gpt-4o"
MIDDLE_MODEL="gpt-4o"
SMALL_MODEL="gpt-4o-mini"
OPENAI_API_KEY="your-azure-key"
OPENAI_BASE_URL="https://your-resource.openai.azure.com/openai/deployments/your-deployment"
BIG_MODEL="gpt-4"
MIDDLE_MODEL="gpt-4"
SMALL_MODEL="gpt-35-turbo"
OPENAI_API_KEY="dummy-key" # 必需,但可以是虚拟值
OPENAI_BASE_URL="http://localhost:11434/v1"
BIG_MODEL="llama3.1:70b"
MIDDLE_MODEL="llama3.1:70b"
SMALL_MODEL="llama3.1:8b"
任何兼容 OpenAI 的 API 都可以通过设置适当的 OPENAI_BASE_URL 来使用。
import httpx
response = httpx.post(
"http://localhost:8082/v1/messages",
json={
"model": "claude-3-5-sonnet-20241022", # 映射到 MIDDLE_MODEL
"max_tokens": 100,
"messages": [
{"role": "user", "content": "你好!"}
]
}
)
该代理设计为与 Claude Code CLI 无缝配合:
# 启动代理
python start_proxy.py
# 使用代理与 Claude Code
ANTHROPIC_BASE_URL=http://localhost:8082 claude
# 或者永久设置
export ANTHROPIC_BASE_URL=http://localhost:8082
claude
测试代理功能:
# 运行综合测试
python src/test_claude_to_openai.py
# 安装依赖项
uv sync
# 运行服务器
uv run claude-code-proxy
# 格式化代码
uv run black src/
uv run isort src/
# 类型检查
uv run mypy src/
claude-code-proxy/
├── src/
│ ├── main.py # 主服务器
│ ├── test_claude_to_openai.py # 测试
│ └── [其他模块...]
├── start_proxy.py # 启动脚本
├── .env.example # 配置模板
└── README.md # 本文件
Content type
Image
Digest
sha256:2203cf6f3…
Size
205.4 MB
Last updated
about 1 year ago
docker pull kukuqi/claude-code-proxy:py