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 后端。

如何开始

  1. Docker(推荐) – 克隆仓库,将 .env.example 复制为 .env,填写您的 OpenCode 服务器密码和密钥 API_KEY,然后运行 docker compose up -d。代理默认监听端口 10000。
  2. 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。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト