
opencode2api
把 Zen 接口转成 OpenAI/Anthropic 格式,多密钥自动轮转
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-11-10 · 当前星标 ★ 1434
使用教程
环境要求
- Go 1.24 或更高版本(从源码编译时)
- 已按需准备 Zen / Go 上游凭据或使用示例中的匿名免费通道
- 配置目录需可写(用于密码迁移、配置保存与模型缓存)
- 运行不需要 Node.js 运行时和数据库
安装与启动步骤
-
1克隆仓库
拉取源码并进入项目根目录,后续命令都在该目录执行。
git clone https://github.com/jasonxu114514/opencode2api.git cd opencode2api -
2复制示例配置
以 config.example.json 为模板生成 config.json,之后只改这个文件。
cp config.example.json config.json -
3修改关键配置
把 server_keys 换成自己的本地 Key,按需填 zen_keys / go_keys,并改掉 webui.password。示例使用 admin 用户名开启 WebUI。
-
4编译二进制
用 Go 1.24 以上版本编译,生成单文件可执行程序 opencode2api。
go build -o opencode2api ./cmd/opencode2api -
5启动服务
指定配置文件启动;示例监听 API 127.0.0.1:8080、WebUI 0.0.0.0:8081。
./opencode2api -config config.json -
6验证与取模型
带本地 Key 请求 /v1/models,返回可用模型列表即表示网关可用;也可访问 /healthz。
curl http://localhost:8080/v1/models -H "Authorization: Bearer sk-local-xxxxxxxx" -
7Windows 构建运行
Windows 下复制配置、编译 exe 并运行,参数与 Linux 相同。
Copy-Item config.example.json config.json go build -o opencode2api.exe ./cmd/opencode2api .\opencode2api.exe -config config.json
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
server_keys | 是 | 本地客户端访问网关所用的 API Key 列表,与上游凭据完全独立 | ["sk-local-xxxxxxxx"] |
zen_keys | 否 | Zen 上游密钥池,可留空使用示例的匿名免费通道 | ["zen-xxxxxxxx"] |
go_keys | 否 | Zen Go 上游密钥池,与 Zen 池分开管理与路由 | ["go-xxxxxxxx"] |
webui.password | 是 | WebUI 登录密码,务必替换示例默认值 | change-me-xxxx |
-listen | 否 | 覆盖 API 监听地址,默认读取配置文件 | 127.0.0.1:8080 |
-web-listen | 否 | 覆盖 WebUI 管理端口监听地址 | 0.0.0.0:8081 |
如何确认成功
请求 /v1/models 能返回模型列表,且 /healthz 无需认证即返回就绪状态即可。
常见问题
Q:服务启动后访问哪个地址?
A:API 在示例配置下为 127.0.0.1:8080,WebUI 在 8081,本机打开 http://localhost:8081 即可,用户名示例为 admin。
Q:客户端怎样带密钥调用?
A:使用 Authorization: Bearer YOUR_LOCAL_API_KEY 或 x-api-key 头,密钥取自 server_keys;健康检查 /healthz 不需要认证。
Q:MODEL_ID 从哪里获得?
A:先请求 GET /v1/models 获取当前配置下可路由的模型 ID,再填入 chat/completions、responses 或 messages 请求体的 model 字段。
Q:配置写错会怎样?
A:配置支持 // 与 /* */ 注释,但未知字段和非法值会被直接拒绝,热重载也会先校验再切换新请求。
Q:Docker 该怎么运行?
A:README 只给出镜像名 ghcr.io/jasonxu114514/opencode2api 与复制配置的命令,未提供完整运行命令,请以仓库文档为准,不要自造参数。
注意事项
- server_keys 只用于客户端认证,绝不会被当作上游凭据使用。
- 管理端口示例绑定 0.0.0.0:8081,通过网络访问时应限制来源并置于 HTTPS 反向代理之后。
- 配置目录必须可写,否则密码迁移、配置保存和模型缓存会失败。
- API 请求体上限为 32 MiB,流式响应可在请求体加 "stream": true 并用 curl -N 观察。
核心亮点
- 同时兼容 OpenAI 与 Anthropic 两套 API 格式,现有 SDK 和客户端改动小
- 支持密钥池与代理池,自动路由分配,提升并发与容错
- 内置 WebUI,配置和运行状态可视化,运维成本低
不足之处
- 仅适配 Zen 系列上游,后端选择范围有限
- 池化调度策略与故障转移细节缺少完整文档说明
- 社区规模较小,长期维护与问题响应待观察
适用场景
- 把只支持 OpenAI 协议的客户端接入 Zen 后端
- 多密钥轮转分摊配额,避免单密钥限流
- 团队内部统一 API 出口并集中管理凭据
替代项目
one-api、LiteLLM、new-api
上一篇:opencode2api
下一篇:Switchyard
同类项目推荐
last9-mcp-server
开源
让AI助手看懂系统监控,用自然语言排查故障
Last9 MCP Server
telnyx-code-examples
开源
拿来即用的 Telnyx 通信 API 示例,快速集成 AI 语音与短信。
Production-ready code examples for Telnyx AI Communications Infrastructure — Voice ···
n8n-nodes-qdrant
开源
在 n8n 里拖拽连接 Qdrant,快速实现向量检索与 RAG。
Official n8n node for interfacing with Qdrant
awesome-ml-experiment-management
开源
一张清单,搞定ML实验跟踪工具选型
A curated list of awesome open source tools and commercial products for ML Experimen···
Data-Engineering-Roadmap
开源
一张图理清数据工程学习路径,从入门到实战
Roadmap for Data Engineering
LLMKube
开源
用 kubectl 在混搭 GPU 集群上跑大模型推理
Kubernetes operator for self-hosted LLM inference across a heterogeneous GPU fleet: ···
turbo-fieldfare
开源
在 MacBook 上2GB内存跑26B大模型
Gemma 4 26B-A4B inference in ~2 GB of RAM on any M-series MacBook
LMeterX
开源
一键压测大模型与 HTTP 接口,AI 自动分析性能瓶颈
A general-purpose API load testing platform that supports LLM services、A2A/MCP serv···
agent-prism
开源
把 AI Agent 执行轨迹变成可嵌入的 React 可视化组件
React components for visualizing traces from AI agents