@juanbenjumea/opencode-go-usage
v0.3.1
Published
Shared provider usage fetchers for Pi extensions and agentq: OpenCode Go API, Cursor and CommandCode billing, quota-sessions auth.
Downloads
337
Maintainers
Readme
@juanbenjumea/opencode-go-usage
Shared provider usage library for Pi extensions, agentq, and other tooling.
Despite the name (historical), this package covers more than OpenCode Go:
| Provider | Auth | Source |
|---|---|---|
| OpenCode Go | API key (same as chat) | GET https://opencode.ai/zen/go/v1/usage |
| Cursor | quota-sessions.json, env, CodexBar, Cursor app DB | cursor.com/api/usage-summary |
| CommandCode | quota-sessions.json, env, CodexBar | api.commandcode.ai/internal/billing/* |
| Openference | API key from caller, OPENFERENCE_API_KEY, or auth.json | GET https://openference.com/api/user/me |
Legacy OpenCode Go dashboard cookie scraping remains as a fallback when no API key is configured.
Install
npm install @juanbenjumea/opencode-go-usageMonorepo consumers: "@juanbenjumea/opencode-go-usage": "file:../opencode-go-usage".
OpenCode Go (API-first)
import { fetchUsageApi } from "@juanbenjumea/opencode-go-usage";
const usage = await fetchUsageApi(process.env.OPENCODE_GO_KEY!);
// { rolling, weekly, monthly, error? }Cursor / CommandCode
import { fetchCursorUsage } from "@juanbenjumea/opencode-go-usage/cursor.ts";
import { fetchCommandCodeUsage } from "@juanbenjumea/opencode-go-usage/commandcode.ts";
import { fetchOpenferenceUsage } from "@juanbenjumea/opencode-go-usage/openference.ts";
// Footer labels (Plan / Auto / API)
await fetchCursorUsage();
// agentq labels (total / auto-composer / api-models)
await fetchCursorUsage({ labelStyle: "agentq" });
await fetchCommandCodeUsage();
// Uses the dashboard profile endpoint (openference.com/api/user/me), which the
// inference API key authenticates via Bearer. window = usage.windowQuotaUsed /
// plan.requestsPerWindow, week = usage.weekQuotaUsed / plan.requestsPerWeek.
const openference = await fetchOpenferenceUsage(process.env.OPENFERENCE_API_KEY);Auth resolution order: provider-specific explicit key → environment variable → auth.json credential. For Cursor and CommandCode cookies, the existing order is quota-sessions.json → env vars → legacy auth.json cookies → CodexBar manual cookies → (Cursor only) desktop app token.
Consumers
@juanbenjumea/pi-dynamic-footer— subscription quota bars@juanbenjumea/pi-multi-opencode-go— failover usage polling- agentq —
data/quota.jsoncollector
Future
A rename to @juanbenjumea/provider-usage may happen in a major release; subpath exports will remain stable through 0.x.
