[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fj113my7qa5t2":3},{"code":4,"message":5,"data":6,"timestamp":26},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":22,"homepage":23,"updated_at":24,"history":25},"jasonxu114514\u002Fopencode2api",9,"A Go-based OpenCode Zen \u002F Zen Go API proxy with OpenAI & Anthropic API compatibility, key\u002Fproxy pooling, automatic routing, and WebUI.","Go",1266,223,294,72,[],"把 OpenCode Zen 的三种 API 协议统一成 OpenAI\u002FAnthropic 兼容入口，并管理上游 key 与代理池的自建网关。","## 解决什么问题\n\nOpenCode Zen（以及 Go 档）提供的接口形态和主流客户端预期并不完全一致：想接 Chat Completions、Responses 或 Anthropic Messages 的 SDK，往往要各写一套适配，同时还要管多把上游 key、代理和档位偏好。opencode2api 是一个 Go 服务，夹在客户端与 Zen 之间做协议翻译，并替你管理上游凭据。\n\n## 有什么不同\n\n常见做法是用厂商自带客户端（只支持一种协议），或者用 one-api 这类通用网关，但后者默认上游是 OpenAI 兼容的。这个项目把 Zen\u002FGo 当作一等上游：Zen 与 Go 各自独立的 key 池、可选的匿名 Zen 访问、按连接选择 direct\u002FHTTP(S)\u002FSOCKS5\u002F5H 代理、会话亲和，以及带失败回退的粘性模型组。另外它把管理面单独开在另一个端口，配置编辑、Playground、配额看板、实时日志全打包进同一个二进制，不依赖 Node 运行时或数据库。\n\n## 适合谁\n\n已经拿到（或打算申请）Zen\u002FGo 访问权限、想把现有 OpenAI 或 Anthropic 客户端直接指过来的开发者和小组，尤其是需要在一台机器上池化多把 key、走代理的场景。只想做 OpenAI 到 OpenAI 的简单转发、需要 embeddings\u002F文件上传\u002F图像生成接口、或者必须依赖有商业支持的多上游服务的人，应该看别的方案——README 明确说不实现这些路由。\n\n## 上手成本\n\n需要 Go 1.24 以上自行编译，或用官方 GHCR 镜像；配置目录必须可写。`config.example.json` 里的 server key、上游 key 和 WebUI 密码都是占位值，必须替换。WebUI 默认监听所有网卡，需要限制访问或套反向代理。许可证是 GPL-3.0，如果你要嵌入或再分发需要留意。跨协议桥接明确是有损的：比如 JSON 输出约束和 `seed` 转发到 Anthropic 时会丢掉，不支持的内容类型可能直接被拒。README 对配置写得很细，但对上游失败后的重试细节和语义说明偏薄。\n\n## 点评\n\n这是一个只有 71 天、已经 1264 星的项目，一周内在 Go 板块涨了 386 星，更像踩中特定场景的短期热度，而不是多年打磨的结果。范围窄、对边界坦诚，这点值得肯定；主要顾虑是 GPL 许可证和单人维护。如果你本来就在 Zen 生态里，想要一个二进制同时做协议归一和 key 池，值得试；但别在没有锁版本、没读过路由代码的情况下把它当关键基础设施。",{"slug":19,"name":20},"ai-engineering","AI 工程",[],"GPL-3.0",null,"2026-10-24T22:06:54Z",[],1792898438]