anomalyco / anomalyco/opencode

[FEATURE]: List Bodega One as a validated OpenCode Go client

Open Beginner friendly
#49,999 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Hi. We would like Bodega One added to the Validated Clients table for OpenCode Go.

Bodega One is a local-first AI desktop IDE with chat and code modes, plus a terminal CLI. Users
add OpenCode as an OpenAI-compatible endpoint with their own key, either
https://opencode.ai/zen/go/v1 or https://opencode.ai/zen/v1 for Zen. Our site is
https://bodegaone.ai

Here is how we do on the three things your Go docs ask for.

Normal coding agent traffic. Agent turns with tool calls for reading and writing files,
searching, and running shell commands. Multi-turn conversations. No bulk or synthetic traffic.

Our own user agent. Every request sends User-Agent: BodegaOne/1.0 (https://bodegaone.ai).
That includes the model list, not just inference.

A stable session id in x-opencode-session. One id per conversation. It stays the same across
every turn of that conversation and differs between conversations. We bind it once where a turn
starts, so it rides every request the turn makes. That covers the main loop, non-streaming
fallbacks, context compaction, memory extraction, and sub-agents, not only the first call. The
value is a salted digest, never a local identifier.

How we checked. We logged every outbound request to opencode.ai during real agent sessions on
both endpoints. 234 inference requests across /chat/completions, /responses and /messages.
None were missing the header, and each conversation used one id.

Models we ran end to end with tool use:

  • Go: glm-5.3-flash, kimi-k2.7-code, qwen3.8-flash, minimax-m2.7, gpt-5.6-luna, grok-4.6
  • Zen: glm-5.3-flash, deepseek-v4-flash, gpt-5.4-mini, grok-4.6, claude-haiku-4-5

Which API we use for what. We send each model family to the API that serves it. Chat
completions for most open-weight models, /responses for gpt, grok and muse-spark, /messages
for claude and for minimax-m2.x on Go. We do not speak the Gemini native API yet, so we refuse
Gemini models in our own client with an explanation rather than sending a request that cannot work.

We respect the free tier limit. The -free models and big-pickle return FreeTierError to
us and we show your message to the user as written. We do not present as the OpenCode client and
we will not.

Two bits of feedback, if they are useful.

First, /models does not say which API serves each model, and calling the wrong one returns a
plain 500 Internal server error. A format field per model would remove the guesswork. So would
a 4xx that names the right endpoint, like the ModelError: ... not supported for format openai
that some models already return. Working out the current lineup took a probe of all 107 models on
the list.

Second, /models returns 200 for any key, valid or not, so clients cannot use it to check a key.
We had a user see a working "Connected" badge next to a key your gateway had never accepted.

Happy to run any check you want, or share request captures with headers only and no keys.

Version with session support: Bodega One v1.0.0-beta.42.2 and Bodega One Code CLI v0.2.11, both released today.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the Validated Clients table in the OpenCode Go documentation and review nearby entries and contribution guidance. Add Bodega One with its site, supported endpoints, and the supplied validation details, then check the rendered table and links. Done means the entry accurately reflects the reported client behavior and release versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.