- scripts/deploy.sh: manual Cloudflare Pages deploy (same steps as CI) - scripts/refresh-evals.mjs: re-scrape Artificial Analysis + OpenCode Data into evals.js - evals.js now carries OpenCode Go list prices; Hy4 and LongCat 2.5 left empty rather than borrowing a neighbouring model's numbers - workflow creates the Pages project idempotently
4.2 KiB
OpenCodeGoEvals
Benchmarks and plain-language notes for every model in the OpenCode Go catalog: a task-by-task performance matrix, cost/value analysis, and a description of what each model is actually targeted for (agentic work, coding, data analysis, image understanding, deep research, high-volume chores).
Static site, no build step — it is plain HTML/CSS/ES modules, deployed to Cloudflare Pages.
What's here
| Path | What it is |
|---|---|
site/index.html |
The site: performance matrix, price/value charts, model guide |
site/assets/data.js |
Model catalogue — pricing, context, modality, target descriptions, caveats |
site/assets/evals.js |
Benchmark scores (0–100) per model per task family |
site/assets/app.js |
Rendering logic for the matrix, charts and guide |
site/assets/style.css |
Styling |
MODELS.md |
The same model descriptions in Markdown |
wrangler.toml |
Cloudflare Pages project configuration |
.gitea/workflows/pages.yml |
CI: builds and deploys to Cloudflare Pages on every push to main |
Data sources
- OpenCode Go docs — pricing, monthly allowances, privacy/retention, client support
- OpenCode Data — catalog metadata, context windows, usage and retention stats
- Artificial Analysis — benchmark scores and the Intelligence Index
- Vendor announcements — Google (Gemini 4 Argon), Reflection AI (Beam), Meituan (LongCat), MiniMax (M3.1 Flash), xAI (Grok 4.7), StepFun (Step 5), Qwen, Zhipu, Moonshot, DeepSeek, Xiaomi, Tencent
Data snapshot date: 2026-10-21. Re-run the collection script to refresh.
Publishing to Cloudflare Pages
1. Create the Pages project
npm install
npx wrangler login # or export CLOUDFLARE_API_TOKEN
npx wrangler pages project create opencodogoevals
2. Give CI the credentials
Add these as repository secrets (Gitea: Settings → Actions → Secrets):
| Secret | Value |
|---|---|
CLOUDFLARE_API_TOKEN |
Cloudflare API token with Cloudflare Pages: Edit (and Account Settings: Read) |
CLOUDFLARE_ACCOUNT_ID |
The Cloudflare account that owns the Pages project |
The workflow in .gitea/workflows/pages.yml then:
- checks out the repo and installs Wrangler,
- stages
MODELS.mdnext to the site, - creates the Pages project if it does not exist yet (idempotent),
- deploys
site/on every push tomain, on a manual Run workflow, and hourly.
A runner must be registered on the Gitea instance for the workflow to execute.
3. Deploy manually (optional)
./scripts/deploy.sh # uses env vars or your wrangler login session
npm run deploy # same thing, wrangler only
npm run dev # local preview on http://localhost:8788
Custom domain
Set it in Cloudflare Pages → Custom domains, then add a CNAME record pointing at
<project>.pages.dev.
Local development
The site is static — open site/index.html directly, or use npm run dev for a
Cloudflare-compatible local server.
Updating the data
node scripts/refresh-evals.mjsre-scrapes every model's benchmark scores from Artificial Analysis and rewritessite/assets/evals.js. Model names, OpenCode Go prices and free-tier flags come fromsite/assets/data.js(hand-maintained from the Go docs), so the chart always shows Go pricing.- Descriptions, modalities, release dates and caveats live in
site/assets/data.js; update them there and regenerateMODELS.md. - Commit both files — CI publishes the site on push.
Caveats
- Task-matrix cells use the best published evaluation per task family; when a model has not been run on a benchmark the column falls back to another one, so the underlying benchmark can differ between rows in a column. Hover a cell to see which one it is.
- Free-tier models (MiniMax M3.1 Flash Free, Beam Free, LongCat 2.5 Preview Free) are limited-time offers.
- Contributor-tier models (Gemini 4 Argon, Muse Spark 1.3) may use your prompts and completions for training — check the Go docs' privacy table.
- No Go model generates images; they are all text-output.
License
MIT — see LICENSE.