Automate the evaluation on a weekly schedule
Deploy to Cloudflare Pages / deploy (push) Successful in 30s
Deploy to Cloudflare Pages / deploy (push) Successful in 30s
- scripts/sync-catalog.mjs: rebuilds the Go catalogue from models.dev and benchmark scores from Artificial Analysis, and records what changed in snapshot.json - scripts/build-models-md.mjs: regenerates MODELS.md from the data layers - scripts/notify-new-models.mjs: files an issue when a new model needs a write-up - weekly-eval.yml: cron every Monday 05:23 UTC -> refresh -> commit -> Pages deploy - site now renders every model in the catalogue (33) with a data-snapshot stamp; auto-added models are flagged 'no write-up' until described - replaced scripts/refresh-evals.mjs with the wider sync script
This commit is contained in:
@@ -0,0 +1,56 @@
|
|||||||
|
name: Weekly evaluation refresh
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
# Mondays, 05:23 UTC — off the hour so it does not pile onto every other cron
|
||||||
|
- cron: "23 5 * * 1"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
issues: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
refresh:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '22'
|
||||||
|
|
||||||
|
- name: Refresh catalogue and benchmark scores
|
||||||
|
run: node scripts/sync-catalog.mjs
|
||||||
|
|
||||||
|
- name: Rebuild MODELS.md
|
||||||
|
run: node scripts/build-models-md.mjs
|
||||||
|
|
||||||
|
- name: Report new models
|
||||||
|
env:
|
||||||
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN || gitea.token }}
|
||||||
|
GITHUB_API_URL: ${{ github.api_url }}
|
||||||
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||||
|
run: node scripts/notify-new-models.mjs
|
||||||
|
|
||||||
|
- name: Commit refreshed data
|
||||||
|
env:
|
||||||
|
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN || gitea.token }}
|
||||||
|
run: |
|
||||||
|
git config user.name "opencode-go-evals"
|
||||||
|
git config user.email "[email protected]"
|
||||||
|
if git diff --quiet -- site/assets MODELS.md; then
|
||||||
|
echo "no data changes — nothing to commit"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
git add site/assets MODELS.md
|
||||||
|
git commit -m "chore: weekly evaluation refresh $(date -u +%Y-%m-%d)"
|
||||||
|
# the checkout action's credentials are usually enough; fall back to the token
|
||||||
|
if ! git push origin HEAD:main; then
|
||||||
|
git remote set-url origin \
|
||||||
|
"https://x-access-token:${GITEA_TOKEN}@git.wallacenet.ca/devadmin/OpenCodeGoEvals.git"
|
||||||
|
git push origin HEAD:main
|
||||||
|
fi
|
||||||
|
echo "pushed — the Cloudflare Pages workflow will publish the update"
|
||||||
@@ -1,10 +1,15 @@
|
|||||||
# OpenCode Go — what each model is for
|
# OpenCode Go — what each model is for
|
||||||
|
|
||||||
Short, practical notes on the 23 models in the OpenCode Go catalog: what each one is targeted for (agentic work, coding, data analysis, image understanding, deep research, high-volume chores), what it costs, and what to watch out for.
|
Short, practical notes on every model in the OpenCode Go catalogue: what each one is targeted for
|
||||||
|
(agentic work, coding, data analysis, image understanding, deep research, high-volume chores),
|
||||||
|
what it costs, and what to watch out for.
|
||||||
|
|
||||||
Evaluated scores come from Artificial Analysis (single consistent harness) plus vendor model cards, retrieved 2026-10-21. The interactive version with the full task matrix lives at `site/index.html`.
|
Evaluated scores come from Artificial Analysis (single consistent harness) plus vendor model cards.
|
||||||
|
Catalogue metadata comes from models.dev's OpenCode Go provider. Data snapshot: **2026-10-21**.
|
||||||
|
The interactive version with the full task matrix lives at `site/index.html`.
|
||||||
|
|
||||||
> No model in the Go catalog generates images. Every Go model is text-output; several accept image, video, PDF or audio as **input**.
|
> No model in the Go catalogue generates images. Every Go model is text-output; several accept image,
|
||||||
|
> video, PDF or audio as **input**.
|
||||||
|
|
||||||
## Quick picks
|
## Quick picks
|
||||||
|
|
||||||
@@ -15,17 +20,170 @@ Evaluated scores come from Artificial Analysis (single consistent harness) plus
|
|||||||
| Zero-cost exploration (limited time) | MiniMax M3.1 Flash Free, Beam Free, LongCat 2.5 Preview Free |
|
| Zero-cost exploration (limited time) | MiniMax M3.1 Flash Free, Beam Free, LongCat 2.5 Preview Free |
|
||||||
| Long-horizon agent runs with multimodal input | Muse Spark 1.3 Contributor, MiMo-V2.6-Pro |
|
| Long-horizon agent runs with multimodal input | Muse Spark 1.3 Contributor, MiMo-V2.6-Pro |
|
||||||
| Repo-scale code changes | Kimi K2.7 Code, GLM-5.3, Qwen3.8 Max |
|
| Repo-scale code changes | Kimi K2.7 Code, GLM-5.3, Qwen3.8 Max |
|
||||||
| Spreadsheets / data analysis deliverables | Kimi K3 (SpreadsheetBench 34.8), Qwen3.8 Max (GDPval 58.2) |
|
| Spreadsheets / data analysis deliverables | Kimi K3, Qwen3.8 Max |
|
||||||
| Reading screenshots, charts and documents | Qwen3.8 Flash, GLM-5.3-Flash, MiniMax M3 |
|
| Reading screenshots, charts and documents | Qwen3.8 Flash, GLM-5.3-Flash, MiniMax M3 |
|
||||||
| High-volume, latency-sensitive work | Claude Haiku 5.5, GPT-6 Luna, MiMo-V2.5 |
|
| High-volume, latency-sensitive work | Claude Haiku 5.5, GPT-6 Luna, MiMo-V2.5 |
|
||||||
|
|
||||||
## The catalog
|
## The catalogue
|
||||||
|
|
||||||
### MiniMax M3.1 Flash Free
|
### undefined
|
||||||
|
|
||||||
**MiniMax** · released 2026-10-19 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1M context
|
**google** · released 2026-10-13 · $4 in / $20 out per 1M tokens · 1.05M context · text, image, video, audio, pdf in → text out
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
Targeted for: **Frontier coding, Deep research, Legal & financial work, Security, Multimodal**
|
||||||
|
|
||||||
|
Google's flagship reasoning model for complex software engineering, deep math and science, and long-horizon autonomous agents. The highest overall score in the Go catalog.
|
||||||
|
|
||||||
|
Hardest frontier work: large codebase refactors and optimisation (Google used it to optimise a 200,000-line Python codebase overnight), financial research, legal drafting, deep math/science, and autonomous security work such as vulnerability patching. It is also the model to reach for when a task needs to stay coherent across a very long autonomous run — the 1M window and long max-output budgets are the point, not the per-token price.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 52.6 · FrontierCode 43.5 · TB4.0 57.1 · AutomationBench 77.5 · HLE 57.1 · LCR 79.7
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Contributor tier: your prompts and completions may be used to train future Google models. Not zero-data-retention.
|
||||||
|
- Most expensive model in Go at $4 / $20 per 1M tokens.
|
||||||
|
- Currently priced at a promotional 2× allowance for a limited time.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**meta** · released 2026-09-02 · $0.1 in / $0.2 out per 1M tokens · 1.05M context · text, image, video, pdf, audio in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long-horizon agents, Multi-agent workflows, Coding, Multimodal, Cheap**
|
||||||
|
|
||||||
|
Meta's multimodal reasoning model for long-running agentic, multi-agent and coding workflows, improved over 1.2 for long-horizon agent collaboration, instruction following and coding efficiency.
|
||||||
|
|
||||||
|
Multi-agent and long-horizon pipelines: several specialised agents handing work to each other over a 1M window, with the widest input surface in Go (image, video, PDF and audio all accepted). Cheap enough ($0.10 / $0.20) to keep several agents running at once — it is the pick when the architecture, not the single call, is doing the work.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 48.1 · FrontierCode 40.6 · TB2.1 84.3 · AutomationBench 57.9 · GPQA 93.5 · HLE 48.7 · LCR 83
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Contributor tier: your prompts and completions may be used to train future Meta models, and availability is limited to regions permitted by Meta's Geographic Use Policy.
|
||||||
|
- Text output only.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**xai** · released 2026-09-21 · $2 in / $6 out per 1M tokens · 0.50M context · text, image, pdf in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long-running agents, Coding, Knowledge work, Visual projects**
|
||||||
|
|
||||||
|
xAI's frontier model for long-running agents, coding, knowledge work, and visual projects.
|
||||||
|
|
||||||
|
Sustained agent sessions that mix code and document/visual inputs — research that ends in a written deliverable, codebase work with images in the loop, or an analysis that has to survive a long run without losing the thread. Priced at the top of the open-model tier but with a 500K window that suits multi-file, multi-hour tasks.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 46.4 · FrontierCode 33.8 · TB4.0 25.8 · AutomationBench 65.6 · HLE 43.1 · LCR 76.7
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Premium price ($2 / $6) with a lower $15 monthly allowance in the Go plan.
|
||||||
|
- Price doubles above 200K tokens of context.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**xiaomi** · released 2026-09-22 · $0.435 in / $0.87 out per 1M tokens · 1.05M context · text, image, audio, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Coding agents, Multimodal, Automation, Long context**
|
||||||
|
|
||||||
|
Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution.
|
||||||
|
|
||||||
|
Coding agents that also have to look at things: screenshots, video, audio alongside code. Xiaomi's own card highlights strong AutomationBench and terminal scores, so it is aimed at long mechanical agent loops as much as at authoring code.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 46.3 · FrontierCode 45.4 · TB4.0 34.8 · AutomationBench 58.6 · HLE 49.4 · LCR 86.3
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only.
|
||||||
|
- The Free tier of this family (MiMo-V2.6-Flash) sits outside the Go plan — check the default provider list.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**alibaba** · released 2026-08-03 · $2 in / $6 out per 1M tokens · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Coding, Professional work, Multimodal, Long-horizon agents**
|
||||||
|
|
||||||
|
A 2.4-trillion-parameter MoE flagship for coding, professional work, multimodal understanding, and long-horizon agentic workflows.
|
||||||
|
|
||||||
|
Broad, heavy-duty work where a single model has to cover the whole job: writing code, producing professional deliverables (the GDPval/JobBench scores are strong), and reasoning over images, video and PDFs in the same session. Also the strongest general agent in Go on the terminal and tool-use benchmarks.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 45.4 · FrontierCode 43.2 · TB2.1 88.8 · AutomationBench 56.2 · GPQA 92.8 · HLE 43.1 · LCR 80.3 · MMMU-Pro 82.8
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Priced at $2 / $6 with a $15 monthly allowance.
|
||||||
|
- Cache writes are charged ($2.50 / 1M), so long sessions with big prompt churn cost more than the headline rate.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**zhipuai** · released 2026-08-14 · $1.4 in / $4.4 out per 1M tokens · 1M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long-horizon coding, Agents, Project delivery, Cyber/security**
|
||||||
|
|
||||||
|
Flagship GLM model for long-horizon coding, agents, and complex project delivery.
|
||||||
|
|
||||||
|
Owning a project rather than a ticket: sustained multi-file work, terminal and repo tasks, and the security-agent track (CyberGym, ExploitGym, ExploitBench) where GLM scores are among the strongest in Go. Text-only, and one of the pricier models, so it is aimed at the tasks that genuinely need a flagship.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 44.8 · FrontierCode 40.1 · TB2.1 83.9 · AutomationBench 62.2 · GPQA 91.7 · HLE 42.3 · LCR 79.7
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text input only.
|
||||||
|
- Expensive per token ($1.40 / $4.40) with a $15 monthly allowance in the Go plan.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**stepfun** · released 2026-09-16 · $1 in / $2.7 out per 1M tokens · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Coding, Professional knowledge work, Multimodal, Open weights**
|
||||||
|
|
||||||
|
StepFun's next-generation flagship base model for coding and professional knowledge work, with native text, image and video input and a 1M-token context window.
|
||||||
|
|
||||||
|
Coding plus deliverables: a base model strong enough to write production code and also produce the spreadsheets, reports and documents that surround it. Native image and video input support it works from screenshots and clips directly.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 43.7 · FrontierCode 38.4 · TB4.0 33.3 · AutomationBench 51 · HLE 46.5 · LCR 88.3 · MMMU-Pro 76.4
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Preview release — expect the numbers to move.
|
||||||
|
- Currently priced with a promotional 4× allowance for a limited time.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**moonshotai** · released 2026-07-16 · $3 in / $15 out per 1M tokens · 1.05M context · text, image, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long-horizon agents, Coding, Web research, Spreadsheets, Open weights**
|
||||||
|
|
||||||
|
Multimodal Kimi model with a 1M context and toggleable max-effort thinking for long-horizon agent work.
|
||||||
|
|
||||||
|
The Kimi tier built for endurance: long-horizon agent runs, web research (BrowseComp), coding (FrontierSWE, DeepSWE, Terminal-Bench), and office deliverables — it scores well on SpreadsheetBench, which makes it the pick for data-analysis and spreadsheet work in Go. Thinking effort can be turned up for hard problems or down for speed.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 43.6 · FrontierCode 43.6 · TB2.1 85 · AutomationBench 58.3 · GPQA 93.5 · HLE 46.9 · LCR 88.7 · MMMU-Pro 80.5
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Most expensive model in Go at $3 / $15 per 1M tokens.
|
||||||
|
- Terminal-Bench 4.0 is much weaker than its Terminal-Bench 2.1 result — hard-shell tasks still cost it a lot.
|
||||||
|
- Text output only.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**anthropic** · released 2026-10-07 · $0.1 in / $0.5 out per 1M tokens · 1M context · text, image, pdf in → text out
|
||||||
|
|
||||||
|
Targeted for: **Fast agents, Classification, Responsive UX, Cheap**
|
||||||
|
|
||||||
|
Fast Claude model for responsive assistance, classification, and lightweight agents.
|
||||||
|
|
||||||
|
Anything that has to answer fast and often: interactive completions, classification and extraction, lightweight sub-agents, and UI-style assistance where latency matters more than depth. Anthropic's tool-calling behaviour is the draw for lightweight agents.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 43.4 · FrontierCode 41.8 · TB4.0 32.8 · AutomationBench 35.4 · HLE 44.4 · LCR 82.7
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Price steps up above 100K tokens of context (5×).
|
||||||
|
- Requests are retained for 30 days under Anthropic's data policy — not zero-data-retention.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**minimax** · released 2026-10-19 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
Targeted for: **Coding, Multimodal, Agentic, Free tier**
|
Targeted for: **Coding, Multimodal, Agentic, Free tier**
|
||||||
|
|
||||||
@@ -33,18 +191,168 @@ Frontier multimodal coding model with a 1M-token context window and tunable thin
|
|||||||
|
|
||||||
Day-to-day coding-agent work on real repositories: reading long codebases, editing files, running tools. Image and video input make it usable for UI/screenshot-driven work (reading a rendered page, describing an asset). Because thinking depth is tunable, it can be dialed down for cheap, high-volume turns and up for hard problems.
|
Day-to-day coding-agent work on real repositories: reading long codebases, editing files, running tools. Image and video input make it usable for UI/screenshot-driven work (reading a rendered page, describing an asset). Because thinking depth is tunable, it can be dialed down for cheap, high-volume turns and up for hard problems.
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 42.7 · FrontierCode 38.6 · TB4.0 25.8 · AutomationBench 72.5 · HLE 48.0
|
*Evaluated:* Intelligence Index 42.7 · FrontierCode 38.6 · TB4.0 25.8 · AutomationBench 72.5 · HLE 48 · LCR 79.7 · MMMU-Pro 79.1
|
||||||
|
|
||||||
**Caveats**
|
**Caveats**
|
||||||
|
|
||||||
- Free for a limited time, then billed like the rest of the catalog.
|
- Free for a limited time, then billed like the rest of the catalog.
|
||||||
- Text output only — it analyses images/video but does not generate them.
|
- Text output only — it analyses images/video but does not generate them.
|
||||||
|
|
||||||
### Beam Free
|
### undefined
|
||||||
|
|
||||||
**Reflection AI** · released 2026-10-05 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1M context
|
**zhipuai** · released 2026-08-26 · $0.15 in / $0.5 out per 1M tokens · 1M context · text, image, video, pdf in → text out
|
||||||
|
|
||||||
I/O: text only
|
Targeted for: **Efficient coding, Long-horizon agents, Multimodal, Cheap**
|
||||||
|
|
||||||
|
Native multimodal GLM model for efficient coding and long-horizon agent tasks.
|
||||||
|
|
||||||
|
The cheap twin of the flagship: same family behaviour, multimodal input, and one of the better Terminal-Bench scores in Go per dollar. It is the sensible pick for long agent loops that need to see images, documents or video but do not need frontier depth.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 41.8 · FrontierCode 41 · TB2.1 84.3 · AutomationBench 60.4 · GPQA 91.2 · HLE 39.9 · LCR 80
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only.
|
||||||
|
- Loses a little strength on the hardest reasoning tasks compared with GLM-5.3.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**alibaba** · released 2026-08-26 · $0.15 in / $0.47 out per 1M tokens · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Visual reasoning, Documents, Agent tasks, Cheap**
|
||||||
|
|
||||||
|
Qwen vision-language model for visual reasoning, documents, and agent tasks.
|
||||||
|
|
||||||
|
Perception-heavy work at a low price: reading screenshots and diagrams, extracting from documents, and driving agents that need to see what is on screen. It pairs a 1M window with sub-20¢ input pricing, which makes it a good bulk worker for visual pipelines.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 39.8 · TB2.1 86.1 · AutomationBench 55.9 · GPQA 92.3 · HLE 38 · LCR 79.7 · MMMU-Pro 79.8
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only — no image generation.
|
||||||
|
- Evaluated publicly as 'Qwen3.8-Flash-Next' in third-party benchmark tables.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**meta** · released 2026-08-05 · $0.1 in / $0.2 out per 1M tokens · 1.05M context · text, image, video, pdf, audio in → text out
|
||||||
|
|
||||||
|
Targeted for: **Coding, Multimodal, Cheap**
|
||||||
|
|
||||||
|
Coding-focused update to Muse Spark 1.1 with improvements in code generation, complex debugging, codebase understanding, and end-to-end developer workflows.
|
||||||
|
|
||||||
|
The previous Muse generation — kept in Go because it is cheap and coding-focused. Pick it when you want Meta's multimodal input surface at $0.10/$0.20 and 1.3 is not required; otherwise use Muse Spark 1.3.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 39.6 · TB2.1 80.1 · AutomationBench 40.6 · GPQA 90.4 · HLE 45.5 · LCR 79
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Contributor tier — prompts and completions may be used to train future Meta models.
|
||||||
|
- Superseded by Muse Spark 1.3 on long-horizon agent tasks.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**deepseek** · released 2026-09-10 · $0.15 in / $0.6 out per 1M tokens · 1M context · text, image in → text out
|
||||||
|
|
||||||
|
Targeted for: **Agentic coding, Reasoning, Cheap, High volume**
|
||||||
|
|
||||||
|
DeepSeek's V4.1 Flash: built for reasoning and agentic coding, and the single most-used model in OpenCode by token volume.
|
||||||
|
|
||||||
|
The default engine for long coding-agent runs. DeepSeek's own card lists Terminal-Bench, DeepSWE, CyberGym and AutomationBench scores, i.e. it is tuned for terminal work, repo-level fixes and security tasks rather than chat. With cache reads at ~0.3¢/1M it is also the cheapest way to move large volumes of agent traffic.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 39.5 · FrontierCode 44 · TB4.0 26.8 · AutomationBench 68.9 · HLE 39.2 · LCR 84 · MMMU-Pro 77
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only.
|
||||||
|
- Price doubles during DeepSeek's peak hours (01:00–04:00 and 06:00–10:00 UTC, Mon–Fri).
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**openai** · released 2026-09-22 · $0.1 in / $0.5 out per 1M tokens · 1.05M context · text, image, pdf in → text out
|
||||||
|
|
||||||
|
Targeted for: **High-volume coding, Agents, Document work, Cheap**
|
||||||
|
|
||||||
|
OpenAI's most efficient model for focused, high-volume tasks, at the price of a small open model.
|
||||||
|
|
||||||
|
The default workhorse when you want GPT-class behaviour without GPT-class spend: everyday coding-agent turns, small refactors, summarising long documents (1.05M window), classifying and routing. In Go it is one of the best price/performance points, so it is a good default for background agents and a fallback when a heavier model is unnecessary.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 38.1 · FrontierCode 41.9 · TB4.0 12.6 · AutomationBench 53.2 · HLE 38.5 · LCR 83.3 · MMMU-Pro 79.7
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Price steps up above 272K tokens of context.
|
||||||
|
- Not a reasoning-tier model — deep analysis work should go to a stronger model.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**xiaomi** · released 2026-09-22 · $0.14 in / $0.28 out per 1M tokens · 1.05M context · text, image, audio, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Cheap, Multimodal, Automation, Coding agents**
|
||||||
|
|
||||||
|
MiMo Flash model for multimodal coding agents and long-context automation.
|
||||||
|
|
||||||
|
The cheapest multimodal agent in Go at 14¢/28¢ per 1M: bulk automation over long contexts, agents that must read images, video or audio, and the majority of mechanical coding-agent traffic.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 37.9 · FrontierCode 42.1 · TB4.0 22.7 · AutomationBench 64.1 · HLE 35.1 · LCR 74.3 · MMMU-Pro 73.1
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only.
|
||||||
|
- Noticeably weaker than MiMo-V2.6-Pro on hard agentic and security tasks.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**openai** · released 2026-07-09 · $0.2 in / $1.2 out per 1M tokens · 1.05M context · text, image, pdf in → text out
|
||||||
|
|
||||||
|
Targeted for: **Fast & cheap, High-volume coding, Agents**
|
||||||
|
|
||||||
|
Cost-efficient GPT-5.6 model for fast, high-volume workloads.
|
||||||
|
|
||||||
|
Throughput work: many small calls, classification, extraction, routing and repetitive edits where latency and cost per call decide the outcome. Keeps the GPT tool-calling behaviour at roughly twice the price of GPT-6 Luna.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 37.3 · TB2.1 80.9 · AutomationBench 50.2 · GPQA 91.1 · HLE 39.5 · LCR 83.7 · MMMU-Pro 78.6
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Price steps up above 272K tokens of context.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**deepseek** · released 2026-04-24 · $0.66 in / $1.98 out per 1M tokens · 1M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long agent runs, Coding, Math & science, Open weights**
|
||||||
|
|
||||||
|
Open MiE flagship with million-token context for coding and long agent runs.
|
||||||
|
|
||||||
|
The heavier DeepSeek: multi-hour agent sessions and research runs that need a large window, plus the maths and science scores (IMOAnswerBench, HMMT, LiveCodeBench) for technical work. Text-only, so it is a reasoning/code model rather than a perception model.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 36 · FrontierCode 38.8 · TB2.1 78.7 · AutomationBench 56.7 · GPQA 92.8 · HLE 41 · LCR 80.3
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text input only.
|
||||||
|
- Price doubles during DeepSeek's peak hours.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**zhipuai** · released 2026-06-13 · $1.4 in / $4.4 out per 1M tokens · 1M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long-horizon coding, Agents, Math & science**
|
||||||
|
|
||||||
|
Open flagship GLM for long-horizon coding agents and million-token context work.
|
||||||
|
|
||||||
|
The GLM generation before 5.3: still strong on long-horizon coding agents with a million-token window, and its AIME/HMMT/IMO scores make it the maths-and-science option in the family. GLM-5.3 is the better default where budget allows.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 33.7 · TB2.1 77.9 · AutomationBench 28.4 · GPQA 89.5 · HLE 41.1 · LCR 78.3
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text input only.
|
||||||
|
- Expensive per token ($1.40 / $4.40).
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**reflection** · released 2026-10-05 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1.05M context · text in → text out
|
||||||
|
|
||||||
Targeted for: **Coding, Reasoning, Long-horizon agents, Free tier**
|
Targeted for: **Coding, Reasoning, Long-horizon agents, Free tier**
|
||||||
|
|
||||||
@@ -52,18 +360,152 @@ Reflection's first open-weight model: a 501B-parameter sparse Mixture-of-Experts
|
|||||||
|
|
||||||
Cost-efficient coding and agent loops. The MoE design activates only 23B parameters per token, so it is a cheap way to run a lot of terminal work, tool calls and multi-step reasoning. Text-only, so it is a pure code/reasoning worker rather than a perception model.
|
Cost-efficient coding and agent loops. The MoE design activates only 23B parameters per token, so it is a cheap way to run a lot of terminal work, tool calls and multi-step reasoning. Text-only, so it is a pure code/reasoning worker rather than a perception model.
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 30.3 · SciCode 48.5 · TB4.0 3.0 · AutomationBench 48.5 · HLE 34.7
|
*Evaluated:* Intelligence Index 30.3 · TB4.0 3 · AutomationBench 48.5 · HLE 34.7 · LCR 78
|
||||||
|
|
||||||
**Caveats**
|
**Caveats**
|
||||||
|
|
||||||
- Free for a limited time and unavailable in a long list of countries (see the OpenCode Go docs for the exclusion list).
|
- Free for a limited time and unavailable in a long list of countries (see the OpenCode Go docs for the exclusion list).
|
||||||
- Weights are slated for an Apache 2.0 release, with the technical report and model card following.
|
- Weights are slated for an Apache 2.0 release, with the technical report and model card following.
|
||||||
|
|
||||||
### LongCat 2.5 Preview Free
|
### undefined
|
||||||
|
|
||||||
**Meituan** · released 2026-09-25 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1M context
|
**minimax** · released 2026-06-01 · $0.3 in / $1.2 out per 1M tokens · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
I/O: text, image in → text out
|
Targeted for: **Long-context coding, Perception, Agent planning, SWE tasks**
|
||||||
|
|
||||||
|
MiniMax multimodal model for long-context coding, perception, and agent planning.
|
||||||
|
|
||||||
|
Repo-scale SWE work with perception in the loop: MiniMax reports one of the strongest SWE-Bench Verified results in Go, plus good browser and desktop-computer scores (BrowseComp, MCP Atlas, OSWorld). Use it when the agent has to look at a screen and then change code.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 29.2 · FrontierCode 23 · TB2.1 65.2 · AutomationBench 21.3 · GPQA 92.9 · HLE 39 · LCR 83 · MMMU-Pro 78.6
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only.
|
||||||
|
- Weaker than MiniMax M3.1 Flash on frontier reasoning and long-horizon tasks.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**xiaomi** · released 2026-04-22 · $0.435 in / $0.87 out per 1M tokens · 1.05M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Multimodal coding agents, Long-context automation**
|
||||||
|
|
||||||
|
Previous-generation MiMo Pro tier for multimodal reasoning and coding-agent execution.
|
||||||
|
|
||||||
|
Now the value option in the MiMo line — same interface as 2.6 Pro with materially weaker agentic and cyber benchmarks. Reasonable when you need multimodal input cheaply and the task is not frontier-hard.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 26 · TB2.1 65.2 · AutomationBench 13.7 · GPQA 86.6 · HLE 35.7 · LCR 79.7
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Superseded by MiMo-V2.6-Pro; scores are materially lower on agentic and security tasks.
|
||||||
|
- Text output only.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**moonshotai** · released 2026-06-12 · $0.95 in / $4 out per 1M tokens · 0.26M context · text, image, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Repo-scale coding, Long-horizon repo work, Tool use**
|
||||||
|
|
||||||
|
Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking.
|
||||||
|
|
||||||
|
Purpose-built for code: sustained repository work, refactors and multi-file changes where a general model wastes tokens deliberating. The tool-use (τ-bench) score is very high, so it is also good at driving MCP servers and CLI tools. Use it when the deliverable is a diff, not an essay.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 25.8 · TB2.1 67.4 · AutomationBench 24.5 · GPQA 89.6 · HLE 35 · LCR 79.3
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- 256K context — roughly a quarter of the 1M models.
|
||||||
|
- Narrower general-purpose ability than the flagship Kimi.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**tencent** · released 2026-07-06 · $0.14 in / $0.58 out per 1M tokens · 0.26M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Cheap, Reasoning, Instruction following, Tool use**
|
||||||
|
|
||||||
|
Tencent Hy reasoning model for coding, instruction following, and agent tasks.
|
||||||
|
|
||||||
|
A cheap reasoning model with unusually strong instruction following (IFBench) and tool use (τ-bench) for its price. Suited to spec-driven agents and short coding loops; the 256K window is the main limitation for repo-scale work.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 25.3 · TB2.1 64.4 · AutomationBench 18.4 · GPQA 89.7 · HLE 33.5 · LCR 79
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- 256K context.
|
||||||
|
- Text input only.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**alibaba** · released 2026-06-02 · $0.4 in / $1.6 out per 1M tokens · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Long-context agents, Visual inputs, Coding, Multimodal**
|
||||||
|
|
||||||
|
Multimodal Qwen workhorse for long-context agents, visual inputs, and coding.
|
||||||
|
|
||||||
|
A steady middle tier: long-context agent sessions, image/video understanding and ordinary coding, without the flagship price. Instruction-following scores are its standout metric, which matters for agents driven by precise specs.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 25.2 · TB2.1 61 · AutomationBench 17.4 · GPQA 90 · HLE 35.6 · LCR 73 · MMMU-Pro 80.5
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text output only.
|
||||||
|
- Public evaluations are thinner than for the Qwen3.8 line, so treat third-party comparisons with care.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**minimax** · released 2026-03-18 · $0.3 in / $1.2 out per 1M tokens · 0.20M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Coding, Office work, Agentic tasks**
|
||||||
|
|
||||||
|
MiniMax model for chat, coding, office work, and agentic tasks.
|
||||||
|
|
||||||
|
The generation before MiniMax M3: general chat plus coding and office deliverables. Cheap, but the 200K window and older agentic scores make it a fallback now that M3 and M3.1 Flash exist.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 22.8 · TB2.1 55.4 · AutomationBench 4.4 · GPQA 87.4 · HLE 29.6 · LCR 78.3
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- 200K context — the smallest window in the Go catalogue.
|
||||||
|
- Superseded by MiniMax M3.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**xiaomi** · released 2026-04-22 · $0.14 in / $0.28 out per 1M tokens · 1M context · text, image, audio, video in → text out
|
||||||
|
|
||||||
|
Targeted for: **Budget multimodal agents, Long context**
|
||||||
|
|
||||||
|
Open MiMo model for multimodal coding agents and long-context automation.
|
||||||
|
|
||||||
|
The cheapest way to get multimodal, long-context agent behaviour in Go: 14¢/28¢ per 1M. Best suited to bulk automation — many small steps over a large context — rather than to hard single-shot questions.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 21.8 · TB2.1 63.7 · AutomationBench 18.4 · GPQA 84.9 · HLE 27.2 · LCR 73 · MMMU-Pro 75.4
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Lowest tier of the MiMo line; weak on the hardest agentic benchmarks.
|
||||||
|
- Text output only.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**meituan** · released 2026-06-30 · $0.3 in / $1.2 out per 1M tokens · 1M context · text in → text out
|
||||||
|
|
||||||
|
Targeted for: **Coding, Reasoning, Long context, Open weights**
|
||||||
|
|
||||||
|
Meituan LongCat-2.0, a reasoning model with tool calling and a 1M-token context window.
|
||||||
|
|
||||||
|
Long-context reasoning with tool calling at a modest price — useful for repo-scale analysis and document-heavy agent loops. Text-only, so perception work needs the 2.5 preview.
|
||||||
|
|
||||||
|
*Evaluated:* Intelligence Index 19.1 · TB2.1 50.2 · AutomationBench 4.5 · GPQA 78 · HLE 33.7 · LCR 65
|
||||||
|
|
||||||
|
**Caveats**
|
||||||
|
|
||||||
|
- Text input only.
|
||||||
|
- Superseded by LongCat 2.5 Preview, which adds image input.
|
||||||
|
|
||||||
|
### undefined
|
||||||
|
|
||||||
|
**meituan** · released 2026-09-25 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1M context · text, image in → text out
|
||||||
|
|
||||||
Targeted for: **Coding, Agentic, Image understanding, Free tier**
|
Targeted for: **Coding, Agentic, Image understanding, Free tier**
|
||||||
|
|
||||||
@@ -79,164 +521,25 @@ Agents that have to read a picture to act: UI automation, screenshot-to-code, ch
|
|||||||
- Preview release: scores and behaviour may shift.
|
- Preview release: scores and behaviour may shift.
|
||||||
- Text output only — no image generation.
|
- Text output only — no image generation.
|
||||||
|
|
||||||
### Gemini 4 Argon Contributor
|
### undefined
|
||||||
|
|
||||||
**Google** · released 2026-10-13 · $4 in / $20 out per 1M tokens · 1M context
|
**stepfun** · released 2026-09-16 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1M context · text, image, video in → text out
|
||||||
|
|
||||||
I/O: text, image, video, audio, PDF in → text out
|
Targeted for: **Free tier, Coding, Professional knowledge work, Multimodal**
|
||||||
|
|
||||||
Targeted for: **Frontier coding, Deep research, Legal & financial work, Security, Multimodal**
|
Free access to StepFun's next-generation flagship base model for coding and professional knowledge work, with native text, image and video input and a 1M-token context window.
|
||||||
|
|
||||||
Google's flagship reasoning model for complex software engineering, deep math and science, and long-horizon autonomous agents. The highest overall score in the Go catalog.
|
Same model as the paid Step 5 Preview, without the token bill — useful for long agent runs and multimodal work while the paid allowance is reserved for the hard tasks.
|
||||||
|
|
||||||
Hardest frontier work: large codebase refactors and optimisation (Google used it to optimise a 200,000-line Python codebase overnight), financial research, legal drafting, deep math/science, and autonomous security work such as vulnerability patching. It is also the model to reach for when a task needs to stay coherent across a very long autonomous run — the 1M window and long max-output budgets are the point, not the per-token price.
|
*Evaluated:* no public third-party evaluation published yet.
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 52.6 · FrontierCode 43.5 · SciCode 61.8 · TB4.0 57.1 · AutomationBench 77.5 · HLE 57.1
|
|
||||||
|
|
||||||
**Caveats**
|
**Caveats**
|
||||||
|
|
||||||
- Contributor tier: your prompts and completions may be used to train future Google models. Not zero-data-retention.
|
- Limited-time free entry; not present in the live Go catalogue endpoint, so availability may vary.
|
||||||
- Most expensive model in Go at $4 / $20 per 1M tokens.
|
|
||||||
- Currently priced at a promotional 2× allowance for a limited time.
|
|
||||||
|
|
||||||
### Grok 4.7
|
### undefined
|
||||||
|
|
||||||
**xAI** · released 2026-09-21 · $2 in / $6 out per 1M tokens · 500K context
|
**tencent** · released 2026-08-28 · $0.834 in / $2.501 out per 1M tokens · 1.02M context · text in → text out
|
||||||
|
|
||||||
I/O: text, image, PDF in → text out
|
|
||||||
|
|
||||||
Targeted for: **Long-running agents, Coding, Knowledge work, Visual projects**
|
|
||||||
|
|
||||||
xAI's frontier model for long-running agents, coding, knowledge work, and visual projects.
|
|
||||||
|
|
||||||
Sustained agent sessions that mix code and document/visual inputs — research that ends in a written deliverable, codebase work with images in the loop, or an analysis that has to survive a long run without losing the thread. Priced at the top of the open-model tier but with a 500K window that suits multi-file, multi-hour tasks.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 46.4 · FrontierCode 33.8 · TB4.0 25.8 · AutomationBench 65.6 · GDPval 60.6
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Premium price ($2 / $6) with a lower $15 monthly allowance in the Go plan.
|
|
||||||
- Price doubles above 200K tokens of context.
|
|
||||||
|
|
||||||
### GPT-6 Luna
|
|
||||||
|
|
||||||
**OpenAI** · released 2026-09-22 · $0.1 in / $0.5 out per 1M tokens · 1.05M context
|
|
||||||
|
|
||||||
I/O: text, image, PDF in → text out
|
|
||||||
|
|
||||||
Targeted for: **High-volume coding, Agents, Document work, Cheap**
|
|
||||||
|
|
||||||
OpenAI's most efficient model for focused, high-volume tasks, at the price of a small open model.
|
|
||||||
|
|
||||||
The default workhorse when you want GPT-class behaviour without GPT-class spend: everyday coding-agent turns, small refactors, summarising long documents (1.05M window), classifying and routing. In Go it is one of the best price/performance points, so it is a good default for background agents and a fallback when a heavier model is unnecessary.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 38.1 · FrontierCode 41.9 · AutomationBench 53.2 · LCR 83.3 · MMMU-Pro 79.7
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Price steps up above 272K tokens of context.
|
|
||||||
- Not a reasoning-tier model — deep analysis work should go to a stronger model.
|
|
||||||
|
|
||||||
### Claude Haiku 5.5
|
|
||||||
|
|
||||||
**Anthropic** · released 2026-10-07 · $0.1 in / $0.5 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, PDF in → text out
|
|
||||||
|
|
||||||
Targeted for: **Fast agents, Classification, Responsive UX, Cheap**
|
|
||||||
|
|
||||||
Fast Claude model for responsive assistance, classification, and lightweight agents.
|
|
||||||
|
|
||||||
Anything that has to answer fast and often: interactive completions, classification and extraction, lightweight sub-agents, and UI-style assistance where latency matters more than depth. Anthropic's tool-calling behaviour is the draw for lightweight agents.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 43.4 · FrontierCode 41.8 · TB4.0 32.8 · Analyst Agent 53.8 · GDPval 55.9
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Price steps up above 100K tokens of context (5×).
|
|
||||||
- Requests are retained for 30 days under Anthropic's data policy — not zero-data-retention.
|
|
||||||
|
|
||||||
### Muse Spark 1.3 Contributor
|
|
||||||
|
|
||||||
**Meta** · released 2026-09-02 · $0.1 in / $0.2 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video, PDF, audio in → text out
|
|
||||||
|
|
||||||
Targeted for: **Long-horizon agents, Multi-agent workflows, Coding, Multimodal, Cheap**
|
|
||||||
|
|
||||||
Meta's multimodal reasoning model for long-running agentic, multi-agent and coding workflows, improved over 1.2 for long-horizon agent collaboration, instruction following and coding efficiency.
|
|
||||||
|
|
||||||
Multi-agent and long-horizon pipelines: several specialised agents handing work to each other over a 1M window, with the widest input surface in Go (image, video, PDF and audio all accepted). Cheap enough ($0.10 / $0.20) to keep several agents running at once — it is the pick when the architecture, not the single call, is doing the work.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 48.1 · TB2.1 84.3 · AutomationBench 57.9 · GPQA 93.5 · GDPval 59.0
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Contributor tier: your prompts and completions may be used to train future Meta models, and availability is limited to regions permitted by Meta's Geographic Use Policy.
|
|
||||||
- Text output only.
|
|
||||||
|
|
||||||
### Step 5 Preview
|
|
||||||
|
|
||||||
**StepFun** · released 2026-09-16 · $1 in / $2.7 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Coding, Professional knowledge work, Multimodal, Open weights**
|
|
||||||
|
|
||||||
StepFun's next-generation flagship base model for coding and professional knowledge work, with native text, image and video input and a 1M-token context window.
|
|
||||||
|
|
||||||
Coding plus deliverables: a base model strong enough to write production code and also produce the spreadsheets, reports and documents that surround it. Native image and video input support it works from screenshots and clips directly.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 43.7 · FrontierCode 38.4 · TB4.0 33.3 · AutomationBench 51.0 · LCR 88.3
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Preview release — expect the numbers to move.
|
|
||||||
- Currently priced with a promotional 4× allowance for a limited time.
|
|
||||||
|
|
||||||
### DeepSeek V4.1 Flash
|
|
||||||
|
|
||||||
**DeepSeek** · released 2026-09-10 · $0.15 in / $0.6 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image in → text out
|
|
||||||
|
|
||||||
Targeted for: **Agentic coding, Reasoning, Cheap, High volume**
|
|
||||||
|
|
||||||
DeepSeek's V4.1 Flash: built for reasoning and agentic coding, and the single most-used model in OpenCode by token volume.
|
|
||||||
|
|
||||||
The default engine for long coding-agent runs. DeepSeek's own card lists Terminal-Bench, DeepSWE, CyberGym and AutomationBench scores, i.e. it is tuned for terminal work, repo-level fixes and security tasks rather than chat. With cache reads at ~0.3¢/1M it is also the cheapest way to move large volumes of agent traffic.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 39.5 · FrontierCode 44.0 · AutomationBench 68.9 · TB4.0 26.8 · LCR 84.0
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Text output only.
|
|
||||||
- Price doubles during DeepSeek's peak hours (01:00–04:00 and 06:00–10:00 UTC, Mon–Fri).
|
|
||||||
|
|
||||||
### DeepSeek V4 Pro
|
|
||||||
|
|
||||||
**DeepSeek** · released 2026-04-24 · $0.66 in / $1.98 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text only
|
|
||||||
|
|
||||||
Targeted for: **Long agent runs, Coding, Math & science, Open weights**
|
|
||||||
|
|
||||||
Open MiE flagship with million-token context for coding and long agent runs.
|
|
||||||
|
|
||||||
The heavier DeepSeek: multi-hour agent sessions and research runs that need a large window, plus the maths and science scores (IMOAnswerBench, HMMT, LiveCodeBench) for technical work. Text-only, so it is a reasoning/code model rather than a perception model.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 36 · FrontierCode 38.8 · TB2.1 78.7 · GPQA 92.8 · AutomationBench 56.7
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Text input only.
|
|
||||||
- Price doubles during DeepSeek's peak hours.
|
|
||||||
|
|
||||||
### Hy4 preview
|
|
||||||
|
|
||||||
**Tencent** · released 2026-08-28 · $0.834 in / $2.501 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text only
|
|
||||||
|
|
||||||
Targeted for: **Agentic workflows, Productivity, Complex task execution, Open weights**
|
Targeted for: **Agentic workflows, Productivity, Complex task execution, Open weights**
|
||||||
|
|
||||||
@@ -251,215 +554,39 @@ Productivity and workflow automation: multi-step office/enterprise tasks, tool o
|
|||||||
- Preview release with no third-party evaluations published yet, so performance is unverified outside the vendor's own numbers.
|
- Preview release with no third-party evaluations published yet, so performance is unverified outside the vendor's own numbers.
|
||||||
- Text input only.
|
- Text input only.
|
||||||
|
|
||||||
### GLM-5.3
|
### undefined
|
||||||
|
|
||||||
**Zhipu** · released 2026-08-14 · $1.4 in / $4.4 out per 1M tokens · 1M context
|
**undisclosed** · released 2026-10-12 · $0 in / $0 out per 1M tokens · **free tier (limited time)** · 1.05M context · text in → text out
|
||||||
|
|
||||||
I/O: text only
|
Targeted for: **Free tier, Coding, Agentic workflows, Structured output**
|
||||||
|
|
||||||
Targeted for: **Long-horizon coding, Agents, Project delivery, Cyber/security**
|
A text-only reasoning model for coding and agentic workflows, with tool calling and structured JSON outputs.
|
||||||
|
|
||||||
Flagship GLM model for long-horizon coding, agents, and complex project delivery.
|
An anonymous free tier aimed at agents: tool calling and structured JSON output make it useful as a sub-agent or a formatter that has to hand machine-readable results to the next step.
|
||||||
|
|
||||||
Owning a project rather than a ticket: sustained multi-file work, terminal and repo tasks, and the security-agent track (CyberGym, ExploitGym, ExploitBench) where GLM scores are among the strongest in Go. Text-only, and one of the pricier models, so it is aimed at the tasks that genuinely need a flagship.
|
*Evaluated:* no public third-party evaluation published yet.
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 44.8 · FrontierCode 40.1 · TB2.1 83.9 · AutomationBench 62.2 · GPQA 91.7
|
|
||||||
|
|
||||||
**Caveats**
|
**Caveats**
|
||||||
|
|
||||||
- Text input only.
|
- No vendor, no model card, no public evaluation — verify behaviour before depending on it.
|
||||||
- Expensive per token ($1.40 / $4.40) with a $15 monthly allowance in the Go plan.
|
- Not listed in the live Go catalogue endpoint.
|
||||||
|
|
||||||
### GLM-5.3-Flash
|
### undefined
|
||||||
|
|
||||||
**Zhipu** · released 2026-08-26 · $0.15 in / $0.5 out per 1M tokens · 1M context
|
**undisclosed** · released 2026-09-23 · $0.15 in / $0.6 out per 1M tokens · 1.05M context · text, image, video in → text out
|
||||||
|
|
||||||
I/O: text, image, video, PDF in → text out
|
Targeted for: **Coding, Agentic tasks, Tool use, Multimodal**
|
||||||
|
|
||||||
Targeted for: **Efficient coding, Long-horizon agents, Multimodal, Cheap**
|
Anonymous preview reasoning model for coding, agentic tasks, tool use, and multimodal input.
|
||||||
|
|
||||||
Native multimodal GLM model for efficient coding and long-horizon agent tasks.
|
An unreleased preview model with full multimodal input and tool use, priced like the value tier. It has no vendor behind it and no public evaluation, so treat it as an experiment rather than a recommendation.
|
||||||
|
|
||||||
The cheap twin of the flagship: same family behaviour, multimodal input, and one of the better Terminal-Bench scores in Go per dollar. It is the sensible pick for long agent loops that need to see images, documents or video but do not need frontier depth.
|
*Evaluated:* no public third-party evaluation published yet.
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 41.8 · FrontierCode 41.0 · TB2.1 84.3 · AutomationBench 60.4 · GPQA 91.2
|
|
||||||
|
|
||||||
**Caveats**
|
**Caveats**
|
||||||
|
|
||||||
- Text output only.
|
- No vendor or model card — no published evaluation.
|
||||||
- Loses a little strength on the hardest reasoning tasks compared with GLM-5.3.
|
- Not listed in the live Go catalogue endpoint.
|
||||||
|
|
||||||
### Qwen3.8 Max
|
|
||||||
|
|
||||||
**Alibaba** · released 2026-08-03 · $2 in / $6 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video, PDF in → text out
|
|
||||||
|
|
||||||
Targeted for: **Coding, Professional work, Multimodal, Long-horizon agents**
|
|
||||||
|
|
||||||
A 2.4-trillion-parameter MoE flagship for coding, professional work, multimodal understanding, and long-horizon agentic workflows.
|
|
||||||
|
|
||||||
Broad, heavy-duty work where a single model has to cover the whole job: writing code, producing professional deliverables (the GDPval/JobBench scores are strong), and reasoning over images, video and PDFs in the same session. Also the strongest general agent in Go on the terminal and tool-use benchmarks.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 45.4 · FrontierCode 43.2 · TB2.1 88.8 · GPQA 92.8 · MMMU-Pro 82.8
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Priced at $2 / $6 with a $15 monthly allowance.
|
|
||||||
- Cache writes are charged ($2.50 / 1M), so long sessions with big prompt churn cost more than the headline rate.
|
|
||||||
|
|
||||||
### Qwen3.8 Flash
|
|
||||||
|
|
||||||
**Alibaba** · released 2026-08-26 · $0.15 in / $0.47 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Visual reasoning, Documents, Agent tasks, Cheap**
|
|
||||||
|
|
||||||
Qwen vision-language model for visual reasoning, documents, and agent tasks.
|
|
||||||
|
|
||||||
Perception-heavy work at a low price: reading screenshots and diagrams, extracting from documents, and driving agents that need to see what is on screen. It pairs a 1M window with sub-20¢ input pricing, which makes it a good bulk worker for visual pipelines.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 39.8 · TB2.1 86.1 · GPQA 92.3 · MMMU-Pro 79.8 · GDPval 56.4
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Text output only — no image generation.
|
|
||||||
- Evaluated publicly as 'Qwen3.8-Flash-Next' in third-party benchmark tables.
|
|
||||||
|
|
||||||
### Qwen3.7 Plus
|
|
||||||
|
|
||||||
**Alibaba** · released 2026-06-02 · $0.4 in / $1.6 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Long-context agents, Visual inputs, Coding, Multimodal**
|
|
||||||
|
|
||||||
Multimodal Qwen workhorse for long-context agents, visual inputs, and coding.
|
|
||||||
|
|
||||||
A steady middle tier: long-context agent sessions, image/video understanding and ordinary coding, without the flagship price. Instruction-following scores are its standout metric, which matters for agents driven by precise specs.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 25.2 · TB2.1 61.0 · GPQA 90.0 · IFBench 78.0 · τ²-bench 93.0
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Text output only.
|
|
||||||
- Public evaluations are thinner than for the Qwen3.8 line, so treat third-party comparisons with care.
|
|
||||||
|
|
||||||
### Kimi K3
|
|
||||||
|
|
||||||
**Moonshot** · released 2026-07-16 · $3 in / $15 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Long-horizon agents, Coding, Web research, Spreadsheets, Open weights**
|
|
||||||
|
|
||||||
Multimodal Kimi model with a 1M context and toggleable max-effort thinking for long-horizon agent work.
|
|
||||||
|
|
||||||
The Kimi tier built for endurance: long-horizon agent runs, web research (BrowseComp), coding (FrontierSWE, DeepSWE, Terminal-Bench), and office deliverables — it scores well on SpreadsheetBench, which makes it the pick for data-analysis and spreadsheet work in Go. Thinking effort can be turned up for hard problems or down for speed.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 43.6 · FrontierCode 43.6 · TB2.1 85.0 · GPQA 93.5 · BrowseComp 91.2
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Most expensive model in Go at $3 / $15 per 1M tokens.
|
|
||||||
- Terminal-Bench 4.0 is much weaker than its Terminal-Bench 2.1 result — hard-shell tasks still cost it a lot.
|
|
||||||
- Text output only.
|
|
||||||
|
|
||||||
### Kimi K2.7 Code
|
|
||||||
|
|
||||||
**Moonshot** · released 2026-06-12 · $0.95 in / $4 out per 1M tokens · 256K context
|
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Repo-scale coding, Long-horizon repo work, Tool use**
|
|
||||||
|
|
||||||
Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking.
|
|
||||||
|
|
||||||
Purpose-built for code: sustained repository work, refactors and multi-file changes where a general model wastes tokens deliberating. The tool-use (τ-bench) score is very high, so it is also good at driving MCP servers and CLI tools. Use it when the deliverable is a diff, not an essay.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 25.8 · TB2.1 67.4 · τ²-bench 90.1 · GPQA 89.6
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- 256K context — roughly a quarter of the 1M models.
|
|
||||||
- Narrower general-purpose ability than the flagship Kimi.
|
|
||||||
|
|
||||||
### MiMo-V2.6-Pro
|
|
||||||
|
|
||||||
**Xiaomi** · released 2026-09-22 · $0.435 in / $0.87 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, audio, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Coding agents, Multimodal, Automation, Long context**
|
|
||||||
|
|
||||||
Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution.
|
|
||||||
|
|
||||||
Coding agents that also have to look at things: screenshots, video, audio alongside code. Xiaomi's own card highlights strong AutomationBench and terminal scores, so it is aimed at long mechanical agent loops as much as at authoring code.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 46.3 · FrontierCode 45.4 · TB4.0 34.8 · AutomationBench 58.6 · LCR 86.3
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Text output only.
|
|
||||||
- The Free tier of this family (MiMo-V2.6-Flash) sits outside the Go plan — check the default provider list.
|
|
||||||
|
|
||||||
### MiMo-V2.5-Pro
|
|
||||||
|
|
||||||
**Xiaomi** · released 2026-04-22 · $0.435 in / $0.87 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, audio, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Multimodal coding agents, Long-context automation**
|
|
||||||
|
|
||||||
Previous-generation MiMo Pro tier for multimodal reasoning and coding-agent execution.
|
|
||||||
|
|
||||||
Now the value option in the MiMo line — same interface as 2.6 Pro with materially weaker agentic and cyber benchmarks. Reasonable when you need multimodal input cheaply and the task is not frontier-hard.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 26 · TB2.1 65.2 · τ²-bench 94.2 · GPQA 86.6
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Superseded by MiMo-V2.6-Pro; scores are materially lower on agentic and security tasks.
|
|
||||||
- Text output only.
|
|
||||||
|
|
||||||
### MiMo-V2.5
|
|
||||||
|
|
||||||
**Xiaomi** · released 2026-04-22 · $0.14 in / $0.28 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, audio, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Budget multimodal agents, Long context**
|
|
||||||
|
|
||||||
Open MiMo model for multimodal coding agents and long-context automation.
|
|
||||||
|
|
||||||
The cheapest way to get multimodal, long-context agent behaviour in Go: 14¢/28¢ per 1M. Best suited to bulk automation — many small steps over a large context — rather than to hard single-shot questions.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 21.8 · TB2.1 63.7 · τ²-bench 90.6 · GPQA 84.9
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Lowest tier of the MiMo line; weak on the hardest agentic benchmarks.
|
|
||||||
- Text output only.
|
|
||||||
|
|
||||||
### MiniMax M3
|
|
||||||
|
|
||||||
**MiniMax** · released 2026-06-01 · $0.3 in / $1.2 out per 1M tokens · 1M context
|
|
||||||
|
|
||||||
I/O: text, image, video in → text out
|
|
||||||
|
|
||||||
Targeted for: **Long-context coding, Perception, Agent planning, SWE tasks**
|
|
||||||
|
|
||||||
MiniMax multimodal model for long-context coding, perception, and agent planning.
|
|
||||||
|
|
||||||
Repo-scale SWE work with perception in the loop: MiniMax reports one of the strongest SWE-Bench Verified results in Go, plus good browser and desktop-computer scores (BrowseComp, MCP Atlas, OSWorld). Use it when the agent has to look at a screen and then change code.
|
|
||||||
|
|
||||||
*Evaluated:* Intelligence Index 29.2 · SWE-Bench Verified 80.5 · Terminal-Bench 66.0 · BrowseComp 83.5 · OSWorld 70.1
|
|
||||||
|
|
||||||
**Caveats**
|
|
||||||
|
|
||||||
- Text output only.
|
|
||||||
- Weaker than MiniMax M3.1 Flash on frontier reasoning and long-horizon tasks.
|
|
||||||
|
|
||||||
## Free models outside the Go plan
|
## Free models outside the Go plan
|
||||||
|
|
||||||
@@ -490,6 +617,7 @@ _No published benchmark card — verify behaviour before depending on it._
|
|||||||
## Sources
|
## Sources
|
||||||
|
|
||||||
- [OpenCode Go docs](https://opencode.ai/docs/go) — pricing, allowances, privacy and retention per model
|
- [OpenCode Go docs](https://opencode.ai/docs/go) — pricing, allowances, privacy and retention per model
|
||||||
- [OpenCode Data](https://opencode.ai/data) — catalog metadata, context windows, usage
|
- [models.dev](https://models.dev) — OpenCode Go catalogue metadata (pricing, context, modalities)
|
||||||
- [Artificial Analysis](https://artificialanalysis.ai) — benchmark scores and Intelligence Index
|
- [OpenCode Data](https://opencode.ai/data) — usage, retention, market share
|
||||||
- Vendor announcements: Google (Gemini 4 Argon), Reflection AI (Beam), Meituan (LongCat), MiniMax (M3.1 Flash), xAI (Grok 4.7), StepFun (Step 5)
|
- [Artificial Analysis](https://artificialanalysis.ai) — benchmark scores and the Intelligence Index
|
||||||
|
- Vendor announcements: Google (Gemini 4 Argon), Reflection AI (Beam), Meituan (LongCat), MiniMax, xAI (Grok 4.7), StepFun (Step 5), Qwen, Zhipu, Moonshot, DeepSeek, Xiaomi, Tencent
|
||||||
|
|||||||
@@ -17,6 +17,11 @@ Static site, no build step — it is plain HTML/CSS/ES modules, deployed to **Cl
|
|||||||
| `site/assets/app.js` | Rendering logic for the matrix, charts and guide |
|
| `site/assets/app.js` | Rendering logic for the matrix, charts and guide |
|
||||||
| `site/assets/style.css` | Styling |
|
| `site/assets/style.css` | Styling |
|
||||||
| `MODELS.md` | The same model descriptions in Markdown |
|
| `MODELS.md` | The same model descriptions in Markdown |
|
||||||
|
| `scripts/sync-catalog.mjs` | Weekly refresh: models.dev catalogue + Artificial Analysis → `catalog.js`, `evals.js`, `snapshot.json` |
|
||||||
|
| `scripts/build-models-md.mjs` | Regenerates `MODELS.md` from the three data layers |
|
||||||
|
| `scripts/notify-new-models.mjs` | Files a Gitea issue when a new model needs a write-up |
|
||||||
|
| `scripts/deploy.sh` | Manual Cloudflare Pages deploy |
|
||||||
|
| `.gitea/workflows/weekly-eval.yml` | Weekly scheduled evaluation refresh |
|
||||||
| `wrangler.toml` | Cloudflare Pages project configuration |
|
| `wrangler.toml` | Cloudflare Pages project configuration |
|
||||||
| `.gitea/workflows/pages.yml` | CI: builds and deploys to Cloudflare Pages on every push to `main` |
|
| `.gitea/workflows/pages.yml` | CI: builds and deploys to Cloudflare Pages on every push to `main` |
|
||||||
|
|
||||||
@@ -76,15 +81,52 @@ Set it in Cloudflare Pages → *Custom domains*, then add a CNAME record pointin
|
|||||||
The site is static — open `site/index.html` directly, or use `npm run dev` for a
|
The site is static — open `site/index.html` directly, or use `npm run dev` for a
|
||||||
Cloudflare-compatible local server.
|
Cloudflare-compatible local server.
|
||||||
|
|
||||||
## Updating the data
|
## The weekly cycle
|
||||||
|
|
||||||
1. `node scripts/refresh-evals.mjs` re-scrapes every model's benchmark scores from
|
Two workflows run in Gitea Actions:
|
||||||
Artificial Analysis and rewrites `site/assets/evals.js`. Model names, OpenCode Go
|
|
||||||
prices and free-tier flags come from `site/assets/data.js` (hand-maintained from the
|
| Workflow | Trigger | What it does |
|
||||||
Go docs), so the chart always shows Go pricing.
|
|---|---|---|
|
||||||
2. Descriptions, modalities, release dates and caveats live in `site/assets/data.js`;
|
| `weekly-eval.yml` | Mondays 05:23 UTC (cron), or manual | Re-scrapes the catalogue and benchmark scores, rebuilds `MODELS.md`, opens an issue for any new model needing a write-up, and commits the result |
|
||||||
update them there and regenerate `MODELS.md`.
|
| `pages.yml` | every push to `main` | Deploys `site/` to Cloudflare Pages |
|
||||||
3. Commit both files — CI publishes the site on push.
|
|
||||||
|
The chain is: **schedule → data refresh → commit → Pages deploy**, so the live site
|
||||||
|
updates itself without anyone touching it. The weekly run is idempotent — if nothing
|
||||||
|
changed, nothing is committed and nothing is redeployed.
|
||||||
|
|
||||||
|
A run leaves behind a trail you can audit:
|
||||||
|
|
||||||
|
- `site/assets/snapshot.json` — when the data was taken, which models are new or gone,
|
||||||
|
and every benchmark score that moved since the previous run
|
||||||
|
- the commit `chore: weekly evaluation refresh <date>` in the history
|
||||||
|
- the Actions run log for the week
|
||||||
|
- a Gitea issue when a new model appears in Go without a write-up
|
||||||
|
|
||||||
|
### What is automated vs. hand-written
|
||||||
|
|
||||||
|
| File | Owner | Contents |
|
||||||
|
|---|---|---|
|
||||||
|
| `site/assets/catalog.js` | auto-generated | every model in Go: pricing, context, modalities, release date |
|
||||||
|
| `site/assets/evals.js` | auto-generated | benchmark scores per model per task family |
|
||||||
|
| `site/assets/data.js` | **hand-written** | what each model is targeted for, caveats, tags |
|
||||||
|
| `site/assets/snapshot.json` | auto-generated | timestamp, added/removed models, score deltas |
|
||||||
|
|
||||||
|
When you want to change a description, edit `site/assets/data.js` and run
|
||||||
|
`node scripts/build-models-md.mjs`; the weekly refresh will never overwrite it.
|
||||||
|
|
||||||
|
### Running it by hand
|
||||||
|
|
||||||
|
```bash
|
||||||
|
node scripts/sync-catalog.mjs # refresh catalogue + scores
|
||||||
|
node scripts/build-models-md.mjs # rebuild MODELS.md
|
||||||
|
node scripts/notify-new-models.mjs # file the "needs write-up" issue
|
||||||
|
```
|
||||||
|
|
||||||
|
### If the scheduler is not firing
|
||||||
|
|
||||||
|
Gitea only runs scheduled workflows when a runner is registered and awake. If Mondays
|
||||||
|
slip past, trigger it manually from the Actions tab (*Run workflow*), or run the three
|
||||||
|
commands above on any machine with network access and push the result.
|
||||||
|
|
||||||
## Caveats
|
## Caveats
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -6,9 +6,13 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "wrangler pages dev site --port 8788",
|
"dev": "wrangler pages dev site --port 8788",
|
||||||
|
"sync": "node scripts/sync-catalog.mjs",
|
||||||
|
"build:md": "node scripts/build-models-md.mjs",
|
||||||
|
"notify": "node scripts/notify-new-models.mjs",
|
||||||
|
"refresh": "npm run sync && npm run build:md && npm run notify",
|
||||||
"deploy": "./scripts/deploy.sh",
|
"deploy": "./scripts/deploy.sh",
|
||||||
"deploy:pages": "wrangler pages deploy site --project-name opencodogoevals --branch main",
|
"deploy:pages": "wrangler pages deploy site --project-name opencodogoevals --branch main",
|
||||||
"project:create": "wrangler pages project create opencodogoevals"
|
"project:create": "wrangler pages project create opencodogoevals --production-branch main"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"wrangler": "^4.0.0"
|
"wrangler": "^4.0.0"
|
||||||
|
|||||||
@@ -0,0 +1,104 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
// Regenerates MODELS.md from the three data layers.
|
||||||
|
//
|
||||||
|
// node scripts/build-models-md.mjs
|
||||||
|
//
|
||||||
|
// site/assets/catalog.js auto — catalogue metadata
|
||||||
|
// site/assets/evals.js auto — benchmark scores
|
||||||
|
// site/assets/data.js hand — descriptions and targeting
|
||||||
|
|
||||||
|
import { writeFileSync } from "node:fs";
|
||||||
|
import { dirname, resolve } from "node:path";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
||||||
|
const { CATALOG, SNAPSHOT } = await import(resolve(ROOT, "site/assets/catalog.js"));
|
||||||
|
const { RAW } = await import(resolve(ROOT, "site/assets/evals.js"));
|
||||||
|
const { GO_MODELS, FREE_NOTES } = await import(resolve(ROOT, "site/assets/data.js"));
|
||||||
|
|
||||||
|
const DESC = Object.fromEntries(GO_MODELS.map((m) => [m.id, m]));
|
||||||
|
const SCORE = Object.fromEntries(RAW.map((m) => [m.id, m]));
|
||||||
|
const fmtCtx = (c) => (c ? `${(c / 1e6).toFixed(c % 1e6 ? 2 : 0)}M` : "n/a");
|
||||||
|
|
||||||
|
let md = `# OpenCode Go — what each model is for
|
||||||
|
|
||||||
|
Short, practical notes on every model in the OpenCode Go catalogue: what each one is targeted for
|
||||||
|
(agentic work, coding, data analysis, image understanding, deep research, high-volume chores),
|
||||||
|
what it costs, and what to watch out for.
|
||||||
|
|
||||||
|
Evaluated scores come from Artificial Analysis (single consistent harness) plus vendor model cards.
|
||||||
|
Catalogue metadata comes from models.dev's OpenCode Go provider. Data snapshot: **${(SNAPSHOT.generated || "").slice(0, 10)}**.
|
||||||
|
The interactive version with the full task matrix lives at \`site/index.html\`.
|
||||||
|
|
||||||
|
> No model in the Go catalogue generates images. Every Go model is text-output; several accept image,
|
||||||
|
> video, PDF or audio as **input**.
|
||||||
|
|
||||||
|
## Quick picks
|
||||||
|
|
||||||
|
| If you need… | Use |
|
||||||
|
|---|---|
|
||||||
|
| The strongest model overall, for hard agentic + coding work | Gemini 4 Argon Contributor |
|
||||||
|
| The best value per token for everyday coding agents | DeepSeek V4.1 Flash |
|
||||||
|
| Zero-cost exploration (limited time) | MiniMax M3.1 Flash Free, Beam Free, LongCat 2.5 Preview Free |
|
||||||
|
| Long-horizon agent runs with multimodal input | Muse Spark 1.3 Contributor, MiMo-V2.6-Pro |
|
||||||
|
| Repo-scale code changes | Kimi K2.7 Code, GLM-5.3, Qwen3.8 Max |
|
||||||
|
| Spreadsheets / data analysis deliverables | Kimi K3, Qwen3.8 Max |
|
||||||
|
| Reading screenshots, charts and documents | Qwen3.8 Flash, GLM-5.3-Flash, MiniMax M3 |
|
||||||
|
| High-volume, latency-sensitive work | Claude Haiku 5.5, GPT-6 Luna, MiMo-V2.5 |
|
||||||
|
|
||||||
|
## The catalogue
|
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
|
const sorted = CATALOG.slice().sort((a, b) => {
|
||||||
|
const ia = SCORE[a.id]?.ii ?? -1;
|
||||||
|
const ib = SCORE[b.id]?.ii ?? -1;
|
||||||
|
return ib - ia;
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const m of sorted) {
|
||||||
|
const d = DESC[m.id];
|
||||||
|
const s = SCORE[m.id];
|
||||||
|
md += `### ${m.name}\n\n`;
|
||||||
|
md += `**${m.lab || "undisclosed"}** · released ${m.released || "?"} · $${m.price.in} in / $${m.price.out} out per 1M tokens`;
|
||||||
|
md += m.free ? " · **free tier (limited time)**" : "";
|
||||||
|
md += ` · ${fmtCtx(m.ctx)} context · ${m.modalities}\n\n`;
|
||||||
|
if (d?.best?.length) md += `Targeted for: **${d.best.join(", ")}**\n\n`;
|
||||||
|
if (d?.blurb) md += `${d.blurb}\n\n`;
|
||||||
|
else md += `${m.description || "_No description published._"}\n\n`;
|
||||||
|
if (d?.target) md += `${d.target}\n\n`;
|
||||||
|
else md += "_No hand-written write-up yet._\n\n";
|
||||||
|
if (s?.ii !== null && s?.ii !== undefined) {
|
||||||
|
md += `*Evaluated:* Intelligence Index ${s.ii}`;
|
||||||
|
const extra = [
|
||||||
|
s.fc != null ? `FrontierCode ${s.fc}` : null,
|
||||||
|
s.tb21 != null ? `TB2.1 ${s.tb21}` : s.tb40 != null ? `TB4.0 ${s.tb40}` : null,
|
||||||
|
s.auto != null ? `AutomationBench ${s.auto}` : null,
|
||||||
|
s.gpqa != null ? `GPQA ${s.gpqa}` : null,
|
||||||
|
s.hle != null ? `HLE ${s.hle}` : null,
|
||||||
|
s.lcr != null ? `LCR ${s.lcr}` : null,
|
||||||
|
s.mmmu != null ? `MMMU-Pro ${s.mmmu}` : null
|
||||||
|
].filter(Boolean);
|
||||||
|
if (extra.length) md += " · " + extra.join(" · ");
|
||||||
|
md += "\n\n";
|
||||||
|
} else {
|
||||||
|
md += "*Evaluated:* no public third-party evaluation published yet.\n\n";
|
||||||
|
}
|
||||||
|
if (d?.caveats?.length) md += `**Caveats**\n\n${d.caveats.map((c) => `- ${c}`).join("\n")}\n\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
md += `## Free models outside the Go plan\n\n`;
|
||||||
|
for (const f of FREE_NOTES) {
|
||||||
|
md += `### ${f.name} (${f.lab})\n\n`;
|
||||||
|
md += `*Where:* ${f.where}\n\n${f.target}\n\n_${f.note}_\n\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
md += `## Sources\n\n`;
|
||||||
|
md += `- [OpenCode Go docs](https://opencode.ai/docs/go) — pricing, allowances, privacy and retention per model\n`;
|
||||||
|
md += `- [models.dev](https://models.dev) — OpenCode Go catalogue metadata (pricing, context, modalities)\n`;
|
||||||
|
md += `- [OpenCode Data](https://opencode.ai/data) — usage, retention, market share\n`;
|
||||||
|
md += `- [Artificial Analysis](https://artificialanalysis.ai) — benchmark scores and the Intelligence Index\n`;
|
||||||
|
md += `- Vendor announcements: Google (Gemini 4 Argon), Reflection AI (Beam), Meituan (LongCat), MiniMax, xAI (Grok 4.7), StepFun (Step 5), Qwen, Zhipu, Moonshot, DeepSeek, Xiaomi, Tencent\n`;
|
||||||
|
|
||||||
|
writeFileSync(resolve(ROOT, "MODELS.md"), md);
|
||||||
|
console.log(`wrote MODELS.md (${md.length} bytes, ${sorted.length} models)`);
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
// Opens a Gitea issue when the weekly refresh finds models that need a write-up.
|
||||||
|
//
|
||||||
|
// node scripts/notify-new-models.mjs
|
||||||
|
//
|
||||||
|
// Reads site/assets/snapshot.json (written by sync-catalog.mjs) and, if the catalogue
|
||||||
|
// gained models, files an issue listing them so somebody writes the "targeted for"
|
||||||
|
// descriptions in site/assets/data.js.
|
||||||
|
//
|
||||||
|
// Uses GITHUB_API_URL / GITEA_TOKEN (or GITHUB_TOKEN) from the environment.
|
||||||
|
|
||||||
|
import { readFileSync } from "node:fs";
|
||||||
|
import { dirname, resolve } from "node:path";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
||||||
|
const snapshot = JSON.parse(readFileSync(resolve(ROOT, "site/assets/snapshot.json"), "utf8"));
|
||||||
|
|
||||||
|
const api = process.env.GITHUB_API_URL || "https://git.wallacenet.ca/api/v1";
|
||||||
|
const repo = process.env.GITHUB_REPOSITORY || "devadmin/OpenCodeGoEvals";
|
||||||
|
const token = process.env.GITEA_TOKEN || process.env.GITHUB_TOKEN;
|
||||||
|
|
||||||
|
if (!snapshot.newModels?.length) {
|
||||||
|
console.log("no new models — nothing to report");
|
||||||
|
if (snapshot.deltas?.length) {
|
||||||
|
console.log("score changes since last refresh:");
|
||||||
|
for (const d of snapshot.deltas) console.log(` ${d.id}: ${d.from} → ${d.to}`);
|
||||||
|
}
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { CATALOG } = await import(resolve(ROOT, "site/assets/catalog.js"));
|
||||||
|
const rows = snapshot.newModels
|
||||||
|
.map((id) => CATALOG.find((c) => c.id === id))
|
||||||
|
.filter(Boolean)
|
||||||
|
.map(
|
||||||
|
(c) =>
|
||||||
|
`| ${c.name} | ${c.lab || "undisclosed"} | $${c.price.in}/${c.price.out} | ${c.ctx ? (c.ctx / 1e6).toFixed(0) + "M" : "n/a"} | ${c.description || "—"} |`
|
||||||
|
);
|
||||||
|
|
||||||
|
const body = [
|
||||||
|
"The weekly catalogue refresh found model(s) that are live in OpenCode Go but have no",
|
||||||
|
"hand-written write-up yet.",
|
||||||
|
"",
|
||||||
|
"| Model | Lab | Price $/1M | Context | Vendor description |",
|
||||||
|
"|---|---|---|---|---|",
|
||||||
|
...rows,
|
||||||
|
"",
|
||||||
|
"To add them:",
|
||||||
|
"",
|
||||||
|
"1. Add an entry to `site/assets/data.js` under `GO_MODELS` with `id`, `best` (targeting tags),",
|
||||||
|
" `blurb`, `target` and `caveats`.",
|
||||||
|
"2. Run `node scripts/build-models-md.mjs` to regenerate `MODELS.md`.",
|
||||||
|
"3. Commit — CI publishes the site.",
|
||||||
|
"",
|
||||||
|
`Detected ${new Date().toISOString().slice(0, 10)}.`
|
||||||
|
].join("\n");
|
||||||
|
|
||||||
|
if (!token) {
|
||||||
|
console.log("no token in environment — would file an issue with:\n");
|
||||||
|
console.log(body);
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = await fetch(`${api}/repos/${repo}/issues`, {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
Authorization: `token ${token}`,
|
||||||
|
"User-Agent": "opencode-go-evals-bot"
|
||||||
|
},
|
||||||
|
body: JSON.stringify({ title: `New model(s) need write-ups: ${snapshot.newModels.join(", ")}`, body })
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!res.ok) {
|
||||||
|
console.error(`could not create issue: ${res.status} ${await res.text()}`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
const issue = await res.json();
|
||||||
|
console.log(`opened issue #${issue.number}: ${issue.html_url}`);
|
||||||
@@ -1,179 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
// Regenerates site/assets/evals.js from live sources.
|
|
||||||
//
|
|
||||||
// node scripts/refresh-evals.mjs
|
|
||||||
//
|
|
||||||
// Sources
|
|
||||||
// - Artificial Analysis model pages (https://artificialanalysis.ai/models/<slug>)
|
|
||||||
// The benchmark payload is embedded in the page as React Server Component flight data.
|
|
||||||
// - OpenCode Data model JSON (https://opencode.ai/data/<lab>/<model>.json)
|
|
||||||
// for context windows and OpenCode Go list prices.
|
|
||||||
//
|
|
||||||
// Usage of the AI slug differs slightly from the OpenCode Go model id, so they are
|
|
||||||
// mapped explicitly below.
|
|
||||||
|
|
||||||
import { writeFileSync } from "node:fs";
|
|
||||||
import { GO_MODELS } from "../site/assets/data.js";
|
|
||||||
import { dirname, resolve } from "node:path";
|
|
||||||
import { fileURLToPath } from "node:url";
|
|
||||||
|
|
||||||
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
||||||
const UA =
|
|
||||||
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36";
|
|
||||||
|
|
||||||
// go model id -> { aa: artificial analysis slug, od: opencode data path }
|
|
||||||
const MODELS = {
|
|
||||||
"minimax-m3.1-flash-free": { aa: "minimax-m3-1-flash", od: "minimax/minimax-m3-1-flash" },
|
|
||||||
"gemini-4-argon-contributor": { aa: "gemini-4-argon", od: "google/gemini-4-argon" },
|
|
||||||
"claude-haiku-5-5": { aa: "claude-haiku-5-5", od: "anthropic/claude-haiku-5-5" },
|
|
||||||
"beam-free": { aa: "reflection-beam", od: "reflection/beam" },
|
|
||||||
// No Artificial Analysis entry for these two yet — they stay empty rather than
|
|
||||||
// borrowing a different model's numbers (LongCat 2.0 / Hy3 are not LongCat 2.5 / Hy4).
|
|
||||||
"longcat-2.5-preview-free": { aa: null, od: "meituan/longcat-2-5-preview" },
|
|
||||||
"mimo-v2.6-pro": { aa: "mimo-v2-6-pro", od: "xiaomi/mimo-v2-6-pro" },
|
|
||||||
"gpt-6-luna": { aa: "gpt-6-luna", od: "openai/gpt-6-luna" },
|
|
||||||
"grok-4.7": { aa: "grok-4-7", od: "xai/grok-4-7" },
|
|
||||||
"step-5-preview": { aa: "step-5", od: "stepfun/step-5-preview" },
|
|
||||||
"deepseek-v4.1-flash": { aa: "deepseek-v4-1-flash", od: "deepseek/deepseek-v4-1-flash" },
|
|
||||||
"muse-spark-1.3-contributor": { aa: "muse-spark-1-3", od: "meta/muse-spark-1-3-contributor" },
|
|
||||||
"hy4-preview": { aa: null, od: "tencent/hy4-preview" },
|
|
||||||
"qwen3.8-flash": { aa: "qwen3-8-flash-next", od: "alibaba/qwen3-8-flash" },
|
|
||||||
"glm-5.3-flash": { aa: "glm-5-3-flash", od: "zhipuai/glm-5-3-flash" },
|
|
||||||
"glm-5.3": { aa: "glm-5-3", od: "zhipuai/glm-5-3" },
|
|
||||||
"qwen3.8-max": { aa: "qwen3-8-max", od: "alibaba/qwen3-8-max" },
|
|
||||||
"kimi-k3": { aa: "kimi-k3", od: "moonshotai/kimi-k3" },
|
|
||||||
"kimi-k2.7-code": { aa: "kimi-k2-7-code", od: "moonshotai/kimi-k2-7-code" },
|
|
||||||
"qwen3.7-plus": { aa: "qwen3-7-plus", od: "alibaba/qwen3-7-plus" },
|
|
||||||
"minimax-m3": { aa: "minimax-m3", od: "minimax/minimax-m3" },
|
|
||||||
"deepseek-v4-pro": { aa: "deepseek-v4-pro", od: "deepseek/deepseek-v4-pro" },
|
|
||||||
"mimo-v2.5-pro": { aa: "mimo-v2-5-pro", od: "xiaomi/mimo-v2-5-pro" },
|
|
||||||
"mimo-v2.5": { aa: "mimo-v2-5-0424", od: "xiaomi/mimo-v2-5" }
|
|
||||||
};
|
|
||||||
|
|
||||||
const pct = (v) => (v === null || v === undefined ? null : Math.round(v * 1000) / 10);
|
|
||||||
|
|
||||||
/* --- Artificial Analysis page parsing ------------------------------------ */
|
|
||||||
function flightPayload(html) {
|
|
||||||
const parts = [];
|
|
||||||
const re = /self\.__next_f\.push\(\[1,"/g;
|
|
||||||
let m;
|
|
||||||
while ((m = re.exec(html))) {
|
|
||||||
const start = re.lastIndex;
|
|
||||||
const end = html.indexOf('"])</script>', start);
|
|
||||||
if (end < 0) continue;
|
|
||||||
try {
|
|
||||||
parts.push(JSON.parse('"' + html.slice(start, end).replace(/\\\//g, "/") + '"'));
|
|
||||||
} catch {
|
|
||||||
/* ignore chunk */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return parts.join("");
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractModelObjects(html) {
|
|
||||||
const payload = flightPayload(html);
|
|
||||||
const out = {};
|
|
||||||
const re = /"slug":"/g;
|
|
||||||
let m;
|
|
||||||
while ((m = re.exec(payload))) {
|
|
||||||
const start = payload.lastIndexOf('{"id":"', m.index);
|
|
||||||
if (start < 0) continue;
|
|
||||||
let depth = 0, inStr = false, esc = false, k = start;
|
|
||||||
for (k = start; k < payload.length; k++) {
|
|
||||||
const c = payload[k];
|
|
||||||
if (esc) { esc = false; continue; }
|
|
||||||
if (c === "\\") { esc = true; continue; }
|
|
||||||
if (c === '"') { inStr = !inStr; continue; }
|
|
||||||
if (inStr) continue;
|
|
||||||
if (c === "{") depth++;
|
|
||||||
else if (c === "}") { depth--; if (depth === 0) { k++; break; } }
|
|
||||||
}
|
|
||||||
let obj;
|
|
||||||
try { obj = JSON.parse(payload.slice(start, k)); } catch { continue; }
|
|
||||||
if (obj && obj.slug && obj.intelligenceIndex != null) out[obj.slug] = obj;
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchAA(slug) {
|
|
||||||
const res = await fetch(`https://artificialanalysis.ai/models/${slug}`, { headers: { "user-agent": UA } });
|
|
||||||
if (!res.ok) return null;
|
|
||||||
const models = extractModelObjects(await res.text());
|
|
||||||
return models[slug] || null;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchOD(path) {
|
|
||||||
try {
|
|
||||||
const res = await fetch(`https://opencode.ai/data/${path}.json`);
|
|
||||||
if (!res.ok) return null;
|
|
||||||
return (await res.json()).model;
|
|
||||||
} catch {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* --- build ---------------------------------------------------------------- */
|
|
||||||
// Names, OpenCode Go list prices and free-tier flags come from site/assets/data.js
|
|
||||||
// (hand-maintained from the OpenCode Go docs), so the chart always shows Go pricing
|
|
||||||
// rather than the provider's public list price.
|
|
||||||
const CATALOG = Object.fromEntries(GO_MODELS.map((m) => [m.id, m]));
|
|
||||||
|
|
||||||
const rows = [];
|
|
||||||
for (const [id, { aa, od }] of Object.entries(MODELS)) {
|
|
||||||
const [aaModel, odModel] = await Promise.all([aa ? fetchAA(aa) : null, fetchOD(od)]);
|
|
||||||
if (!aaModel) {
|
|
||||||
console.warn(` ! no Artificial Analysis entry for ${id}${aa ? ` (slug ${aa})` : ""} — left empty`);
|
|
||||||
const cat = CATALOG[id];
|
|
||||||
rows.push({
|
|
||||||
id, n: cat?.name || odModel?.name || id, lab: cat?.lab || odModel?.labName || "",
|
|
||||||
free: cat ? !!cat.free : !(odModel?.priceUsdPer1M?.input),
|
|
||||||
pi: cat?.price?.in ?? odModel?.priceUsdPer1M?.input ?? 0,
|
|
||||||
po: cat?.price?.out ?? odModel?.priceUsdPer1M?.output ?? 0, ii: null,
|
|
||||||
fc: null, scicode: null, tb21: null, tb40: null, tbh: null, tau2: null, taub: null, apex: null,
|
|
||||||
analyst: null, auto: null, gpqa: null, critpt: null, hle: null, lcr: null, ifbench: null,
|
|
||||||
mmmu: null, gdpv: null, gdppdf: null, ctx: odModel?.contextTokens ?? 1048576
|
|
||||||
});
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
const cat = CATALOG[id];
|
|
||||||
const price = cat?.price || odModel?.priceUsdPer1M || {};
|
|
||||||
const ctx = odModel?.contextTokens ?? aaModel.contextWindowTokens ?? 1048576;
|
|
||||||
const free = cat ? !!cat.free : !(odModel?.priceUsdPer1M?.input);
|
|
||||||
rows.push({
|
|
||||||
id,
|
|
||||||
n: cat?.name || aaModel.name,
|
|
||||||
lab: cat?.lab || odModel?.labName || aaModel.name,
|
|
||||||
free,
|
|
||||||
pi: price.in ?? price.input ?? 0,
|
|
||||||
po: price.out ?? price.output ?? 0,
|
|
||||||
ii: Math.round(aaModel.intelligenceIndex * 10) / 10,
|
|
||||||
fc: pct(aaModel.frontierCode),
|
|
||||||
scicode: pct(aaModel.scicode),
|
|
||||||
tb21: pct(aaModel.terminalBench21),
|
|
||||||
tb40: pct(aaModel.terminalBench40),
|
|
||||||
tbh: pct(aaModel.terminalbenchHard),
|
|
||||||
tau2: pct(aaModel.tau2),
|
|
||||||
taub: pct(aaModel.tauBanking),
|
|
||||||
apex: pct(aaModel.apexAgents),
|
|
||||||
analyst: pct(aaModel.analystAgent),
|
|
||||||
auto: pct(aaModel.automationBenchPartialScore),
|
|
||||||
gpqa: pct(aaModel.gpqa),
|
|
||||||
critpt: pct(aaModel.critpt),
|
|
||||||
hle: pct(aaModel.hle),
|
|
||||||
lcr: pct(aaModel.lcr),
|
|
||||||
ifbench: pct(aaModel.ifbench),
|
|
||||||
mmmu: pct(aaModel.mmmuPro),
|
|
||||||
gdpv: pct(aaModel.gdpvalNormalized),
|
|
||||||
gdppdf: pct(aaModel.gdpPdfAllPass),
|
|
||||||
ctx
|
|
||||||
});
|
|
||||||
console.log(` + ${id} (index ${rows.at(-1).ii})`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const header = `// Evaluation data scraped from Artificial Analysis model pages (single consistent harness).
|
|
||||||
// Values are already scaled to 0-100. Regenerate with: node scripts/refresh-evals.mjs
|
|
||||||
export const RAW = [
|
|
||||||
`;
|
|
||||||
const body = rows.map((r) => " " + JSON.stringify(r)).join(",\n");
|
|
||||||
writeFileSync(resolve(ROOT, "site/assets/evals.js"), header + body + "\n];\n");
|
|
||||||
console.log(`\nwrote site/assets/evals.js with ${rows.length} models`);
|
|
||||||
@@ -0,0 +1,283 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
// Weekly evaluation refresh.
|
||||||
|
//
|
||||||
|
// node scripts/sync-catalog.mjs
|
||||||
|
//
|
||||||
|
// Pulls three things and regenerates the auto-generated parts of the site:
|
||||||
|
//
|
||||||
|
// 1. OpenCode Go catalogue -> models.dev/api.json, provider "opencode-go"
|
||||||
|
// (pricing, context window, modalities, release date, vendor description)
|
||||||
|
// 2. Benchmark scores -> Artificial Analysis model pages
|
||||||
|
// 3. Human-written layer -> site/assets/data.js (never touched by this script)
|
||||||
|
//
|
||||||
|
// Outputs
|
||||||
|
// site/assets/catalog.js catalogue metadata for every model currently in Go
|
||||||
|
// site/assets/evals.js benchmark scores per model
|
||||||
|
// site/assets/snapshot.json when the data was taken + what changed
|
||||||
|
// MODELS.md markdown rendering of the catalogue
|
||||||
|
//
|
||||||
|
// The human layer (site/assets/data.js) wins on anything it defines, so hand-written
|
||||||
|
// "targeted for" descriptions survive a refresh. New models show up with the vendor
|
||||||
|
// description and a NEEDS-WRITE-UP flag until someone writes them up.
|
||||||
|
|
||||||
|
import { writeFileSync } from "node:fs";
|
||||||
|
import { dirname, resolve } from "node:path";
|
||||||
|
import { fileURLToPath } from "node:url";
|
||||||
|
|
||||||
|
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
||||||
|
const UA =
|
||||||
|
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126 Safari/537.36";
|
||||||
|
|
||||||
|
/* Artificial Analysis slug overrides where the slug is not the model id. */
|
||||||
|
const AA_OVERRIDES = {
|
||||||
|
"gemini-4-argon-contributor": "gemini-4-argon",
|
||||||
|
"beam-free": "reflection-beam",
|
||||||
|
"step-5-preview": "step-5",
|
||||||
|
"muse-spark-1.3-contributor": "muse-spark-1-3",
|
||||||
|
"muse-spark-1.2-contributor": "muse-spark-1-2",
|
||||||
|
"qwen3.8-flash": "qwen3-8-flash-next",
|
||||||
|
"qwen3.7-max": "qwen3-7-max",
|
||||||
|
"mimo-v2.5": "mimo-v2-5-0424",
|
||||||
|
"mimo-v2.5-pro": "mimo-v2-5-pro",
|
||||||
|
"mimo-v2.6-pro": "mimo-v2-6-pro",
|
||||||
|
"mimo-v2.6-flash": "mimo-v2-6-flash",
|
||||||
|
"minimax-m2.5": "minimax-m2-5",
|
||||||
|
"minimax-m2.7": "minimax-m2-7",
|
||||||
|
"hy3": "hy3",
|
||||||
|
"kimi-k2.6": "kimi-k2-6",
|
||||||
|
"glm-5.2": "glm-5-2",
|
||||||
|
"longcat-2.0": "longcat-2-0"
|
||||||
|
};
|
||||||
|
|
||||||
|
const pct = (v) => (v === null || v === undefined ? null : Math.round(v * 1000) / 10);
|
||||||
|
|
||||||
|
/* --- Artificial Analysis page parsing ------------------------------------ */
|
||||||
|
function flightPayload(html) {
|
||||||
|
const parts = [];
|
||||||
|
const re = /self\.__next_f\.push\(\[1,"/g;
|
||||||
|
let m;
|
||||||
|
while ((m = re.exec(html))) {
|
||||||
|
const start = re.lastIndex;
|
||||||
|
const end = html.indexOf('"])</script>', start);
|
||||||
|
if (end < 0) continue;
|
||||||
|
try {
|
||||||
|
parts.push(JSON.parse('"' + html.slice(start, end).replace(/\\\//g, "/") + '"'));
|
||||||
|
} catch {
|
||||||
|
/* ignore malformed chunk */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return parts.join("");
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractModelObjects(html) {
|
||||||
|
const payload = flightPayload(html);
|
||||||
|
const out = {};
|
||||||
|
const re = /"slug":"/g;
|
||||||
|
let m;
|
||||||
|
while ((m = re.exec(payload))) {
|
||||||
|
const start = payload.lastIndexOf('{"id":"', m.index);
|
||||||
|
if (start < 0) continue;
|
||||||
|
let depth = 0, inStr = false, esc = false, k = start;
|
||||||
|
for (k = start; k < payload.length; k++) {
|
||||||
|
const c = payload[k];
|
||||||
|
if (esc) { esc = false; continue; }
|
||||||
|
if (c === "\\") { esc = true; continue; }
|
||||||
|
if (c === '"') { inStr = !inStr; continue; }
|
||||||
|
if (inStr) continue;
|
||||||
|
if (c === "{") depth++;
|
||||||
|
else if (c === "}") { depth--; if (depth === 0) { k++; break; } }
|
||||||
|
}
|
||||||
|
let obj;
|
||||||
|
try { obj = JSON.parse(payload.slice(start, k)); } catch { continue; }
|
||||||
|
if (obj && obj.slug && obj.intelligenceIndex != null) out[obj.slug] = obj;
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchAA(slug) {
|
||||||
|
const res = await fetch(`https://artificialanalysis.ai/models/${slug}`, { headers: { "user-agent": UA } });
|
||||||
|
if (!res.ok) return null;
|
||||||
|
const models = extractModelObjects(await res.text());
|
||||||
|
return models[slug] || null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function aaCandidates(id, canonical) {
|
||||||
|
const last = (canonical || id).split("/").pop();
|
||||||
|
const raw = [AA_OVERRIDES[id], id, last, id.replace(/-free$/, ""), id.replace(/-contributor$/, "")];
|
||||||
|
// Artificial Analysis slugs replace dots with dashes (deepseek-v4.1-flash -> deepseek-v4-1-flash)
|
||||||
|
const variants = [];
|
||||||
|
for (const c of raw) {
|
||||||
|
if (!c) continue;
|
||||||
|
variants.push(c);
|
||||||
|
const dashed = c.replace(/\./g, "-");
|
||||||
|
variants.push(dashed);
|
||||||
|
variants.push(dashed.replace(/-free$/, ""));
|
||||||
|
}
|
||||||
|
return [...new Set(variants)];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --- sources -------------------------------------------------------------- */
|
||||||
|
async function fetchCatalog() {
|
||||||
|
const res = await fetch("https://models.dev/api.json", { headers: { "user-agent": UA } });
|
||||||
|
if (!res.ok) throw new Error(`models.dev returned ${res.status}`);
|
||||||
|
const all = await res.json();
|
||||||
|
const go = all["opencode-go"];
|
||||||
|
if (!go) throw new Error('no "opencode-go" provider in models.dev/api.json');
|
||||||
|
return go.models;
|
||||||
|
}
|
||||||
|
|
||||||
|
function modalitiesOf(m) {
|
||||||
|
const inp = (m.modalities?.input || ["text"]).join(", ");
|
||||||
|
const out = (m.modalities?.output || ["text"]).join(", ");
|
||||||
|
return `${inp} in → ${out} out`;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchLiveGoIds() {
|
||||||
|
try {
|
||||||
|
const res = await fetch("https://opencode.ai/inference/go/v1/models", { headers: { "user-agent": UA } });
|
||||||
|
if (!res.ok) return null;
|
||||||
|
const j = await res.json();
|
||||||
|
return (j.data || []).map((m) => m.id);
|
||||||
|
} catch {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --- main ------------------------------------------------------------------ */
|
||||||
|
const catalogModels = await fetchCatalog();
|
||||||
|
const liveIds = await fetchLiveGoIds();
|
||||||
|
const ids = Object.keys(catalogModels);
|
||||||
|
console.log(`catalog: ${ids.length} models in the OpenCode Go provider`);
|
||||||
|
|
||||||
|
const catalog = [];
|
||||||
|
const scores = [];
|
||||||
|
|
||||||
|
for (const id of ids) {
|
||||||
|
const m = catalogModels[id];
|
||||||
|
const cost = m.cost || {};
|
||||||
|
const free = !cost.input && !cost.output;
|
||||||
|
const canonical = m.canonical_model_id || null;
|
||||||
|
|
||||||
|
let aa = null;
|
||||||
|
for (const slug of aaCandidates(id, canonical)) {
|
||||||
|
aa = await fetchAA(slug);
|
||||||
|
if (aa) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const row = {
|
||||||
|
id,
|
||||||
|
n: m.name || id,
|
||||||
|
lab: canonical ? canonical.split("/")[0] : "",
|
||||||
|
released: m.release_date || "",
|
||||||
|
price: { in: cost.input ?? 0, out: cost.output ?? 0 },
|
||||||
|
free,
|
||||||
|
ctx: m.limit?.context ?? null,
|
||||||
|
modalities: modalitiesOf(m),
|
||||||
|
description: m.description || "",
|
||||||
|
canonical,
|
||||||
|
openWeights: !!m.open_weights
|
||||||
|
};
|
||||||
|
catalog.push(row);
|
||||||
|
|
||||||
|
scores.push({
|
||||||
|
id,
|
||||||
|
n: row.n,
|
||||||
|
lab: row.lab,
|
||||||
|
free,
|
||||||
|
pi: row.price.in,
|
||||||
|
po: row.price.out,
|
||||||
|
ii: aa ? Math.round(aa.intelligenceIndex * 10) / 10 : null,
|
||||||
|
fc: pct(aa?.frontierCode),
|
||||||
|
scicode: pct(aa?.scicode),
|
||||||
|
tb21: pct(aa?.terminalBench21),
|
||||||
|
tb40: pct(aa?.terminalBench40),
|
||||||
|
tbh: pct(aa?.terminalbenchHard),
|
||||||
|
tau2: pct(aa?.tau2),
|
||||||
|
taub: pct(aa?.tauBanking),
|
||||||
|
apex: pct(aa?.apexAgents),
|
||||||
|
analyst: pct(aa?.analystAgent),
|
||||||
|
auto: pct(aa?.automationBenchPartialScore),
|
||||||
|
gpqa: pct(aa?.gpqa),
|
||||||
|
critpt: pct(aa?.critpt),
|
||||||
|
hle: pct(aa?.hle),
|
||||||
|
lcr: pct(aa?.lcr),
|
||||||
|
ifbench: pct(aa?.ifbench),
|
||||||
|
mmmu: pct(aa?.mmmuPro),
|
||||||
|
gdpv: pct(aa?.gdpvalNormalized),
|
||||||
|
gdppdf: pct(aa?.gdpPdfAllPass),
|
||||||
|
ctx: row.ctx ?? 1048576
|
||||||
|
});
|
||||||
|
console.log(` ${aa ? "+" : "-"} ${id.padEnd(32)} ${aa ? "index " + aa.intelligenceIndex.toFixed(1) : "no public evals"}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --- diff against the previous snapshot ---------------------------------- */
|
||||||
|
let previous = { models: [] };
|
||||||
|
try {
|
||||||
|
previous = JSON.parse(
|
||||||
|
await (await import("node:fs/promises")).readFile(resolve(ROOT, "site/assets/snapshot.json"), "utf8")
|
||||||
|
);
|
||||||
|
} catch {
|
||||||
|
/* first run */
|
||||||
|
}
|
||||||
|
const prevIds = previous.models || [];
|
||||||
|
const newModels = ids.filter((i) => !prevIds.includes(i));
|
||||||
|
const removedModels = prevIds.filter((i) => !ids.includes(i));
|
||||||
|
const prevScores = Object.fromEntries((previous.scores || []).map((s) => [s.id, s.ii]));
|
||||||
|
const deltas = scores
|
||||||
|
.filter((s) => s.ii !== null && prevScores[s.id] !== undefined && prevScores[s.id] !== null)
|
||||||
|
.map((s) => ({ id: s.id, from: prevScores[s.id], to: s.ii, delta: Math.round((s.ii - prevScores[s.id]) * 10) / 10 }))
|
||||||
|
.filter((d) => d.delta !== 0)
|
||||||
|
.sort((a, b) => Math.abs(b.delta) - Math.abs(a.delta));
|
||||||
|
|
||||||
|
const snapshot = {
|
||||||
|
generated: new Date().toISOString(),
|
||||||
|
models: ids,
|
||||||
|
scores: scores.map((s) => ({ id: s.id, ii: s.ii })),
|
||||||
|
newModels,
|
||||||
|
removedModels,
|
||||||
|
deltas,
|
||||||
|
liveCatalogSize: liveIds ? liveIds.length : null,
|
||||||
|
notInLiveCatalog: liveIds ? ids.filter((i) => !liveIds.includes(i)) : []
|
||||||
|
};
|
||||||
|
|
||||||
|
/* --- write files ---------------------------------------------------------- */
|
||||||
|
writeFileSync(
|
||||||
|
resolve(ROOT, "site/assets/catalog.js"),
|
||||||
|
`// AUTO-GENERATED by scripts/sync-catalog.mjs — do not edit by hand.
|
||||||
|
// Source: models.dev/api.json (provider "opencode-go") + Artificial Analysis.
|
||||||
|
export const CATALOG = ${JSON.stringify(catalog, null, 1)};
|
||||||
|
|
||||||
|
export const SNAPSHOT = ${JSON.stringify(
|
||||||
|
{
|
||||||
|
generated: snapshot.generated,
|
||||||
|
models: snapshot.models.length,
|
||||||
|
newModels: snapshot.newModels,
|
||||||
|
removedModels: snapshot.removedModels,
|
||||||
|
deltas: snapshot.deltas,
|
||||||
|
notInLiveCatalog: snapshot.notInLiveCatalog
|
||||||
|
},
|
||||||
|
null,
|
||||||
|
1
|
||||||
|
)};
|
||||||
|
`
|
||||||
|
);
|
||||||
|
|
||||||
|
writeFileSync(
|
||||||
|
resolve(ROOT, "site/assets/evals.js"),
|
||||||
|
`// AUTO-GENERATED by scripts/sync-catalog.mjs — do not edit by hand.
|
||||||
|
// Benchmark scores from Artificial Analysis (single consistent harness), scaled to 0-100.
|
||||||
|
export const RAW = ${JSON.stringify(scores, null, 1)};
|
||||||
|
`
|
||||||
|
);
|
||||||
|
|
||||||
|
writeFileSync(resolve(ROOT, "site/assets/snapshot.json"), JSON.stringify(snapshot, null, 2) + "\n");
|
||||||
|
|
||||||
|
console.log("\nnew models:", newModels.length ? newModels.join(", ") : "none");
|
||||||
|
console.log("removed models:", removedModels.length ? removedModels.join(", ") : "none");
|
||||||
|
if (deltas.length) {
|
||||||
|
console.log("score changes:");
|
||||||
|
for (const d of deltas) console.log(` ${d.id}: ${d.from} → ${d.to} (${d.delta > 0 ? "+" : ""}${d.delta})`);
|
||||||
|
} else {
|
||||||
|
console.log("score changes: none");
|
||||||
|
}
|
||||||
|
console.log("\nwrote site/assets/catalog.js, evals.js, snapshot.json");
|
||||||
+65
-38
@@ -1,7 +1,34 @@
|
|||||||
|
import { CATALOG, SNAPSHOT } from "./catalog.js";
|
||||||
import { RAW } from "./evals.js";
|
import { RAW } from "./evals.js";
|
||||||
import { GO_MODELS, FREE_NOTES, CATEGORIES } from "./data.js";
|
import { GO_MODELS, FREE_NOTES } from "./data.js";
|
||||||
|
|
||||||
/* ---------- shared helpers ---------- */
|
/* ---------- merge the three layers -----------------------------------------
|
||||||
|
catalog.js auto-generated — every model currently in OpenCode Go
|
||||||
|
evals.js auto-generated — benchmark scores per model
|
||||||
|
data.js hand-written — what each model is targeted for
|
||||||
|
--------------------------------------------------------------------------- */
|
||||||
|
const DESC = Object.fromEntries(GO_MODELS.map((m) => [m.id, m]));
|
||||||
|
const SCORES = Object.fromEntries(RAW.map((m) => [m.id, m]));
|
||||||
|
|
||||||
|
const MODELS = CATALOG.map((c) => {
|
||||||
|
const d = DESC[c.id] || {};
|
||||||
|
const s = SCORES[c.id] || {};
|
||||||
|
const m = {
|
||||||
|
...c,
|
||||||
|
best: d.best || [],
|
||||||
|
blurb: d.blurb || c.description || "No description published yet.",
|
||||||
|
target: d.target || "",
|
||||||
|
caveats: d.caveats || [],
|
||||||
|
written: !!d.blurb,
|
||||||
|
ii: s.ii ?? null,
|
||||||
|
tasks: {},
|
||||||
|
src: {}
|
||||||
|
};
|
||||||
|
m.blend = m.free ? 0 : 0.7 * m.price.in + 0.3 * m.price.out;
|
||||||
|
return m;
|
||||||
|
});
|
||||||
|
|
||||||
|
/* ---------- shared helpers ------------------------------------------------ */
|
||||||
const el = (id) => document.getElementById(id);
|
const el = (id) => document.getElementById(id);
|
||||||
const tip = el("tip");
|
const tip = el("tip");
|
||||||
function showTip(html, e) {
|
function showTip(html, e) {
|
||||||
@@ -40,32 +67,31 @@ const TASKS = [
|
|||||||
{ key: "pro", label: "Professional work", picks: [["gdpv", "GDPval-AA"], ["gdppdf", "GDP-PDF"]] }
|
{ key: "pro", label: "Professional work", picks: [["gdpv", "GDPval-AA"], ["gdppdf", "GDP-PDF"]] }
|
||||||
];
|
];
|
||||||
|
|
||||||
RAW.forEach((m) => {
|
MODELS.forEach((m) => {
|
||||||
m.tasks = {}; m.src = {};
|
|
||||||
TASKS.forEach((t) => {
|
TASKS.forEach((t) => {
|
||||||
for (const [f, label] of t.picks) {
|
for (const [f, label] of t.picks) {
|
||||||
const v = m[f];
|
const v = SCORES[m.id]?.[f];
|
||||||
if (v !== null && v !== undefined) { m.tasks[t.key] = v; m.src[t.key] = label; break; }
|
if (v !== null && v !== undefined) { m.tasks[t.key] = v; m.src[t.key] = label; break; }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
m.blend = m.free ? 0 : 0.7 * m.pi + 0.3 * m.po;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const byId = Object.fromEntries(RAW.map((m) => [m.id, m]));
|
const scored = MODELS.filter((m) => m.ii !== null);
|
||||||
|
|
||||||
/* ---------- header cards ---------- */
|
|
||||||
const scored = RAW.filter((m) => m.ii !== null);
|
|
||||||
const topOverall = scored.slice().sort((a, b) => b.ii - a.ii)[0];
|
const topOverall = scored.slice().sort((a, b) => b.ii - a.ii)[0];
|
||||||
const bestValue = scored.filter((m) => !m.free).slice().sort((a, b) => b.ii / b.blend - a.ii / a.blend)[0];
|
const bestValue = scored.filter((m) => !m.free).slice().sort((a, b) => b.ii / b.blend - a.ii / a.blend)[0];
|
||||||
|
const snapshotDate = (SNAPSHOT.generated || "").slice(0, 10);
|
||||||
|
|
||||||
|
/* ---------- header cards -------------------------------------------------- */
|
||||||
el("cards").innerHTML = [
|
el("cards").innerHTML = [
|
||||||
["Models in Go", RAW.length, "in the Go catalog"],
|
["Models in Go", MODELS.length, "in the OpenCode Go catalogue"],
|
||||||
["With public evals", scored.length, "Artificial Analysis harness"],
|
["With public evals", scored.length, "Artificial Analysis harness"],
|
||||||
["Top overall", topOverall.n, "index " + topOverall.ii.toFixed(1)],
|
["Top overall", topOverall.n, "index " + topOverall.ii.toFixed(1)],
|
||||||
["Best value", bestValue.n, "index " + bestValue.ii.toFixed(1) + " at $" + bestValue.blend.toFixed(2) + "/1M"],
|
["Best value", bestValue.n, "index " + bestValue.ii.toFixed(1) + " at $" + bestValue.blend.toFixed(2) + "/1M"],
|
||||||
["Free tier", RAW.filter((m) => m.free).length, "limited-time free models"]
|
["Free tier", MODELS.filter((m) => m.free).length, "limited-time free models"],
|
||||||
|
["Data snapshot", snapshotDate, "refreshed weekly by CI"]
|
||||||
].map(([k, v, s]) => `<div class="card"><div class="k">${k}</div><div class="v">${v}</div><div class="sub" style="font-size:11px">${s}</div></div>`).join("");
|
].map(([k, v, s]) => `<div class="card"><div class="k">${k}</div><div class="v">${v}</div><div class="sub" style="font-size:11px">${s}</div></div>`).join("");
|
||||||
|
|
||||||
/* ---------- matrix ---------- */
|
/* ---------- matrix --------------------------------------------------------- */
|
||||||
const cols = [
|
const cols = [
|
||||||
{ key: "name", label: "Model", get: (m) => m.n, txt: true },
|
{ key: "name", label: "Model", get: (m) => m.n, txt: true },
|
||||||
{ key: "ii", label: "Index", get: (m) => m.ii },
|
{ key: "ii", label: "Index", get: (m) => m.ii },
|
||||||
@@ -78,10 +104,10 @@ function renderMatrix() {
|
|||||||
const best = {};
|
const best = {};
|
||||||
cols.forEach((c) => {
|
cols.forEach((c) => {
|
||||||
if (c.key === "name" || c.key === "blend") return;
|
if (c.key === "name" || c.key === "blend") return;
|
||||||
const vals = RAW.map((m) => c.get(m)).filter((v) => v !== null && v !== undefined);
|
const vals = MODELS.map((m) => c.get(m)).filter((v) => v !== null && v !== undefined);
|
||||||
best[c.key] = vals.length ? Math.max(...vals) : null;
|
best[c.key] = vals.length ? Math.max(...vals) : null;
|
||||||
});
|
});
|
||||||
const rows = RAW.slice().sort((a, b) => {
|
const rows = MODELS.slice().sort((a, b) => {
|
||||||
const c = cols.find((x) => x.key === sortKey);
|
const c = cols.find((x) => x.key === sortKey);
|
||||||
const va = c.get(a), vb = c.get(b);
|
const va = c.get(a), vb = c.get(b);
|
||||||
if (sortKey === "name") return String(va).localeCompare(String(vb)) * sortDir;
|
if (sortKey === "name") return String(va).localeCompare(String(vb)) * sortDir;
|
||||||
@@ -95,7 +121,8 @@ function renderMatrix() {
|
|||||||
});
|
});
|
||||||
h += "</tr></thead><tbody>";
|
h += "</tr></thead><tbody>";
|
||||||
rows.forEach((m) => {
|
rows.forEach((m) => {
|
||||||
h += `<tr><td class="name">${m.n}${m.free ? '<span class="tag free">free</span>' : ""}<div class="price">${m.lab} · $${m.pi}/${m.po} · ${(m.ctx / 1e6).toFixed(m.ctx % 1e6 ? 2 : 0)}M ctx${m.ii === null ? " · no public evals" : ""}</div></td>`;
|
const ctx = m.ctx ? `${(m.ctx / 1e6).toFixed(m.ctx % 1e6 ? 2 : 0)}M ctx` : "ctx n/a";
|
||||||
|
h += `<tr><td class="name">${m.n}${m.free ? '<span class="tag free">free</span>' : ""}${!m.written ? '<span class="tag warn">no write-up</span>' : ""}<div class="price">${m.lab || "—"} · $${m.price.in}/${m.price.out} · ${ctx}${m.ii === null ? " · no public evals" : ""}</div></td>`;
|
||||||
cols.forEach((c) => {
|
cols.forEach((c) => {
|
||||||
if (c.key === "name") return;
|
if (c.key === "name") return;
|
||||||
const v = c.get(m);
|
const v = c.get(m);
|
||||||
@@ -127,7 +154,7 @@ function renderMatrix() {
|
|||||||
}
|
}
|
||||||
renderMatrix();
|
renderMatrix();
|
||||||
|
|
||||||
/* ---------- svg helpers ---------- */
|
/* ---------- svg helpers ---------------------------------------------------- */
|
||||||
function svgEl(tag, attrs, parent) {
|
function svgEl(tag, attrs, parent) {
|
||||||
const e = document.createElementNS("http://www.w3.org/2000/svg", tag);
|
const e = document.createElementNS("http://www.w3.org/2000/svg", tag);
|
||||||
for (const k in attrs) e.setAttribute(k, attrs[k]);
|
for (const k in attrs) e.setAttribute(k, attrs[k]);
|
||||||
@@ -135,12 +162,12 @@ function svgEl(tag, attrs, parent) {
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------- scatter ---------- */
|
/* ---------- scatter -------------------------------------------------------- */
|
||||||
(function scatter() {
|
(function scatter() {
|
||||||
const box = el("scatter"); box.innerHTML = "";
|
const box = el("scatter"); box.innerHTML = "";
|
||||||
const W = 520, H = 340, m = { l: 52, r: 16, t: 16, b: 44 };
|
const W = 520, H = 340, m = { l: 52, r: 16, t: 16, b: 44 };
|
||||||
const svg = svgEl("svg", { viewBox: `0 0 ${W} ${H}`, width: "100%", height: "auto" }, box);
|
const svg = svgEl("svg", { viewBox: `0 0 ${W} ${H}`, width: "100%", height: "auto" }, box);
|
||||||
const pts = scored.filter((x) => x.ii !== null);
|
const pts = scored.filter((x) => x.ii !== null && x.blend > 0);
|
||||||
const maxX = Math.max(...pts.map((p) => p.blend)) * 1.1 || 1, maxY = 60;
|
const maxX = Math.max(...pts.map((p) => p.blend)) * 1.1 || 1, maxY = 60;
|
||||||
const X = (v) => m.l + (v / maxX) * (W - m.l - m.r);
|
const X = (v) => m.l + (v / maxX) * (W - m.l - m.r);
|
||||||
const Y = (v) => H - m.b - (v / maxY) * (H - m.t - m.b);
|
const Y = (v) => H - m.b - (v / maxY) * (H - m.t - m.b);
|
||||||
@@ -158,21 +185,21 @@ function svgEl(tag, attrs, parent) {
|
|||||||
const c = svgEl("circle", { cx: X(p.blend), cy: Y(p.ii), r: 5, fill: p.free ? "#2ecc71" : "#7cc4ff", "fill-opacity": 0.85, stroke: "#0b0d12", "stroke-width": 1.5 }, svg);
|
const c = svgEl("circle", { cx: X(p.blend), cy: Y(p.ii), r: 5, fill: p.free ? "#2ecc71" : "#7cc4ff", "fill-opacity": 0.85, stroke: "#0b0d12", "stroke-width": 1.5 }, svg);
|
||||||
const lbl = svgEl("text", { x: X(p.blend) + 8, y: Y(p.ii) + 3, fill: "#c8cede", "font-size": 10 }, svg);
|
const lbl = svgEl("text", { x: X(p.blend) + 8, y: Y(p.ii) + 3, fill: "#c8cede", "font-size": 10 }, svg);
|
||||||
lbl.textContent = p.n.length > 22 ? p.n.slice(0, 21) + "…" : p.n;
|
lbl.textContent = p.n.length > 22 ? p.n.slice(0, 21) + "…" : p.n;
|
||||||
c.onmousemove = (e) => showTip(`<b>${p.n}</b><br>Index ${p.ii.toFixed(1)}<br>${p.free ? "Free" : `$${p.pi} in / $${p.po} out per 1M`}`, e);
|
c.onmousemove = (e) => showTip(`<b>${p.n}</b><br>Index ${p.ii.toFixed(1)}<br>${p.free ? "Free" : `$${p.price.in} in / $${p.price.out} out per 1M`}`, e);
|
||||||
c.onmouseleave = hideTip;
|
c.onmouseleave = hideTip;
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
/* ---------- value ranking ---------- */
|
/* ---------- value ranking -------------------------------------------------- */
|
||||||
(function valueChart() {
|
(function valueChart() {
|
||||||
const box = el("value"); box.innerHTML = "";
|
const box = el("value"); box.innerHTML = "";
|
||||||
const W = 520, H = 340, m = { l: 96, r: 16, t: 12, b: 28 };
|
const W = 520, H = 340, m = { l: 96, r: 16, t: 12, b: 28 };
|
||||||
const svg = svgEl("svg", { viewBox: `0 0 ${W} ${H}`, width: "100%", height: "auto" }, box);
|
const svg = svgEl("svg", { viewBox: `0 0 ${W} ${H}`, width: "100%", height: "auto" }, box);
|
||||||
const pts = scored.filter((p) => !p.free).map((p) => ({ ...p, v: p.ii / p.blend })).sort((a, b) => b.v - a.v);
|
const pts = scored.filter((p) => !p.free && p.blend > 0).map((p) => ({ ...p, v: p.ii / p.blend })).sort((a, b) => b.v - a.v);
|
||||||
const maxV = Math.max(...pts.map((p) => p.v)) * 1.08;
|
const maxV = Math.max(...pts.map((p) => p.v)) * 1.08;
|
||||||
const step = (H - m.t - m.b) / Math.max(pts.length, 1);
|
const step = (H - m.t - m.b) / Math.max(pts.length, 1);
|
||||||
pts.forEach((p, i) => {
|
pts.forEach((p, i) => {
|
||||||
const y = 26 + i * step;
|
const y = 22 + i * step;
|
||||||
const w = Math.max(2, (p.v / maxV) * (W - m.l - m.r));
|
const w = Math.max(2, (p.v / maxV) * (W - m.l - m.r));
|
||||||
svgEl("rect", { x: m.l, y: y - 9, width: w, height: 15, rx: 3, fill: "#7cc4ff", "fill-opacity": 0.85 }, svg);
|
svgEl("rect", { x: m.l, y: y - 9, width: w, height: 15, rx: 3, fill: "#7cc4ff", "fill-opacity": 0.85 }, svg);
|
||||||
svgEl("text", { x: m.l - 8, y: y + 3, fill: "#c8cede", "font-size": 11, "text-anchor": "end" }, svg).textContent = p.n.length > 17 ? p.n.slice(0, 16) + "…" : p.n;
|
svgEl("text", { x: m.l - 8, y: y + 3, fill: "#c8cede", "font-size": 11, "text-anchor": "end" }, svg).textContent = p.n.length > 17 ? p.n.slice(0, 16) + "…" : p.n;
|
||||||
@@ -182,26 +209,25 @@ function svgEl(tag, attrs, parent) {
|
|||||||
svgEl("text", { x: m.l, y: H - 6, fill: "#2ecc71", "font-size": 11 }, svg).textContent = "Free models (not ranked): " + free.map((f) => f.n).join(", ");
|
svgEl("text", { x: m.l, y: H - 6, fill: "#2ecc71", "font-size": 11 }, svg).textContent = "Free models (not ranked): " + free.map((f) => f.n).join(", ");
|
||||||
})();
|
})();
|
||||||
|
|
||||||
/* ---------- model guide ---------- */
|
/* ---------- model guide ---------------------------------------------------- */
|
||||||
function modelCard(m) {
|
function modelCard(m) {
|
||||||
const tags = (m.best || []).map((b) => {
|
const tags = (m.best || []).map((b) => {
|
||||||
const key = Object.keys(CATEGORIES).find((k) => CATEGORIES[k].label.toLowerCase() === b.toLowerCase());
|
const key = b === "Free tier" ? "free" : b === "Image generation" ? "imagegen" : "";
|
||||||
const cls = key === "free" ? "tag free" : key === "imagegen" ? "tag warn" : "tag";
|
const cls = key === "free" ? "tag free" : key === "imagegen" ? "tag warn" : "tag";
|
||||||
return `<span class="${cls}">${b}</span>`;
|
return `<span class="${cls}">${b}</span>`;
|
||||||
}).join("");
|
}).join("");
|
||||||
const ev = byId[m.id];
|
const idx = m.ii !== null ? `index ${m.ii.toFixed(1)}` : "no public evals";
|
||||||
const idx = ev && ev.ii !== null ? `index ${ev.ii.toFixed(1)}` : "no public evals";
|
const ctx = m.ctx ? `${(m.ctx / 1e6).toFixed(m.ctx % 1e6 ? 2 : 0)}M context` : "context n/a";
|
||||||
return `<div class="card2">
|
return `<div class="card2">
|
||||||
<div class="hd"><h3>${m.name}</h3><span class="lab">${m.lab}</span></div>
|
<div class="hd"><h3>${m.n}</h3><span class="lab">${m.lab || "undisclosed"}</span></div>
|
||||||
<div class="meta">released ${m.released} · $${m.price.in}/${m.price.out} per 1M · ${m.ctx} context · ${m.modalities} · ${idx}</div>
|
<div class="meta">released ${m.released || "?"} · $${m.price.in}/${m.price.out} per 1M · ${ctx} · ${m.modalities} · ${idx}</div>
|
||||||
<div>${tags}</div>
|
<div>${tags}</div>
|
||||||
<p class="blurb">${m.blurb}</p>
|
<p class="blurb">${m.blurb}</p>
|
||||||
<p><b>Targeted for:</b> ${m.target}</p>
|
${m.target ? `<p><b>Targeted for:</b> ${m.target}</p>` : `<p><i>No write-up yet — this model was added to the catalogue automatically and needs a description.</i></p>`}
|
||||||
${m.caveats && m.caveats.length ? `<div class="caveats"><b>Caveats</b><ul>${m.caveats.map((c) => `<li>${c}</li>`).join("")}</ul></div>` : ""}
|
${m.caveats && m.caveats.length ? `<div class="caveats"><b>Caveats</b><ul>${m.caveats.map((c) => `<li>${c}</li>`).join("")}</ul></div>` : ""}
|
||||||
</div>`;
|
</div>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// loose keyword matching so a model's plain-language tags still hit the right filter
|
|
||||||
const FILTER_WORDS = {
|
const FILTER_WORDS = {
|
||||||
agentic: ["agent"],
|
agentic: ["agent"],
|
||||||
coding: ["cod", "repo"],
|
coding: ["cod", "repo"],
|
||||||
@@ -213,17 +239,17 @@ const FILTER_WORDS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function renderGuide(filter) {
|
function renderGuide(filter) {
|
||||||
const list = GO_MODELS.filter((m) => {
|
const list = MODELS.filter((m) => {
|
||||||
if (!filter || filter === "all") return true;
|
if (!filter || filter === "all") return true;
|
||||||
if (filter === "free") return m.free;
|
if (filter === "free") return m.free;
|
||||||
if (filter === "new") return m.released >= "2026-08-01";
|
if (filter === "new") return (m.released || "") >= "2026-08-01";
|
||||||
const words = FILTER_WORDS[filter] || [];
|
const words = FILTER_WORDS[filter] || [];
|
||||||
const hay = m.best.join(" ").toLowerCase();
|
const hay = m.best.join(" ").toLowerCase();
|
||||||
return words.some((w) => hay.includes(w));
|
return words.some((w) => hay.includes(w));
|
||||||
});
|
});
|
||||||
const extra = filter === "all" || filter === "free" ? `
|
const extra = filter === "all" || filter === "free" ? `
|
||||||
<div class="note"><b>Also free outside the Go plan</b><br>${FREE_NOTES.map((f) => `<b>${f.name}</b> (${f.lab}, ${f.where}) — ${f.target} <i>${f.note}</i>`).join("<br>")}</div>` : "";
|
<div class="note"><b>Also free outside the Go plan</b><br>${FREE_NOTES.map((f) => `<b>${f.name}</b> (${f.lab}, ${f.where}) — ${f.target} <i>${f.note}</i>`).join("<br>")}</div>` : "";
|
||||||
const none = list.length ? "" : `<div class="note">No model in the Go catalog matches this category. Every Go model is text-output — none of them generate images, so image generation needs a different provider.</div>`;
|
const none = list.length ? "" : `<div class="note">No model in the Go catalogue matches this category. Every Go model is text-output — none of them generate images, so image generation needs a different provider.</div>`;
|
||||||
el("guide").innerHTML = list.map(modelCard).join("") + extra + none;
|
el("guide").innerHTML = list.map(modelCard).join("") + extra + none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +275,8 @@ el("foot").innerHTML = `
|
|||||||
• Terminal-agent, tool-use, science and professional-work columns fall back to a second benchmark when a model has not been run on the first (Terminal-Bench 2.1 → 4.0 → Hard; τ²-bench → τ-bench Banking; GPQA → CritPt; GDPval → GDP-PDF). Scores are comparable within a column, but the underlying benchmark can differ per row — hover to check.<br>
|
• Terminal-agent, tool-use, science and professional-work columns fall back to a second benchmark when a model has not been run on the first (Terminal-Bench 2.1 → 4.0 → Hard; τ²-bench → τ-bench Banking; GPQA → CritPt; GDPval → GDP-PDF). Scores are comparable within a column, but the underlying benchmark can differ per row — hover to check.<br>
|
||||||
• "Index" is the Artificial Analysis Intelligence Index, a weighted composite of those evaluations.<br>
|
• "Index" is the Artificial Analysis Intelligence Index, a weighted composite of those evaluations.<br>
|
||||||
• Prices are OpenCode Go list prices per 1M tokens (input/output). Blended price = 70% input / 30% output.<br>
|
• Prices are OpenCode Go list prices per 1M tokens (input/output). Blended price = 70% input / 30% output.<br>
|
||||||
• Free-tier models (MiniMax M3.1 Flash Free, Beam Free, LongCat 2.5 Preview Free) are limited-time offers with unlimited included usage.<br>
|
• Free-tier models are limited-time offers. Contributor-tier models (Gemini 4 Argon, Muse Spark) may use your prompts and completions for training.<br>
|
||||||
• Hy4 preview and LongCat 2.5 Preview Free have no public third-party evaluations yet, so they show as "n/a". Qwen3.8 Flash maps to Artificial Analysis' "Qwen3.8-Flash-Next" entry.<br>
|
• Models marked "no write-up" were added to the catalogue automatically and do not yet have a hand-written description; models with no public third-party evaluation show "n/a" rather than borrowed numbers.<br>
|
||||||
• No model in the Go catalog generates images — all Go models are text-output. "Image understanding" rows mean the model can read images, video, PDFs or screenshots as input.<br><br>
|
• No model in the Go catalogue generates images — all are text-output. "Image understanding" means the model can read images, video, PDFs or screenshots as input.<br><br>
|
||||||
Sources: <a href="https://artificialanalysis.ai">Artificial Analysis</a> (benchmarks, Intelligence Index), <a href="https://opencode.ai/data">OpenCode Data</a> (catalog, usage, context windows) and <a href="https://opencode.ai/docs/go">OpenCode Go docs</a> (pricing, allowances, privacy). Vendor announcements for model positioning. Retrieved 2026-10-21.`;
|
Sources: <a href="https://artificialanalysis.ai">Artificial Analysis</a> (benchmarks, Intelligence Index), <a href="https://models.dev">models.dev</a> (Go catalogue, pricing, context, modalities), <a href="https://opencode.ai/data">OpenCode Data</a> (usage and retention) and the <a href="https://opencode.ai/docs/go">OpenCode Go docs</a> (allowances, privacy). Vendor announcements for model positioning.<br>
|
||||||
|
Data snapshot: <b>${snapshotDate || "n/a"}</b> — refreshed weekly by the <code>weekly-eval.yml</code> workflow.`;
|
||||||
|
|||||||
@@ -0,0 +1,545 @@
|
|||||||
|
// AUTO-GENERATED by scripts/sync-catalog.mjs — do not edit by hand.
|
||||||
|
// Source: models.dev/api.json (provider "opencode-go") + Artificial Analysis.
|
||||||
|
export const CATALOG = [
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.5-pro",
|
||||||
|
"n": "MiMo V2.5 Pro",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"released": "2026-04-22",
|
||||||
|
"price": {
|
||||||
|
"in": 0.435,
|
||||||
|
"out": 0.87
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "MiMo pro model for strong multimodal reasoning and agent execution",
|
||||||
|
"canonical": "xiaomi/mimo-v2.5-pro",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "step-5-preview",
|
||||||
|
"n": "Step 5 Preview",
|
||||||
|
"lab": "stepfun",
|
||||||
|
"released": "2026-09-16",
|
||||||
|
"price": {
|
||||||
|
"in": 1,
|
||||||
|
"out": 2.7
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "StepFun's next-generation flagship base model for coding and professional knowledge work, with native text, image, and video input and a 1M-token context window",
|
||||||
|
"canonical": "stepfun/step-5-preview",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "muse-spark-1.3-contributor",
|
||||||
|
"n": "Muse Spark 1.3 Contributor",
|
||||||
|
"lab": "meta",
|
||||||
|
"released": "2026-09-02",
|
||||||
|
"price": {
|
||||||
|
"in": 0.1,
|
||||||
|
"out": 0.2
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, video, pdf, audio in → text out",
|
||||||
|
"description": "Muse Spark 1.3 is a multimodal reasoning model from Meta for coding and agentic workflows.",
|
||||||
|
"canonical": "meta/muse-spark-1.3",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.8-flash",
|
||||||
|
"n": "Qwen3.8 Flash",
|
||||||
|
"lab": "alibaba",
|
||||||
|
"released": "2026-08-26",
|
||||||
|
"price": {
|
||||||
|
"in": 0.15,
|
||||||
|
"out": 0.47
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "Qwen vision-language model for visual reasoning, documents, and agent tasks",
|
||||||
|
"canonical": "alibaba/qwen3.8-flash",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kimi-k3",
|
||||||
|
"n": "Kimi K3",
|
||||||
|
"lab": "moonshotai",
|
||||||
|
"released": "2026-07-16",
|
||||||
|
"price": {
|
||||||
|
"in": 3,
|
||||||
|
"out": 15
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "Multimodal Kimi model with 1M context and toggleable max-effort thinking for long-horizon agent work",
|
||||||
|
"canonical": "moonshotai/kimi-k3",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "deepseek-v4.1-flash",
|
||||||
|
"n": "DeepSeek V4.1 Flash",
|
||||||
|
"lab": "deepseek",
|
||||||
|
"released": "2026-09-10",
|
||||||
|
"price": {
|
||||||
|
"in": 0.15,
|
||||||
|
"out": 0.6
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image in → text out",
|
||||||
|
"description": "DeepSeek V4.1 Flash model for reasoning and agentic coding",
|
||||||
|
"canonical": "deepseek/deepseek-v4.1-flash",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m2.7",
|
||||||
|
"n": "MiniMax-M2.7",
|
||||||
|
"lab": "minimax",
|
||||||
|
"released": "2026-03-18",
|
||||||
|
"price": {
|
||||||
|
"in": 0.3,
|
||||||
|
"out": 1.2
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 204800,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "MiniMax model for chat, coding, office work, and agentic tasks",
|
||||||
|
"canonical": "minimax/MiniMax-M2.7",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m3.1-flash-free",
|
||||||
|
"n": "MiniMax M3.1 Flash Free",
|
||||||
|
"lab": "minimax",
|
||||||
|
"released": "2026-10-19",
|
||||||
|
"price": {
|
||||||
|
"in": 0,
|
||||||
|
"out": 0
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "Frontier multimodal coding model with 1M context window and tunable thinking depth",
|
||||||
|
"canonical": "minimax/MiniMax-M3.1-Flash",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gemini-4-argon-contributor",
|
||||||
|
"n": "Gemini 4 Argon Contributor",
|
||||||
|
"lab": "google",
|
||||||
|
"released": "2026-10-13",
|
||||||
|
"price": {
|
||||||
|
"in": 4,
|
||||||
|
"out": 20
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, video, audio, pdf in → text out",
|
||||||
|
"description": "Google's flagship reasoning model for complex software engineering, deep math and science, and long-horizon autonomous agents",
|
||||||
|
"canonical": "google/gemini-4-argon",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.7-plus",
|
||||||
|
"n": "Qwen3.7 Plus",
|
||||||
|
"lab": "alibaba",
|
||||||
|
"released": "2026-06-02",
|
||||||
|
"price": {
|
||||||
|
"in": 0.4,
|
||||||
|
"out": 1.6
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "Multimodal reasoning model for visual analysis, planning, and tool use",
|
||||||
|
"canonical": "alibaba/qwen3.7-plus",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "longcat-2.5-preview-free",
|
||||||
|
"n": "LongCat 2.5 Preview Free",
|
||||||
|
"lab": "meituan",
|
||||||
|
"released": "2026-09-25",
|
||||||
|
"price": {
|
||||||
|
"in": 0,
|
||||||
|
"out": 0
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image in → text out",
|
||||||
|
"description": "Meituan's multimodal reasoning model for coding and agent tasks, with image understanding and a 1M-token context window",
|
||||||
|
"canonical": "meituan/longcat-2.5-preview",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.6-pro",
|
||||||
|
"n": "MiMo-V2.6-Pro",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"released": "2026-09-22",
|
||||||
|
"price": {
|
||||||
|
"in": 0.435,
|
||||||
|
"out": 0.87
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, audio, video in → text out",
|
||||||
|
"description": "Stronger MiMo Pro tier for multimodal reasoning and coding-agent execution",
|
||||||
|
"canonical": "xiaomi/mimo-v2.6-pro",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kimi-k2.7-code",
|
||||||
|
"n": "Kimi K2.7 Code",
|
||||||
|
"lab": "moonshotai",
|
||||||
|
"released": "2026-06-12",
|
||||||
|
"price": {
|
||||||
|
"in": 0.95,
|
||||||
|
"out": 4
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 262144,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "Coding-focused Kimi model, stronger on long-horizon repo work with less overthinking",
|
||||||
|
"canonical": "moonshotai/kimi-k2.7-code",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "longcat-2.0",
|
||||||
|
"n": "LongCat-2.0",
|
||||||
|
"lab": "meituan",
|
||||||
|
"released": "2026-06-30",
|
||||||
|
"price": {
|
||||||
|
"in": 0.3,
|
||||||
|
"out": 1.2
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "Meituan LongCat-2.0, a reasoning model with tool calling and a 1M-token context window",
|
||||||
|
"canonical": "meituan/longcat-2.0",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.2",
|
||||||
|
"n": "GLM-5.2",
|
||||||
|
"lab": "zhipuai",
|
||||||
|
"released": "2026-06-13",
|
||||||
|
"price": {
|
||||||
|
"in": 1.4,
|
||||||
|
"out": 4.4
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "Open flagship GLM for long-horizon coding agents and million-token context work",
|
||||||
|
"canonical": "zhipuai/glm-5.2",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m3",
|
||||||
|
"n": "MiniMax-M3",
|
||||||
|
"lab": "minimax",
|
||||||
|
"released": "2026-06-01",
|
||||||
|
"price": {
|
||||||
|
"in": 0.3,
|
||||||
|
"out": 1.2
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "MiniMax multimodal coding model for long-context reasoning and agent tasks",
|
||||||
|
"canonical": "minimax/MiniMax-M3",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.6-flash",
|
||||||
|
"n": "MiMo-V2.6-Flash",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"released": "2026-09-22",
|
||||||
|
"price": {
|
||||||
|
"in": 0.14,
|
||||||
|
"out": 0.28
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, audio, video in → text out",
|
||||||
|
"description": "MiMo Flash model for multimodal coding agents and long-context automation",
|
||||||
|
"canonical": "xiaomi/mimo-v2.6-flash",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "step-5-preview-free",
|
||||||
|
"n": "Step 5 Preview Free",
|
||||||
|
"lab": "stepfun",
|
||||||
|
"released": "2026-09-16",
|
||||||
|
"price": {
|
||||||
|
"in": 0,
|
||||||
|
"out": 0
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "StepFun's next-generation flagship base model for coding and professional knowledge work, with native text, image, and video input and a 1M-token context window",
|
||||||
|
"canonical": "stepfun/step-5-preview",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hy4-preview",
|
||||||
|
"n": "Hy4 preview",
|
||||||
|
"lab": "tencent",
|
||||||
|
"released": "2026-08-28",
|
||||||
|
"price": {
|
||||||
|
"in": 0.834,
|
||||||
|
"out": 2.501
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1024000,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "A next-generation productivity model with significantly enhanced Agent and complex task execution capabilities.",
|
||||||
|
"canonical": "tencent/hy4-preview",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "beam-free",
|
||||||
|
"n": "Beam Free",
|
||||||
|
"lab": "reflection",
|
||||||
|
"released": "2026-10-05",
|
||||||
|
"price": {
|
||||||
|
"in": 0,
|
||||||
|
"out": 0
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "Sparse mixture-of-experts reasoning model with 23B active parameters for coding and agentic workflows",
|
||||||
|
"canonical": "reflection/beam-1.0-501b-a23b",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cat-jam-free",
|
||||||
|
"n": "Cat Jam Free",
|
||||||
|
"lab": "",
|
||||||
|
"released": "2026-10-12",
|
||||||
|
"price": {
|
||||||
|
"in": 0,
|
||||||
|
"out": 0
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "A text-only reasoning model for coding and agentic workflows, with tool calling and structured JSON outputs.",
|
||||||
|
"canonical": null,
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "claude-haiku-5-5",
|
||||||
|
"n": "Claude Haiku 5.5",
|
||||||
|
"lab": "anthropic",
|
||||||
|
"released": "2026-10-07",
|
||||||
|
"price": {
|
||||||
|
"in": 0.1,
|
||||||
|
"out": 0.5
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, pdf in → text out",
|
||||||
|
"description": "Fast Claude model for responsive assistance, classification, and lightweight agents",
|
||||||
|
"canonical": "anthropic/claude-haiku-5-5",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "grok-4.7",
|
||||||
|
"n": "Grok 4.7",
|
||||||
|
"lab": "xai",
|
||||||
|
"released": "2026-09-21",
|
||||||
|
"price": {
|
||||||
|
"in": 2,
|
||||||
|
"out": 6
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 500000,
|
||||||
|
"modalities": "text, image, pdf in → text out",
|
||||||
|
"description": "xAI's frontier model for long-running agents, coding, knowledge work, and visual projects",
|
||||||
|
"canonical": "xai/grok-4.7",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "muse-spark-1.2-contributor",
|
||||||
|
"n": "Muse Spark 1.2 Contributor",
|
||||||
|
"lab": "meta",
|
||||||
|
"released": "2026-08-05",
|
||||||
|
"price": {
|
||||||
|
"in": 0.1,
|
||||||
|
"out": 0.2
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, video, pdf, audio in → text out",
|
||||||
|
"description": "Muse Spark 1.2 is a coding-focused update to Muse Spark 1.1 with improvements in code generation, complex debugging, codebase understanding, and end-to-end developer workflows.",
|
||||||
|
"canonical": "meta/muse-spark-1.2",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.3-flash",
|
||||||
|
"n": "GLM-5.3-Flash",
|
||||||
|
"lab": "zhipuai",
|
||||||
|
"released": "2026-08-26",
|
||||||
|
"price": {
|
||||||
|
"in": 0.15,
|
||||||
|
"out": 0.5
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video, pdf in → text out",
|
||||||
|
"description": "Native multimodal GLM model for efficient coding and long-horizon agent tasks",
|
||||||
|
"canonical": "zhipuai/glm-5.3-flash",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.8-max",
|
||||||
|
"n": "Qwen3.8 Max",
|
||||||
|
"lab": "alibaba",
|
||||||
|
"released": "2026-08-03",
|
||||||
|
"price": {
|
||||||
|
"in": 2,
|
||||||
|
"out": 6
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "2.4-trillion-parameter multimodal flagship for coding, professional work, and long-horizon agentic workflows",
|
||||||
|
"canonical": "alibaba/qwen3.8-max",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hy3",
|
||||||
|
"n": "Hy3",
|
||||||
|
"lab": "tencent",
|
||||||
|
"released": "2026-07-06",
|
||||||
|
"price": {
|
||||||
|
"in": 0.14,
|
||||||
|
"out": 0.58
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 256000,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "Tencent Hy reasoning model for coding, instruction following, and agent tasks",
|
||||||
|
"canonical": "tencent/hy3",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.5",
|
||||||
|
"n": "MiMo V2.5",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"released": "2026-04-22",
|
||||||
|
"price": {
|
||||||
|
"in": 0.14,
|
||||||
|
"out": 0.28
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text, image, audio, video in → text out",
|
||||||
|
"description": "MiMo omni model for text, image, video, audio, and agents",
|
||||||
|
"canonical": "xiaomi/mimo-v2.5",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "deepseek-v4-pro",
|
||||||
|
"n": "DeepSeek V4 Pro (New)",
|
||||||
|
"lab": "deepseek",
|
||||||
|
"released": "2026-04-24",
|
||||||
|
"price": {
|
||||||
|
"in": 0.66,
|
||||||
|
"out": 1.98
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "Flagship DeepSeek model for coding, reasoning, and agentic work",
|
||||||
|
"canonical": "deepseek/deepseek-v4-pro",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.3",
|
||||||
|
"n": "GLM-5.3",
|
||||||
|
"lab": "zhipuai",
|
||||||
|
"released": "2026-08-14",
|
||||||
|
"price": {
|
||||||
|
"in": 1.4,
|
||||||
|
"out": 4.4
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1000000,
|
||||||
|
"modalities": "text in → text out",
|
||||||
|
"description": "Flagship GLM model for long-horizon coding, agents, and complex project delivery",
|
||||||
|
"canonical": "zhipuai/glm-5.3",
|
||||||
|
"openWeights": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gpt-5.6-luna",
|
||||||
|
"n": "GPT-5.6 Luna",
|
||||||
|
"lab": "openai",
|
||||||
|
"released": "2026-07-09",
|
||||||
|
"price": {
|
||||||
|
"in": 0.2,
|
||||||
|
"out": 1.2
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1050000,
|
||||||
|
"modalities": "text, image, pdf in → text out",
|
||||||
|
"description": "Cost-efficient GPT-5.6 model for fast, high-volume workloads",
|
||||||
|
"canonical": "openai/gpt-5.6-luna",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gpt-6-luna",
|
||||||
|
"n": "GPT-6 Luna",
|
||||||
|
"lab": "openai",
|
||||||
|
"released": "2026-09-22",
|
||||||
|
"price": {
|
||||||
|
"in": 0.1,
|
||||||
|
"out": 0.5
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1050000,
|
||||||
|
"modalities": "text, image, pdf in → text out",
|
||||||
|
"description": "OpenAI's most efficient model for focused, high-volume tasks",
|
||||||
|
"canonical": "openai/gpt-6-luna",
|
||||||
|
"openWeights": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "space-bunny",
|
||||||
|
"n": "Space Bunny",
|
||||||
|
"lab": "",
|
||||||
|
"released": "2026-09-23",
|
||||||
|
"price": {
|
||||||
|
"in": 0.15,
|
||||||
|
"out": 0.6
|
||||||
|
},
|
||||||
|
"free": false,
|
||||||
|
"ctx": 1048576,
|
||||||
|
"modalities": "text, image, video in → text out",
|
||||||
|
"description": "Anonymous preview reasoning model for coding, agentic tasks, tool use, and multimodal input",
|
||||||
|
"canonical": null,
|
||||||
|
"openWeights": false
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export const SNAPSHOT = {
|
||||||
|
"generated": "2026-10-21T17:03:04.948Z",
|
||||||
|
"models": 33,
|
||||||
|
"newModels": [],
|
||||||
|
"removedModels": [],
|
||||||
|
"deltas": [],
|
||||||
|
"notInLiveCatalog": [
|
||||||
|
"step-5-preview-free",
|
||||||
|
"cat-jam-free",
|
||||||
|
"space-bunny"
|
||||||
|
]
|
||||||
|
};
|
||||||
@@ -368,6 +368,158 @@ export const GO_MODELS = [
|
|||||||
target:
|
target:
|
||||||
"Repo-scale SWE work with perception in the loop: MiniMax reports one of the strongest SWE-Bench Verified results in Go, plus good browser and desktop-computer scores (BrowseComp, MCP Atlas, OSWorld). Use it when the agent has to look at a screen and then change code.",
|
"Repo-scale SWE work with perception in the loop: MiniMax reports one of the strongest SWE-Bench Verified results in Go, plus good browser and desktop-computer scores (BrowseComp, MCP Atlas, OSWorld). Use it when the agent has to look at a screen and then change code.",
|
||||||
caveats: ["Text output only.", "Weaker than MiniMax M3.1 Flash on frontier reasoning and long-horizon tasks."]
|
caveats: ["Text output only.", "Weaker than MiniMax M3.1 Flash on frontier reasoning and long-horizon tasks."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "gpt-5.6-luna",
|
||||||
|
name: "GPT-5.6 Luna",
|
||||||
|
lab: "OpenAI",
|
||||||
|
released: "2026-06-01",
|
||||||
|
price: { in: 0.2, out: 1.2 },
|
||||||
|
ctx: "1.05M",
|
||||||
|
modalities: "text, image, PDF in → text out",
|
||||||
|
best: ["Fast & cheap", "High-volume coding", "Agents"],
|
||||||
|
blurb:
|
||||||
|
"Cost-efficient GPT-5.6 model for fast, high-volume workloads.",
|
||||||
|
target:
|
||||||
|
"Throughput work: many small calls, classification, extraction, routing and repetitive edits where latency and cost per call decide the outcome. Keeps the GPT tool-calling behaviour at roughly twice the price of GPT-6 Luna.",
|
||||||
|
caveats: ["Price steps up above 272K tokens of context."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "muse-spark-1.2-contributor",
|
||||||
|
name: "Muse Spark 1.2 Contributor",
|
||||||
|
lab: "Meta",
|
||||||
|
released: "2026-08-01",
|
||||||
|
price: { in: 0.1, out: 0.2 },
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text, image, video, PDF, audio in → text out",
|
||||||
|
best: ["Coding", "Multimodal", "Cheap"],
|
||||||
|
blurb:
|
||||||
|
"Coding-focused update to Muse Spark 1.1 with improvements in code generation, complex debugging, codebase understanding, and end-to-end developer workflows.",
|
||||||
|
target:
|
||||||
|
"The previous Muse generation — kept in Go because it is cheap and coding-focused. Pick it when you want Meta's multimodal input surface at $0.10/$0.20 and 1.3 is not required; otherwise use Muse Spark 1.3.",
|
||||||
|
caveats: ["Contributor tier — prompts and completions may be used to train future Meta models.", "Superseded by Muse Spark 1.3 on long-horizon agent tasks."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "glm-5.2",
|
||||||
|
name: "GLM-5.2",
|
||||||
|
lab: "Zhipu",
|
||||||
|
released: "2026-06-01",
|
||||||
|
price: { in: 1.4, out: 4.4 },
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text only",
|
||||||
|
best: ["Long-horizon coding", "Agents", "Math & science"],
|
||||||
|
blurb:
|
||||||
|
"Open flagship GLM for long-horizon coding agents and million-token context work.",
|
||||||
|
target:
|
||||||
|
"The GLM generation before 5.3: still strong on long-horizon coding agents with a million-token window, and its AIME/HMMT/IMO scores make it the maths-and-science option in the family. GLM-5.3 is the better default where budget allows.",
|
||||||
|
caveats: ["Text input only.", "Expensive per token ($1.40 / $4.40)."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "hy3",
|
||||||
|
name: "Hy3",
|
||||||
|
lab: "Tencent",
|
||||||
|
released: "2026-04-01",
|
||||||
|
price: { in: 0.14, out: 0.58 },
|
||||||
|
ctx: "256K",
|
||||||
|
modalities: "text only",
|
||||||
|
best: ["Cheap", "Reasoning", "Instruction following", "Tool use"],
|
||||||
|
blurb:
|
||||||
|
"Tencent Hy reasoning model for coding, instruction following, and agent tasks.",
|
||||||
|
target:
|
||||||
|
"A cheap reasoning model with unusually strong instruction following (IFBench) and tool use (τ-bench) for its price. Suited to spec-driven agents and short coding loops; the 256K window is the main limitation for repo-scale work.",
|
||||||
|
caveats: ["256K context.", "Text input only."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "mimo-v2.6-flash",
|
||||||
|
name: "MiMo-V2.6-Flash",
|
||||||
|
lab: "Xiaomi",
|
||||||
|
released: "2026-09-22",
|
||||||
|
price: { in: 0.14, out: 0.28 },
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text, image, audio, video in → text out",
|
||||||
|
best: ["Cheap", "Multimodal", "Automation", "Coding agents"],
|
||||||
|
blurb:
|
||||||
|
"MiMo Flash model for multimodal coding agents and long-context automation.",
|
||||||
|
target:
|
||||||
|
"The cheapest multimodal agent in Go at 14¢/28¢ per 1M: bulk automation over long contexts, agents that must read images, video or audio, and the majority of mechanical coding-agent traffic.",
|
||||||
|
caveats: ["Text output only.", "Noticeably weaker than MiMo-V2.6-Pro on hard agentic and security tasks."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "minimax-m2.7",
|
||||||
|
name: "MiniMax M2.7",
|
||||||
|
lab: "MiniMax",
|
||||||
|
released: "2026-05-01",
|
||||||
|
price: { in: 0.3, out: 1.2 },
|
||||||
|
ctx: "200K",
|
||||||
|
modalities: "text only",
|
||||||
|
best: ["Coding", "Office work", "Agentic tasks"],
|
||||||
|
blurb:
|
||||||
|
"MiniMax model for chat, coding, office work, and agentic tasks.",
|
||||||
|
target:
|
||||||
|
"The generation before MiniMax M3: general chat plus coding and office deliverables. Cheap, but the 200K window and older agentic scores make it a fallback now that M3 and M3.1 Flash exist.",
|
||||||
|
caveats: ["200K context — the smallest window in the Go catalogue.", "Superseded by MiniMax M3."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "longcat-2.0",
|
||||||
|
name: "LongCat-2.0",
|
||||||
|
lab: "Meituan",
|
||||||
|
released: "2026-06-29",
|
||||||
|
price: { in: 0.3, out: 1.2 },
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text only",
|
||||||
|
best: ["Coding", "Reasoning", "Long context", "Open weights"],
|
||||||
|
blurb:
|
||||||
|
"Meituan LongCat-2.0, a reasoning model with tool calling and a 1M-token context window.",
|
||||||
|
target:
|
||||||
|
"Long-context reasoning with tool calling at a modest price — useful for repo-scale analysis and document-heavy agent loops. Text-only, so perception work needs the 2.5 preview.",
|
||||||
|
caveats: ["Text input only.", "Superseded by LongCat 2.5 Preview, which adds image input."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "step-5-preview-free",
|
||||||
|
name: "Step 5 Preview Free",
|
||||||
|
lab: "StepFun",
|
||||||
|
released: "2026-09-16",
|
||||||
|
price: { in: 0, out: 0 },
|
||||||
|
free: true,
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text, image, video in → text out",
|
||||||
|
best: ["Free tier", "Coding", "Professional knowledge work", "Multimodal"],
|
||||||
|
blurb:
|
||||||
|
"Free access to StepFun's next-generation flagship base model for coding and professional knowledge work, with native text, image and video input and a 1M-token context window.",
|
||||||
|
target:
|
||||||
|
"Same model as the paid Step 5 Preview, without the token bill — useful for long agent runs and multimodal work while the paid allowance is reserved for the hard tasks.",
|
||||||
|
caveats: ["Limited-time free entry; not present in the live Go catalogue endpoint, so availability may vary."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "cat-jam-free",
|
||||||
|
name: "cat-jam-free",
|
||||||
|
lab: "Undisclosed",
|
||||||
|
released: "2026-10-01",
|
||||||
|
price: { in: 0, out: 0 },
|
||||||
|
free: true,
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text only",
|
||||||
|
best: ["Free tier", "Coding", "Agentic workflows", "Structured output"],
|
||||||
|
blurb:
|
||||||
|
"A text-only reasoning model for coding and agentic workflows, with tool calling and structured JSON outputs.",
|
||||||
|
target:
|
||||||
|
"An anonymous free tier aimed at agents: tool calling and structured JSON output make it useful as a sub-agent or a formatter that has to hand machine-readable results to the next step.",
|
||||||
|
caveats: ["No vendor, no model card, no public evaluation — verify behaviour before depending on it.", "Not listed in the live Go catalogue endpoint."]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "space-bunny",
|
||||||
|
name: "space-bunny",
|
||||||
|
lab: "Undisclosed",
|
||||||
|
released: "2026-10-01",
|
||||||
|
price: { in: 0.15, out: 0.6 },
|
||||||
|
ctx: "1M",
|
||||||
|
modalities: "text, image, video in → text out",
|
||||||
|
best: ["Coding", "Agentic tasks", "Tool use", "Multimodal"],
|
||||||
|
blurb:
|
||||||
|
"Anonymous preview reasoning model for coding, agentic tasks, tool use, and multimodal input.",
|
||||||
|
target:
|
||||||
|
"An unreleased preview model with full multimodal input and tool use, priced like the value tier. It has no vendor behind it and no public evaluation, so treat it as an experiment rather than a recommendation.",
|
||||||
|
caveats: ["No vendor or model card — no published evaluation.", "Not listed in the live Go catalogue endpoint."]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
+926
-25
@@ -1,27 +1,928 @@
|
|||||||
// Evaluation data scraped from Artificial Analysis model pages (single consistent harness).
|
// AUTO-GENERATED by scripts/sync-catalog.mjs — do not edit by hand.
|
||||||
// Values are already scaled to 0-100. Regenerate with: node scripts/refresh-evals.mjs
|
// Benchmark scores from Artificial Analysis (single consistent harness), scaled to 0-100.
|
||||||
export const RAW = [
|
export const RAW = [
|
||||||
{"id":"minimax-m3.1-flash-free","n":"MiniMax M3.1 Flash Free","lab":"MiniMax","free":true,"pi":0,"po":0,"ii":42.7,"fc":38.6,"scicode":53.4,"tb21":null,"tb40":25.8,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":null,"auto":72.5,"gpqa":null,"critpt":22.3,"hle":48,"lcr":79.7,"ifbench":null,"mmmu":79.1,"gdpv":47.9,"gdppdf":20.8,"ctx":1000000},
|
{
|
||||||
{"id":"gemini-4-argon-contributor","n":"Gemini 4 Argon Contributor","lab":"Google","free":false,"pi":4,"po":20,"ii":52.6,"fc":43.5,"scicode":61.8,"tb21":null,"tb40":57.1,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":48.8,"auto":77.5,"gpqa":null,"critpt":27.1,"hle":57.1,"lcr":79.7,"ifbench":null,"mmmu":null,"gdpv":56.2,"gdppdf":21.8,"ctx":1048576},
|
"id": "mimo-v2.5-pro",
|
||||||
{"id":"claude-haiku-5-5","n":"Claude Haiku 5.5","lab":"Anthropic","free":false,"pi":0.1,"po":0.5,"ii":43.4,"fc":41.8,"scicode":55,"tb21":null,"tb40":32.8,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":53.8,"auto":35.4,"gpqa":null,"critpt":18.9,"hle":44.4,"lcr":82.7,"ifbench":null,"mmmu":null,"gdpv":55.9,"gdppdf":20.8,"ctx":1000000},
|
"n": "MiMo V2.5 Pro",
|
||||||
{"id":"beam-free","n":"Beam Free","lab":"Reflection AI","free":true,"pi":0,"po":0,"ii":30.3,"fc":null,"scicode":48.5,"tb21":null,"tb40":3,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":null,"auto":48.5,"gpqa":null,"critpt":13.1,"hle":34.7,"lcr":78,"ifbench":null,"mmmu":null,"gdpv":33.9,"gdppdf":11.6,"ctx":1048576},
|
"lab": "xiaomi",
|
||||||
{"id":"longcat-2.5-preview-free","n":"LongCat 2.5 Preview Free","lab":"Meituan","free":true,"pi":0,"po":0,"ii":null,"fc":null,"scicode":null,"tb21":null,"tb40":null,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":null,"auto":null,"gpqa":null,"critpt":null,"hle":null,"lcr":null,"ifbench":null,"mmmu":null,"gdpv":null,"gdppdf":null,"ctx":1000000},
|
"free": false,
|
||||||
{"id":"mimo-v2.6-pro","n":"MiMo-V2.6-Pro","lab":"Xiaomi","free":false,"pi":0.435,"po":0.87,"ii":46.3,"fc":45.4,"scicode":60.9,"tb21":null,"tb40":34.8,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":37.5,"auto":58.6,"gpqa":null,"critpt":26.6,"hle":49.4,"lcr":86.3,"ifbench":null,"mmmu":null,"gdpv":59.2,"gdppdf":19.2,"ctx":1048576},
|
"pi": 0.435,
|
||||||
{"id":"gpt-6-luna","n":"GPT-6 Luna","lab":"OpenAI","free":false,"pi":0.1,"po":0.5,"ii":38.1,"fc":41.9,"scicode":54.6,"tb21":null,"tb40":12.6,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":43.8,"auto":53.2,"gpqa":null,"critpt":19.4,"hle":38.5,"lcr":83.3,"ifbench":null,"mmmu":79.7,"gdpv":46.6,"gdppdf":22.8,"ctx":1050000},
|
"po": 0.87,
|
||||||
{"id":"grok-4.7","n":"Grok 4.7","lab":"xAI","free":false,"pi":2,"po":6,"ii":46.4,"fc":33.8,"scicode":57.4,"tb21":null,"tb40":25.8,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":52.5,"auto":65.6,"gpqa":null,"critpt":17.7,"hle":43.1,"lcr":76.7,"ifbench":null,"mmmu":null,"gdpv":60.6,"gdppdf":20,"ctx":500000},
|
"ii": 26,
|
||||||
{"id":"step-5-preview","n":"Step 5 Preview","lab":"StepFun","free":false,"pi":1,"po":2.7,"ii":43.7,"fc":38.4,"scicode":58.9,"tb21":null,"tb40":33.3,"tbh":null,"tau2":null,"taub":null,"apex":38,"analyst":35,"auto":51,"gpqa":null,"critpt":20.9,"hle":46.5,"lcr":88.3,"ifbench":null,"mmmu":76.4,"gdpv":54.3,"gdppdf":14.8,"ctx":1000000},
|
"fc": null,
|
||||||
{"id":"deepseek-v4.1-flash","n":"DeepSeek V4.1 Flash","lab":"DeepSeek","free":false,"pi":0.15,"po":0.6,"ii":39.5,"fc":44,"scicode":51.9,"tb21":null,"tb40":26.8,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":35,"auto":68.9,"gpqa":null,"critpt":14.3,"hle":39.2,"lcr":84,"ifbench":null,"mmmu":77,"gdpv":55,"gdppdf":12.8,"ctx":1000000},
|
"scicode": 50.6,
|
||||||
{"id":"muse-spark-1.3-contributor","n":"Muse Spark 1.3 Contributor","lab":"Meta","free":false,"pi":0.1,"po":0.2,"ii":48.1,"fc":40.6,"scicode":58.8,"tb21":84.3,"tb40":33.3,"tbh":null,"tau2":null,"taub":50.5,"apex":null,"analyst":37.5,"auto":57.9,"gpqa":93.5,"critpt":24.9,"hle":48.7,"lcr":83,"ifbench":null,"mmmu":null,"gdpv":59,"gdppdf":26.6,"ctx":1048576},
|
"tb21": 65.2,
|
||||||
{"id":"hy4-preview","n":"Hy4 preview","lab":"Tencent","free":false,"pi":0.834,"po":2.501,"ii":null,"fc":null,"scicode":null,"tb21":null,"tb40":null,"tbh":null,"tau2":null,"taub":null,"apex":null,"analyst":null,"auto":null,"gpqa":null,"critpt":null,"hle":null,"lcr":null,"ifbench":null,"mmmu":null,"gdpv":null,"gdppdf":null,"ctx":1024000},
|
"tb40": 0,
|
||||||
{"id":"qwen3.8-flash","n":"Qwen3.8 Flash","lab":"Alibaba","free":false,"pi":0.15,"po":0.47,"ii":39.8,"fc":null,"scicode":50.6,"tb21":86.1,"tb40":25.3,"tbh":null,"tau2":null,"taub":45.4,"apex":null,"analyst":null,"auto":55.9,"gpqa":92.3,"critpt":11.1,"hle":38,"lcr":79.7,"ifbench":null,"mmmu":79.8,"gdpv":56.4,"gdppdf":15.6,"ctx":1000000},
|
"tbh": 43.2,
|
||||||
{"id":"glm-5.3-flash","n":"GLM-5.3-Flash","lab":"Zhipu","free":false,"pi":0.15,"po":0.5,"ii":41.8,"fc":41,"scicode":51.6,"tb21":84.3,"tb40":32.8,"tbh":null,"tau2":null,"taub":47.2,"apex":null,"analyst":25,"auto":60.4,"gpqa":91.2,"critpt":15.4,"hle":39.9,"lcr":80,"ifbench":null,"mmmu":null,"gdpv":57.1,"gdppdf":15.4,"ctx":1000000},
|
"tau2": 94.2,
|
||||||
{"id":"glm-5.3","n":"GLM-5.3","lab":"Zhipu","free":false,"pi":1.4,"po":4.4,"ii":44.8,"fc":40.1,"scicode":59,"tb21":83.9,"tb40":41.9,"tbh":null,"tau2":null,"taub":50.3,"apex":null,"analyst":38.8,"auto":62.2,"gpqa":91.7,"critpt":19.1,"hle":42.3,"lcr":79.7,"ifbench":null,"mmmu":null,"gdpv":57.5,"gdppdf":11.2,"ctx":1000000},
|
"taub": 9.9,
|
||||||
{"id":"qwen3.8-max","n":"Qwen3.8 Max","lab":"Alibaba","free":false,"pi":2,"po":6,"ii":45.4,"fc":43.2,"scicode":52.1,"tb21":88.8,"tb40":38.9,"tbh":null,"tau2":null,"taub":47.8,"apex":42.4,"analyst":45,"auto":56.2,"gpqa":92.8,"critpt":17.7,"hle":43.1,"lcr":80.3,"ifbench":null,"mmmu":82.8,"gdpv":58.2,"gdppdf":22.8,"ctx":1000000},
|
"apex": 2.4,
|
||||||
{"id":"kimi-k3","n":"Kimi K3","lab":"Moonshot","free":false,"pi":3,"po":15,"ii":43.6,"fc":43.6,"scicode":59.5,"tb21":85,"tb40":12.6,"tbh":null,"tau2":null,"taub":46,"apex":41.3,"analyst":38.8,"auto":58.3,"gpqa":93.5,"critpt":23.4,"hle":46.9,"lcr":88.7,"ifbench":null,"mmmu":80.5,"gdpv":51.6,"gdppdf":22,"ctx":1048576},
|
"analyst": 20,
|
||||||
{"id":"kimi-k2.7-code","n":"Kimi K2.7 Code","lab":"Moonshot","free":false,"pi":0.95,"po":4,"ii":25.8,"fc":null,"scicode":47.8,"tb21":67.4,"tb40":1,"tbh":44.7,"tau2":90.1,"taub":20.2,"apex":null,"analyst":null,"auto":24.5,"gpqa":89.6,"critpt":10,"hle":35,"lcr":79.3,"ifbench":63.1,"mmmu":null,"gdpv":26.9,"gdppdf":11.2,"ctx":262144},
|
"auto": 13.7,
|
||||||
{"id":"qwen3.7-plus","n":"Qwen3.7 Plus","lab":"Alibaba","free":false,"pi":0.4,"po":1.6,"ii":25.2,"fc":null,"scicode":46.1,"tb21":61,"tb40":1,"tbh":47,"tau2":93,"taub":17.5,"apex":22.4,"analyst":null,"auto":17.4,"gpqa":90,"critpt":9.1,"hle":35.6,"lcr":73,"ifbench":78,"mmmu":80.5,"gdpv":13.4,"gdppdf":12.2,"ctx":1000000},
|
"gpqa": 86.6,
|
||||||
{"id":"minimax-m3","n":"MiniMax M3","lab":"MiniMax","free":false,"pi":0.3,"po":1.2,"ii":29.2,"fc":23,"scicode":47.1,"tb21":65.2,"tb40":2,"tbh":42.4,"tau2":88.9,"taub":15.3,"apex":null,"analyst":10,"auto":21.3,"gpqa":92.9,"critpt":3.7,"hle":39,"lcr":83,"ifbench":82.9,"mmmu":78.6,"gdpv":37.1,"gdppdf":9.8,"ctx":1048576},
|
"critpt": 4,
|
||||||
{"id":"deepseek-v4-pro","n":"DeepSeek V4 Pro","lab":"DeepSeek","free":false,"pi":0.66,"po":1.98,"ii":36,"fc":38.8,"scicode":51,"tb21":78.7,"tb40":14.1,"tbh":null,"tau2":null,"taub":39.6,"apex":null,"analyst":null,"auto":56.7,"gpqa":92.8,"critpt":18,"hle":41,"lcr":80.3,"ifbench":null,"mmmu":null,"gdpv":47.4,"gdppdf":11.4,"ctx":1000000},
|
"hle": 35.7,
|
||||||
{"id":"mimo-v2.5-pro","n":"MiMo-V2.5-Pro","lab":"Xiaomi","free":false,"pi":0.435,"po":0.87,"ii":26,"fc":null,"scicode":50.6,"tb21":65.2,"tb40":0,"tbh":43.2,"tau2":94.2,"taub":9.9,"apex":2.4,"analyst":20,"auto":13.7,"gpqa":86.6,"critpt":4,"hle":35.7,"lcr":79.7,"ifbench":79.9,"mmmu":null,"gdpv":31,"gdppdf":4,"ctx":1048576},
|
"lcr": 79.7,
|
||||||
{"id":"mimo-v2.5","n":"MiMo-V2.5","lab":"Xiaomi","free":false,"pi":0.14,"po":0.28,"ii":21.8,"fc":null,"scicode":43.9,"tb21":63.7,"tb40":0,"tbh":41.7,"tau2":90.6,"taub":8.7,"apex":null,"analyst":null,"auto":18.4,"gpqa":84.9,"critpt":3.7,"hle":27.2,"lcr":73,"ifbench":67.1,"mmmu":75.4,"gdpv":24.9,"gdppdf":4,"ctx":1048576}
|
"ifbench": 79.9,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 31,
|
||||||
|
"gdppdf": 4,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "step-5-preview",
|
||||||
|
"n": "Step 5 Preview",
|
||||||
|
"lab": "stepfun",
|
||||||
|
"free": false,
|
||||||
|
"pi": 1,
|
||||||
|
"po": 2.7,
|
||||||
|
"ii": 43.7,
|
||||||
|
"fc": 38.4,
|
||||||
|
"scicode": 58.9,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 33.3,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": 38,
|
||||||
|
"analyst": 35,
|
||||||
|
"auto": 51,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 20.9,
|
||||||
|
"hle": 46.5,
|
||||||
|
"lcr": 88.3,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 76.4,
|
||||||
|
"gdpv": 54.3,
|
||||||
|
"gdppdf": 14.8,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "muse-spark-1.3-contributor",
|
||||||
|
"n": "Muse Spark 1.3 Contributor",
|
||||||
|
"lab": "meta",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.1,
|
||||||
|
"po": 0.2,
|
||||||
|
"ii": 48.1,
|
||||||
|
"fc": 40.6,
|
||||||
|
"scicode": 58.8,
|
||||||
|
"tb21": 84.3,
|
||||||
|
"tb40": 33.3,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 50.5,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 37.5,
|
||||||
|
"auto": 57.9,
|
||||||
|
"gpqa": 93.5,
|
||||||
|
"critpt": 24.9,
|
||||||
|
"hle": 48.7,
|
||||||
|
"lcr": 83,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 59,
|
||||||
|
"gdppdf": 26.6,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.8-flash",
|
||||||
|
"n": "Qwen3.8 Flash",
|
||||||
|
"lab": "alibaba",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.15,
|
||||||
|
"po": 0.47,
|
||||||
|
"ii": 39.8,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 50.6,
|
||||||
|
"tb21": 86.1,
|
||||||
|
"tb40": 25.3,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 45.4,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 55.9,
|
||||||
|
"gpqa": 92.3,
|
||||||
|
"critpt": 11.1,
|
||||||
|
"hle": 38,
|
||||||
|
"lcr": 79.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 79.8,
|
||||||
|
"gdpv": 56.4,
|
||||||
|
"gdppdf": 15.6,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kimi-k3",
|
||||||
|
"n": "Kimi K3",
|
||||||
|
"lab": "moonshotai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 3,
|
||||||
|
"po": 15,
|
||||||
|
"ii": 43.6,
|
||||||
|
"fc": 43.6,
|
||||||
|
"scicode": 59.5,
|
||||||
|
"tb21": 85,
|
||||||
|
"tb40": 12.6,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 46,
|
||||||
|
"apex": 41.3,
|
||||||
|
"analyst": 38.8,
|
||||||
|
"auto": 58.3,
|
||||||
|
"gpqa": 93.5,
|
||||||
|
"critpt": 23.4,
|
||||||
|
"hle": 46.9,
|
||||||
|
"lcr": 88.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 80.5,
|
||||||
|
"gdpv": 51.6,
|
||||||
|
"gdppdf": 22,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "deepseek-v4.1-flash",
|
||||||
|
"n": "DeepSeek V4.1 Flash",
|
||||||
|
"lab": "deepseek",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.15,
|
||||||
|
"po": 0.6,
|
||||||
|
"ii": 39.5,
|
||||||
|
"fc": 44,
|
||||||
|
"scicode": 51.9,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 26.8,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 35,
|
||||||
|
"auto": 68.9,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 14.3,
|
||||||
|
"hle": 39.2,
|
||||||
|
"lcr": 84,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 77,
|
||||||
|
"gdpv": 55,
|
||||||
|
"gdppdf": 12.8,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m2.7",
|
||||||
|
"n": "MiniMax-M2.7",
|
||||||
|
"lab": "minimax",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.3,
|
||||||
|
"po": 1.2,
|
||||||
|
"ii": 22.8,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 50.1,
|
||||||
|
"tb21": 55.4,
|
||||||
|
"tb40": 0,
|
||||||
|
"tbh": 39.4,
|
||||||
|
"tau2": 84.8,
|
||||||
|
"taub": 9.9,
|
||||||
|
"apex": 10.6,
|
||||||
|
"analyst": 11.3,
|
||||||
|
"auto": 4.4,
|
||||||
|
"gpqa": 87.4,
|
||||||
|
"critpt": 0.6,
|
||||||
|
"hle": 29.6,
|
||||||
|
"lcr": 78.3,
|
||||||
|
"ifbench": 75.7,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 25.5,
|
||||||
|
"gdppdf": 6,
|
||||||
|
"ctx": 204800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m3.1-flash-free",
|
||||||
|
"n": "MiniMax M3.1 Flash Free",
|
||||||
|
"lab": "minimax",
|
||||||
|
"free": true,
|
||||||
|
"pi": 0,
|
||||||
|
"po": 0,
|
||||||
|
"ii": 42.7,
|
||||||
|
"fc": 38.6,
|
||||||
|
"scicode": 53.4,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 25.8,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 72.5,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 22.3,
|
||||||
|
"hle": 48,
|
||||||
|
"lcr": 79.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 79.1,
|
||||||
|
"gdpv": 47.9,
|
||||||
|
"gdppdf": 20.8,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gemini-4-argon-contributor",
|
||||||
|
"n": "Gemini 4 Argon Contributor",
|
||||||
|
"lab": "google",
|
||||||
|
"free": false,
|
||||||
|
"pi": 4,
|
||||||
|
"po": 20,
|
||||||
|
"ii": 52.6,
|
||||||
|
"fc": 43.5,
|
||||||
|
"scicode": 61.8,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 57.1,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 48.8,
|
||||||
|
"auto": 77.5,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 27.1,
|
||||||
|
"hle": 57.1,
|
||||||
|
"lcr": 79.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 56.2,
|
||||||
|
"gdppdf": 21.8,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.7-plus",
|
||||||
|
"n": "Qwen3.7 Plus",
|
||||||
|
"lab": "alibaba",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.4,
|
||||||
|
"po": 1.6,
|
||||||
|
"ii": 25.2,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 46.1,
|
||||||
|
"tb21": 61,
|
||||||
|
"tb40": 1,
|
||||||
|
"tbh": 47,
|
||||||
|
"tau2": 93,
|
||||||
|
"taub": 17.5,
|
||||||
|
"apex": 22.4,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 17.4,
|
||||||
|
"gpqa": 90,
|
||||||
|
"critpt": 9.1,
|
||||||
|
"hle": 35.6,
|
||||||
|
"lcr": 73,
|
||||||
|
"ifbench": 78,
|
||||||
|
"mmmu": 80.5,
|
||||||
|
"gdpv": 13.4,
|
||||||
|
"gdppdf": 12.2,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "longcat-2.5-preview-free",
|
||||||
|
"n": "LongCat 2.5 Preview Free",
|
||||||
|
"lab": "meituan",
|
||||||
|
"free": true,
|
||||||
|
"pi": 0,
|
||||||
|
"po": 0,
|
||||||
|
"ii": null,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": null,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": null,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": null,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": null,
|
||||||
|
"hle": null,
|
||||||
|
"lcr": null,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": null,
|
||||||
|
"gdppdf": null,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.6-pro",
|
||||||
|
"n": "MiMo-V2.6-Pro",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.435,
|
||||||
|
"po": 0.87,
|
||||||
|
"ii": 46.3,
|
||||||
|
"fc": 45.4,
|
||||||
|
"scicode": 60.9,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 34.8,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 37.5,
|
||||||
|
"auto": 58.6,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 26.6,
|
||||||
|
"hle": 49.4,
|
||||||
|
"lcr": 86.3,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 59.2,
|
||||||
|
"gdppdf": 19.2,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kimi-k2.7-code",
|
||||||
|
"n": "Kimi K2.7 Code",
|
||||||
|
"lab": "moonshotai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.95,
|
||||||
|
"po": 4,
|
||||||
|
"ii": 25.8,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 47.8,
|
||||||
|
"tb21": 67.4,
|
||||||
|
"tb40": 1,
|
||||||
|
"tbh": 44.7,
|
||||||
|
"tau2": 90.1,
|
||||||
|
"taub": 20.2,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 24.5,
|
||||||
|
"gpqa": 89.6,
|
||||||
|
"critpt": 10,
|
||||||
|
"hle": 35,
|
||||||
|
"lcr": 79.3,
|
||||||
|
"ifbench": 63.1,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 26.9,
|
||||||
|
"gdppdf": 11.2,
|
||||||
|
"ctx": 262144
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "longcat-2.0",
|
||||||
|
"n": "LongCat-2.0",
|
||||||
|
"lab": "meituan",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.3,
|
||||||
|
"po": 1.2,
|
||||||
|
"ii": 19.1,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 36.3,
|
||||||
|
"tb21": 50.2,
|
||||||
|
"tb40": 0,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 13.2,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 4.5,
|
||||||
|
"gpqa": 78,
|
||||||
|
"critpt": 2.6,
|
||||||
|
"hle": 33.7,
|
||||||
|
"lcr": 65,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 18.5,
|
||||||
|
"gdppdf": 6.4,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.2",
|
||||||
|
"n": "GLM-5.2",
|
||||||
|
"lab": "zhipuai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 1.4,
|
||||||
|
"po": 4.4,
|
||||||
|
"ii": 33.7,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 51.2,
|
||||||
|
"tb21": 77.9,
|
||||||
|
"tb40": 1,
|
||||||
|
"tbh": 50.8,
|
||||||
|
"tau2": 99.1,
|
||||||
|
"taub": 34.6,
|
||||||
|
"apex": 33.7,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 28.4,
|
||||||
|
"gpqa": 89.5,
|
||||||
|
"critpt": 20.9,
|
||||||
|
"hle": 41.1,
|
||||||
|
"lcr": 78.3,
|
||||||
|
"ifbench": 73.3,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 43.6,
|
||||||
|
"gdppdf": 10.4,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m3",
|
||||||
|
"n": "MiniMax-M3",
|
||||||
|
"lab": "minimax",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.3,
|
||||||
|
"po": 1.2,
|
||||||
|
"ii": 29.2,
|
||||||
|
"fc": 23,
|
||||||
|
"scicode": 47.1,
|
||||||
|
"tb21": 65.2,
|
||||||
|
"tb40": 2,
|
||||||
|
"tbh": 42.4,
|
||||||
|
"tau2": 88.9,
|
||||||
|
"taub": 15.3,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 10,
|
||||||
|
"auto": 21.3,
|
||||||
|
"gpqa": 92.9,
|
||||||
|
"critpt": 3.7,
|
||||||
|
"hle": 39,
|
||||||
|
"lcr": 83,
|
||||||
|
"ifbench": 82.9,
|
||||||
|
"mmmu": 78.6,
|
||||||
|
"gdpv": 37.1,
|
||||||
|
"gdppdf": 9.8,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.6-flash",
|
||||||
|
"n": "MiMo-V2.6-Flash",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.14,
|
||||||
|
"po": 0.28,
|
||||||
|
"ii": 37.9,
|
||||||
|
"fc": 42.1,
|
||||||
|
"scicode": 51.3,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 22.7,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 64.1,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 12,
|
||||||
|
"hle": 35.1,
|
||||||
|
"lcr": 74.3,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 73.1,
|
||||||
|
"gdpv": 55.4,
|
||||||
|
"gdppdf": 9,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "step-5-preview-free",
|
||||||
|
"n": "Step 5 Preview Free",
|
||||||
|
"lab": "stepfun",
|
||||||
|
"free": true,
|
||||||
|
"pi": 0,
|
||||||
|
"po": 0,
|
||||||
|
"ii": null,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": null,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": null,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": null,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": null,
|
||||||
|
"hle": null,
|
||||||
|
"lcr": null,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": null,
|
||||||
|
"gdppdf": null,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hy4-preview",
|
||||||
|
"n": "Hy4 preview",
|
||||||
|
"lab": "tencent",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.834,
|
||||||
|
"po": 2.501,
|
||||||
|
"ii": null,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": null,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": null,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": null,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": null,
|
||||||
|
"hle": null,
|
||||||
|
"lcr": null,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": null,
|
||||||
|
"gdppdf": null,
|
||||||
|
"ctx": 1024000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "beam-free",
|
||||||
|
"n": "Beam Free",
|
||||||
|
"lab": "reflection",
|
||||||
|
"free": true,
|
||||||
|
"pi": 0,
|
||||||
|
"po": 0,
|
||||||
|
"ii": 30.3,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 48.5,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 3,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 48.5,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 13.1,
|
||||||
|
"hle": 34.7,
|
||||||
|
"lcr": 78,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 33.9,
|
||||||
|
"gdppdf": 11.6,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cat-jam-free",
|
||||||
|
"n": "Cat Jam Free",
|
||||||
|
"lab": "",
|
||||||
|
"free": true,
|
||||||
|
"pi": 0,
|
||||||
|
"po": 0,
|
||||||
|
"ii": null,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": null,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": null,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": null,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": null,
|
||||||
|
"hle": null,
|
||||||
|
"lcr": null,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": null,
|
||||||
|
"gdppdf": null,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "claude-haiku-5-5",
|
||||||
|
"n": "Claude Haiku 5.5",
|
||||||
|
"lab": "anthropic",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.1,
|
||||||
|
"po": 0.5,
|
||||||
|
"ii": 43.4,
|
||||||
|
"fc": 41.8,
|
||||||
|
"scicode": 55,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 32.8,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 53.8,
|
||||||
|
"auto": 35.4,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 18.9,
|
||||||
|
"hle": 44.4,
|
||||||
|
"lcr": 82.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 55.9,
|
||||||
|
"gdppdf": 20.8,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "grok-4.7",
|
||||||
|
"n": "Grok 4.7",
|
||||||
|
"lab": "xai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 2,
|
||||||
|
"po": 6,
|
||||||
|
"ii": 46.4,
|
||||||
|
"fc": 33.8,
|
||||||
|
"scicode": 57.4,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 25.8,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 52.5,
|
||||||
|
"auto": 65.6,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 17.7,
|
||||||
|
"hle": 43.1,
|
||||||
|
"lcr": 76.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 60.6,
|
||||||
|
"gdppdf": 20,
|
||||||
|
"ctx": 500000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "muse-spark-1.2-contributor",
|
||||||
|
"n": "Muse Spark 1.2 Contributor",
|
||||||
|
"lab": "meta",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.1,
|
||||||
|
"po": 0.2,
|
||||||
|
"ii": 39.6,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 57.4,
|
||||||
|
"tb21": 80.1,
|
||||||
|
"tb40": 7.1,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 34.8,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 40.6,
|
||||||
|
"gpqa": 90.4,
|
||||||
|
"critpt": 17.7,
|
||||||
|
"hle": 45.5,
|
||||||
|
"lcr": 79,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 48.6,
|
||||||
|
"gdppdf": 17.4,
|
||||||
|
"ctx": 1048576
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.3-flash",
|
||||||
|
"n": "GLM-5.3-Flash",
|
||||||
|
"lab": "zhipuai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.15,
|
||||||
|
"po": 0.5,
|
||||||
|
"ii": 41.8,
|
||||||
|
"fc": 41,
|
||||||
|
"scicode": 51.6,
|
||||||
|
"tb21": 84.3,
|
||||||
|
"tb40": 32.8,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 47.2,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 25,
|
||||||
|
"auto": 60.4,
|
||||||
|
"gpqa": 91.2,
|
||||||
|
"critpt": 15.4,
|
||||||
|
"hle": 39.9,
|
||||||
|
"lcr": 80,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 57.1,
|
||||||
|
"gdppdf": 15.4,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.8-max",
|
||||||
|
"n": "Qwen3.8 Max",
|
||||||
|
"lab": "alibaba",
|
||||||
|
"free": false,
|
||||||
|
"pi": 2,
|
||||||
|
"po": 6,
|
||||||
|
"ii": 45.4,
|
||||||
|
"fc": 43.2,
|
||||||
|
"scicode": 52.1,
|
||||||
|
"tb21": 88.8,
|
||||||
|
"tb40": 38.9,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 47.8,
|
||||||
|
"apex": 42.4,
|
||||||
|
"analyst": 45,
|
||||||
|
"auto": 56.2,
|
||||||
|
"gpqa": 92.8,
|
||||||
|
"critpt": 17.7,
|
||||||
|
"hle": 43.1,
|
||||||
|
"lcr": 80.3,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 82.8,
|
||||||
|
"gdpv": 58.2,
|
||||||
|
"gdppdf": 22.8,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hy3",
|
||||||
|
"n": "Hy3",
|
||||||
|
"lab": "tencent",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.14,
|
||||||
|
"po": 0.58,
|
||||||
|
"ii": 25.3,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 48.6,
|
||||||
|
"tb21": 64.4,
|
||||||
|
"tb40": 0.5,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 22.9,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 18.4,
|
||||||
|
"gpqa": 89.7,
|
||||||
|
"critpt": 4.9,
|
||||||
|
"hle": 33.5,
|
||||||
|
"lcr": 79,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 28.3,
|
||||||
|
"gdppdf": 11.2,
|
||||||
|
"ctx": 256000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.5",
|
||||||
|
"n": "MiMo V2.5",
|
||||||
|
"lab": "xiaomi",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.14,
|
||||||
|
"po": 0.28,
|
||||||
|
"ii": 21.8,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 43.9,
|
||||||
|
"tb21": 63.7,
|
||||||
|
"tb40": 0,
|
||||||
|
"tbh": 41.7,
|
||||||
|
"tau2": 90.6,
|
||||||
|
"taub": 8.7,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 18.4,
|
||||||
|
"gpqa": 84.9,
|
||||||
|
"critpt": 3.7,
|
||||||
|
"hle": 27.2,
|
||||||
|
"lcr": 73,
|
||||||
|
"ifbench": 67.1,
|
||||||
|
"mmmu": 75.4,
|
||||||
|
"gdpv": 24.9,
|
||||||
|
"gdppdf": 4,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "deepseek-v4-pro",
|
||||||
|
"n": "DeepSeek V4 Pro (New)",
|
||||||
|
"lab": "deepseek",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.66,
|
||||||
|
"po": 1.98,
|
||||||
|
"ii": 36,
|
||||||
|
"fc": 38.8,
|
||||||
|
"scicode": 51,
|
||||||
|
"tb21": 78.7,
|
||||||
|
"tb40": 14.1,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 39.6,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 56.7,
|
||||||
|
"gpqa": 92.8,
|
||||||
|
"critpt": 18,
|
||||||
|
"hle": 41,
|
||||||
|
"lcr": 80.3,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 47.4,
|
||||||
|
"gdppdf": 11.4,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.3",
|
||||||
|
"n": "GLM-5.3",
|
||||||
|
"lab": "zhipuai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 1.4,
|
||||||
|
"po": 4.4,
|
||||||
|
"ii": 44.8,
|
||||||
|
"fc": 40.1,
|
||||||
|
"scicode": 59,
|
||||||
|
"tb21": 83.9,
|
||||||
|
"tb40": 41.9,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 50.3,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 38.8,
|
||||||
|
"auto": 62.2,
|
||||||
|
"gpqa": 91.7,
|
||||||
|
"critpt": 19.1,
|
||||||
|
"hle": 42.3,
|
||||||
|
"lcr": 79.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": 57.5,
|
||||||
|
"gdppdf": 11.2,
|
||||||
|
"ctx": 1000000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gpt-5.6-luna",
|
||||||
|
"n": "GPT-5.6 Luna",
|
||||||
|
"lab": "openai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.2,
|
||||||
|
"po": 1.2,
|
||||||
|
"ii": 37.3,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": 53.6,
|
||||||
|
"tb21": 80.9,
|
||||||
|
"tb40": 11.6,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": 31.1,
|
||||||
|
"apex": 35.8,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": 50.2,
|
||||||
|
"gpqa": 91.1,
|
||||||
|
"critpt": 20.6,
|
||||||
|
"hle": 39.5,
|
||||||
|
"lcr": 83.7,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 78.6,
|
||||||
|
"gdpv": 48,
|
||||||
|
"gdppdf": 24,
|
||||||
|
"ctx": 1050000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gpt-6-luna",
|
||||||
|
"n": "GPT-6 Luna",
|
||||||
|
"lab": "openai",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.1,
|
||||||
|
"po": 0.5,
|
||||||
|
"ii": 38.1,
|
||||||
|
"fc": 41.9,
|
||||||
|
"scicode": 54.6,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": 12.6,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": 43.8,
|
||||||
|
"auto": 53.2,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": 19.4,
|
||||||
|
"hle": 38.5,
|
||||||
|
"lcr": 83.3,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": 79.7,
|
||||||
|
"gdpv": 46.6,
|
||||||
|
"gdppdf": 22.8,
|
||||||
|
"ctx": 1050000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "space-bunny",
|
||||||
|
"n": "Space Bunny",
|
||||||
|
"lab": "",
|
||||||
|
"free": false,
|
||||||
|
"pi": 0.15,
|
||||||
|
"po": 0.6,
|
||||||
|
"ii": null,
|
||||||
|
"fc": null,
|
||||||
|
"scicode": null,
|
||||||
|
"tb21": null,
|
||||||
|
"tb40": null,
|
||||||
|
"tbh": null,
|
||||||
|
"tau2": null,
|
||||||
|
"taub": null,
|
||||||
|
"apex": null,
|
||||||
|
"analyst": null,
|
||||||
|
"auto": null,
|
||||||
|
"gpqa": null,
|
||||||
|
"critpt": null,
|
||||||
|
"hle": null,
|
||||||
|
"lcr": null,
|
||||||
|
"ifbench": null,
|
||||||
|
"mmmu": null,
|
||||||
|
"gdpv": null,
|
||||||
|
"gdppdf": null,
|
||||||
|
"ctx": 1048576
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -0,0 +1,181 @@
|
|||||||
|
{
|
||||||
|
"generated": "2026-10-21T17:03:04.948Z",
|
||||||
|
"models": [
|
||||||
|
"mimo-v2.5-pro",
|
||||||
|
"step-5-preview",
|
||||||
|
"muse-spark-1.3-contributor",
|
||||||
|
"qwen3.8-flash",
|
||||||
|
"kimi-k3",
|
||||||
|
"deepseek-v4.1-flash",
|
||||||
|
"minimax-m2.7",
|
||||||
|
"minimax-m3.1-flash-free",
|
||||||
|
"gemini-4-argon-contributor",
|
||||||
|
"qwen3.7-plus",
|
||||||
|
"longcat-2.5-preview-free",
|
||||||
|
"mimo-v2.6-pro",
|
||||||
|
"kimi-k2.7-code",
|
||||||
|
"longcat-2.0",
|
||||||
|
"glm-5.2",
|
||||||
|
"minimax-m3",
|
||||||
|
"mimo-v2.6-flash",
|
||||||
|
"step-5-preview-free",
|
||||||
|
"hy4-preview",
|
||||||
|
"beam-free",
|
||||||
|
"cat-jam-free",
|
||||||
|
"claude-haiku-5-5",
|
||||||
|
"grok-4.7",
|
||||||
|
"muse-spark-1.2-contributor",
|
||||||
|
"glm-5.3-flash",
|
||||||
|
"qwen3.8-max",
|
||||||
|
"hy3",
|
||||||
|
"mimo-v2.5",
|
||||||
|
"deepseek-v4-pro",
|
||||||
|
"glm-5.3",
|
||||||
|
"gpt-5.6-luna",
|
||||||
|
"gpt-6-luna",
|
||||||
|
"space-bunny"
|
||||||
|
],
|
||||||
|
"scores": [
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.5-pro",
|
||||||
|
"ii": 26
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "step-5-preview",
|
||||||
|
"ii": 43.7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "muse-spark-1.3-contributor",
|
||||||
|
"ii": 48.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.8-flash",
|
||||||
|
"ii": 39.8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kimi-k3",
|
||||||
|
"ii": 43.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "deepseek-v4.1-flash",
|
||||||
|
"ii": 39.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m2.7",
|
||||||
|
"ii": 22.8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m3.1-flash-free",
|
||||||
|
"ii": 42.7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gemini-4-argon-contributor",
|
||||||
|
"ii": 52.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.7-plus",
|
||||||
|
"ii": 25.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "longcat-2.5-preview-free",
|
||||||
|
"ii": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.6-pro",
|
||||||
|
"ii": 46.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "kimi-k2.7-code",
|
||||||
|
"ii": 25.8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "longcat-2.0",
|
||||||
|
"ii": 19.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.2",
|
||||||
|
"ii": 33.7
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minimax-m3",
|
||||||
|
"ii": 29.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.6-flash",
|
||||||
|
"ii": 37.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "step-5-preview-free",
|
||||||
|
"ii": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hy4-preview",
|
||||||
|
"ii": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "beam-free",
|
||||||
|
"ii": 30.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "cat-jam-free",
|
||||||
|
"ii": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "claude-haiku-5-5",
|
||||||
|
"ii": 43.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "grok-4.7",
|
||||||
|
"ii": 46.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "muse-spark-1.2-contributor",
|
||||||
|
"ii": 39.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.3-flash",
|
||||||
|
"ii": 41.8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "qwen3.8-max",
|
||||||
|
"ii": 45.4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hy3",
|
||||||
|
"ii": 25.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "mimo-v2.5",
|
||||||
|
"ii": 21.8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "deepseek-v4-pro",
|
||||||
|
"ii": 36
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "glm-5.3",
|
||||||
|
"ii": 44.8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gpt-5.6-luna",
|
||||||
|
"ii": 37.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gpt-6-luna",
|
||||||
|
"ii": 38.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "space-bunny",
|
||||||
|
"ii": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"newModels": [],
|
||||||
|
"removedModels": [],
|
||||||
|
"deltas": [],
|
||||||
|
"liveCatalogSize": 37,
|
||||||
|
"notInLiveCatalog": [
|
||||||
|
"step-5-preview-free",
|
||||||
|
"cat-jam-free",
|
||||||
|
"space-bunny"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user