docs/opencode.md
opencode.ai.GET https://opencode.ai/zen/go/v1/usage, authenticated by OPENCODE_API_KEY or
providers[].apiKey.~/.local/share/opencode/opencode.db on macOS and Linux.POST https://opencode.ai/_server with server function IDs:
workspaces (def39973159c7f0483d8793a822b8dbb10d067e12c65455fcb4608459ba0234f)subscription.get (7abeebee372f304e050aaaf92be863f4a86490e382f8c79db68fd94040d691b4)rollingUsage.usagePercent, rollingUsage.resetInSec).weeklyUsage.usagePercent, weeklyUsage.resetInSec).now + resetInSec.text/javascript with serialized objects; parse via regex.CODEXBAR_OPENCODE_WORKSPACE_ID to skip workspace lookup and force a specific workspace.wrk_… ID or a full https://opencode.ai/workspace/... URL.com.steipete.codexbar.cache (account cookie.opencode, source + timestamp). Browser
import only runs when the cached cookie fails.opencode-go assistant costs first,
overlays authoritative API windows when an API key is configured, then falls back through the API and legacy web
sources when local history is unavailable. Auto stays web-first when a token account, manual cookie, or workspace
override scopes the request, because local history is device-wide.dataConfidence: "estimated".opencode.ai has no daily-granularity endpoint, so per-day cost/request buckets
come from local opencode-go assistant costs in opencode.db, keyed by device-local calendar day. Successful web
usage remains workspace-scoped and is never blended with device-wide local costs, so it does not show cost history.
Explicit Web mode never reads the local database either.modelID
(the real model behind the constant opencode-go Zen proxy providerID). This lets the shared Cost history
chart show a per-model breakdown for OpenCode Go the same way it already does for Claude (see the "Cost usage"
section in docs/claude.md). Rows with no modelID are grouped under an "unknown" bucket instead of
being dropped.