TiaraBasori/OpenCode2API
Wrap OpenCode into an OpenAI-compatible API and use models from OpenCode Zen for free unlimitedly. | 把 OpenCode 封装成 OpenAI 兼容 API,无限白嫖来自 OpenCode Zen 的模型。
OpenCode2API – 从 OpenCode 到 OpenAI 兼容 API 的桥梁
它是什么
- 一个开源的 Node.js 代理,位于本地运行的 OpenCode 服务器(OpenCode AI 模型的运行时)之前,并暴露与 OpenAI、Anthropic(Claude)和其他 LLM 提供商使用的相同 HTTP 端点。
- 通过这种方式,任何知道如何与 OpenAI
/v1/chat/completions(或 Anthropic/v1/messages)API 通信的客户端现在都可以使用免费的 OpenCode Zen 模型,而无需更改代码。
主要功能
- OpenAI 兼容端点 –
/v1/models、/v1/chat/completions、/v1/responses(自定义流式 + 推理端点)和/v1/messages(Anthropic 风格)。支持完整的服务器发送事件(SSE)流式传输。 - 推理控制 – 调用者可以通过
reasoning_effort或reasoning: {"effort":"high"}字段要求模型在推理上花费更多“精力”。 - 工具调用 – 代理将客户端的工具规范转发,并返回标准的
tool_calls/function_call对象,同时可选地限制可以使用哪些内置 OpenCode 工具。 - 会话延续 – Responses API 可以引用之前的响应 ID,使对话保持活跃最多 30 分钟。
- 可观测性 – 健康检查(
/health、/health/details)、Prometheus 指标(/metrics)以及可选的只读 Web 面板(/panel)。 - Docker 优先部署 – 单个
docker compose up -d即可同时启动代理和 OpenCode 后端。
如何开始
- Docker(推荐) – 克隆仓库,将
.env.example复制为.env,填写您的 OpenCode 服务器密码和密钥API_KEY,然后运行docker compose up -d。代理默认监听端口 10000。 - Node.js 开发 – 安装 OpenCode CLI,
npm install,将config.json.example复制为config.json,然后运行npm start。
典型用法
- 聊天补全 – 向
/v1/chat/completions发送正常的 OpenAI 风格 POST,模型名称如opencode/big-pickle。 - Responses API – 流式调用,也接受
reasoning对象以请求更高精力的处理。 - 工具调用 – 在请求中包含
tools数组;代理将返回tool_calls(或 Anthropic 风格的tool_use块),客户端可以执行并反馈。 - Anthropic 兼容性 –
/v1/messages端点适用于 Claude SDK,使用x-api-key头和 Anthropic 特定的 SSE 事件名称。
配置亮点
| 变量 | 用途 |
|---|---|
API_KEY |
所有代理请求所需的密钥令牌(Bearer 头)。 |
OPENCODE_API_KEYS |
可选,逗号分隔的 name:key 对列表,用于多用户设置。 |
OPENCODE_SERVER_PASSWORD |
底层 OpenCode 后端的密码。 |
OPENCODE_DISABLE_TOOLS |
当为 true 时,阻止所有内置 OpenCode 工具,除非明确允许。 |
OPENCODE_INTERNAL_ALLOWED_TOOLS |
当客户端未提供自己的 tools 时,允许使用的内部工具白名单。 |
OPENCODE_WEB_PANEL_ENABLED |
打开或关闭可选的 /panel 仪表板。 |
OPENCODE_PROXY_AUTO_CLEANUP_CONVERSATIONS |
在 TTL 过期后自动删除存储的会话状态。 |
谁可能使用这个
- 依赖 OpenAI API 但希望运行免费、本地托管的 OpenCode 模型的开发者。
- 需要为 OpenAI 风格和 Anthropic 风格客户端提供单一端点的团队。
- 任何希望在保持 OpenCode 后端隔离在代理后面的同时获得工具调用支持的人。
许可证 – MIT,因此您可以自由修改、嵌入或重新分发代理。
致谢 – 该项目基于早期的社区代理,如 dxxzst/opencode-to-openai 和 lucasliet/opencode-openai-proxy。
相关
- 项目
- 项目
- 项目
- 项目
- 项目