[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$frk8vry9564fp":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,[],"A self-hosted gateway that puts OpenAI, Responses and Anthropic APIs in front of OpenCode Zen, with key and proxy pooling.","## The problem\n\nOpenCode Zen (and its Go tier) gives you access to models with an OpenAI-ish surface, but not the exact shape most clients expect. Tools built for OpenAI's Chat Completions, the newer Responses API, or Anthropic Messages each need their own SDK, and you may be juggling several upstream keys, proxies and tier preferences. opencode2api is a Go service that sits between clients and Zen, translating between the three protocols and managing the upstream credentials on your behalf.\n\n## What's different\n\nThe common alternative is either using a vendor-provided client that only speaks one protocol, or wiring up a generic proxy like one-api-style gateways that assume OpenAI-compatible upstreams. This project's distinguishing angle is that it treats Zen\u002FGo as a first-class upstream: separate key pools per tier, optional anonymous Zen access, per-connection proxy choice (direct, HTTP(S), SOCKS5\u002F5H), session affinity and sticky model groups with failure fallback. It also exposes a separate management port with a WebUI for configuration, a playground, quota dashboards and live logs — and the binary bundles all of it, with no Node runtime or database.\n\n## Who it's for\n\nDevelopers and small teams who already have (or want) Zen\u002FGo access and need to point existing OpenAI or Anthropic clients at it, especially those who want to pool multiple keys or route through proxies from a single host. People who just need an OpenAI-to-OpenAI shim, who need embeddings, file uploads or image generation endpoints, or who require a supported multi-upstream commercial service, should look elsewhere — the README explicitly excludes those routes.\n\n## Cost of adoption\n\nBuild with Go 1.24 or newer, or pull the published GHCR image; the config directory must be writable, and secrets (server keys, upstream keys, WebUI password) ship as placeholders in `config.example.json` that you must replace. The WebUI defaults to listening on all interfaces, so restrict or reverse-proxy it. License is GPL-3.0, which matters if you plan to embed or redistribute it. The protocol bridge is explicitly lossy across boundaries: some options (e.g. JSON constraints and `seed` when crossing to Anthropic) are dropped, and unsupported content types may be rejected. The README is detailed about config but thin on upstream failure semantics beyond retries and session affinity.\n\n## Verdict\n\nThis is a 71-day-old project with 1,264 stars and a sharp +386 in one week on the Go board — that looks like momentum driven by a specific niche and a moment, not years of hardening. The scope is narrow and honest about its boundaries, which is reassuring; the GPL license and a single-maintainer posture are the main things to weigh. Try it if you already live in the Zen ecosystem and want one binary to normalize protocols and pool keys; don't adopt it as critical infrastructure without pinning a release and reading the routing code.",{"slug":19,"name":20},"ai-engineering","AI Engineering",[],"GPL-3.0",null,"2026-10-24T22:06:54Z",[],1792898404]