Repository navigation
v1.0.0
opencode-go-model-picker v1.0.0
First stable release of opencode-go-model-picker — an OpenCode Agent Skill that picks or rebalances the models used by your custom OpenCode agents (native agents, oh-my-opencode-slim presets, and agent-injecting plugins) against the latest OpenCode Go plan. Read-only by default: it fetches the plan, produces recommendations with fallback chains, and never edits your config without a preview and an explicit confirmation.
Highlights
- Plan-aware allocation — fetches the live Go plan every run (models, per-model monthly limits, limited-time promos, estimated request counts) and allocates a model per agent by role trait, under
budget/balanced/qualityrecommendation modes with a two-question first-run diagnostic. - Fallback chains — builds ordered 2–4 entry failover chains (best fit → cheaper Go model → different provider) for chain-capable sources such as
oh-my-opencode-slim, and explicitly refuses to invent arrays for sources whosemodelis a single value. - Never invents numbers — every price, limit, and capability is reported with its source and fetch date. Committed price and LMArena score seeds act as dated offline fallbacks; anything unverifiable is marked for manual verification.
- Read-only by default — output ends at an explicit 🛑 gate; nothing is written to your configuration without your confirmation.
- Multi-source discovery — native OpenCode agents (
opencode.json/opencode.jsonc, Markdown agent files),oh-my-opencode-slimpresets, and other plugins that inject agents, through uniform read-only source adapters. OpenCode's built-in agents are always skipped.
What's Changed
Added
- Explicit
Failure Modes (if → then → still failing)table in the skill: serial re-run on snapshot write races, dated seed/cache fallbacks when endpoints or the network are unreachable, local-registrystatusverification for non-Go fallback ids, and a zero-custom-agent stop branch. - Visible 🛑/🔴 checkpoint markers at the output gate, the first-run mode diagnostic, and the apply gate.
- Committed price seed (
references/model-prices.json) withscripts/refresh-prices.mjs, and a committed LMArena score seed (references/model-scores.json) withscripts/refresh-scores.mjs(no API key, no browser). - Three recommendation modes (
budget,balanced,quality) plus an auditable decision-factors table in the report. - Estimated request counts (per 5h / week / month) as a first-class throughput signal — equal dollar limits do not mean equal request counts.
- Mandatory caveat flags for limited-time multipliers, geo-restricted models, and privacy-for-discount "Contributor" tiers that train on your prompts (opt-in, never recommended silently).
- Generalized agent discovery beyond
oh-my-opencode-slimviareferences/agent-sources.md(uniform inventory record, role-trait mapping, known-role overrides).
Changed
- Refresh strategy deduplicated to a single source of truth in the skill; Failure Modes row 5 disambiguated — an explicit
deprecated/removedstatus blocks an id, while an absentstatusfield is the registry's default-active convention. - README (English and Chinese) now documents the explicit failure-path handling.
Fixed
scripts/refresh-snapshot.mjsno longer drops top-level snapshot keys such aspreferenceson write, so the remembered recommendation mode actually persists across runs.- Snapshot
schemaVersionnow writes2, matchingreferences/model-snapshot.md. scripts/refresh-prices.mjsoutput now separates seed coverage (seedUsed), priced count (priced 40/42), and null-upstream ids instead of a single misleadingmatchednumber.
Installation
Clone the repository into your OpenCode skills directory so the folder name matches the skill's name:
Linux / macOS
git clone https://github.com/sogeisetsu/opencode-go-model-picker.git \
~/.config/opencode/skills/opencode-go-model-pickerWindows (PowerShell)
git clone https://github.com/sogeisetsu/opencode-go-model-picker.git `
"$env:USERPROFILE\.config\opencode\skills\opencode-go-model-picker"Minimal install: the skill only uses SKILL.md, references/, and scripts/ at runtime — copying just those three is enough.
Verify the helper script runs:
node scripts/fetch-go-models.mjs # prints { fetchedAt, source, count, ids }Full Changelog
https://github.com/sogeisetsu/opencode-go-model-picker/blob/main/CHANGELOG.md