Model catalog refresh
Skill HorizonBrute/Standardized_AI_Looping_Language-SAILL/skills/model-catalog-refresh
Fetch CURRENT model information from live provider docs (Anthropic, OpenAI, Google Gemini, Ollama) and return a structured catalog the user can use to populate or validate the Horizon AIOS model-preference config. Use when the user types /model-catalog-refresh, or says "refresh model catalog", "update model groups", "check current models", "what models are current", or "validate my model config".From its SKILL.md
npx -y skills add HorizonBrute/Standardized_AI_Looping_Language-SAILL --skill model-catalog-refreshAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
4 things to look at
- reads credentialsReads from 1 credential source: `OPENAI_API_KEY`.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `GET https://api.openai.com/v1/models` and 2 more.
- fetches URLsInstructs the agent to fetch 7 URLs, including https://platform.claude.com/docs/en/about-claude/models/overview and 6 more.
SKILL.md
7.1 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Skill: /model-catalog-refresh
Model preference: #investigate (per horizon_aios_model_prefs.md; overridable by a prompt directive).
Fetch live model data from provider documentation and return a structured catalog
the user (or the model-prefs skill) uses to populate or validate
horizon_aios_model_prefs.local.md. This is a reference document — you, the
agent, perform the fetches and parsing at runtime with your web/bash access. Do
not rely on training-cutoff knowledge of model ids or prices; the entire point is
live data.
Quick Reference
- Purpose: produce a dated, structured catalog of current models + pricing across Anthropic, OpenAI, Google Gemini, and Ollama, and diff it against an existing model-preference config.
- Triggers: "refresh model catalog", "update model groups", "check current
models", "what models are current", "validate my model config",
/model-catalog-refresh. - Companion:
/model-prefsconsumes this output to edit the gitignored extend file. This skill fetches truth; that skill writes config.
When to invoke
Whenever the user wants an up-to-date picture of available models to configure or
sanity-check their groups — e.g. before defining #lowcost/#highcap, after a
provider releases a new model, or to confirm a member id is still valid.
Providers and fetch strategy
Fetch each provider's MODEL LISTING and PRICING separately — they are always two different pages. Prefer an API/CLI when available over scraping.
1. Anthropic
- Models: https://platform.claude.com/docs/en/about-claude/models/overview
- Pricing: https://platform.claude.com/docs/en/about-claude/pricing
- Changelog / notices (for suspensions): check the docs changelog and any banner.
- Extract: full model id string, tier (haiku/sonnet/opus/fable), input & output $/MTok, context window, known aliases, deprecation or access-suspension notices.
2. OpenAI
- Preferred: if
OPENAI_API_KEYis set,GET https://api.openai.com/v1/modelsand parse directly — more reliable than the docs page. - Models (fallback): https://developers.openai.com/api/docs/models
- Pricing (scrape; no pricing API): https://openai.com/api/pricing
- Extract: model id, family (gpt-5.x / gpt-oss), open-weight flag, input/output $/MTok, context window, recommended-for notes.
3. Google Gemini
- Models: https://ai.google.dev/gemini-api/docs/models
- Changelog (deprecations): https://ai.google.dev/gemini-api/docs/changelog
- Extract: exact versioned model id (Google uses date suffixes — capture them), tier (flash-lite/flash/pro), pricing (note tiered-by-context-length), GA vs preview status, shutdown notices.
4. Ollama
- Preferred: if
ollamais on PATH and running,ollama listfor what is already pulled, thenollama show <model>per model for metadata. - Fallback (no local ollama): fetch https://ollama.com/library and take the top models by pull count in each relevant category (coding, reasoning, fast/small).
- Extract: exact pull tag (e.g.
qwen2.5-coder:7b), category, VRAM requirement, parameter count, notable capability notes.
Output schema
Return a plain-text block (not JSON — this lands in config-adjacent context):
Model Catalog — <YYYY-MM-DD fetched>
Anthropic
| model_id | alias | tier | input $/MTok | output $/MTok | ctx | status |
OpenAI
| model_id | family | open_weight | input $/MTok | output $/MTok | ctx | status |
| model_id | tier | input $/MTok | output $/MTok | ctx | ga_or_preview | status |
Ollama (local-available / library-top)
| tag | category | vram | params | notes |
Deprecation / Access Alerts
List any model found suspended, sunset-announced, or access-restricted.
Config Diff (only if a config was provided — see Diff behavior)
Per group in the current config, flag: - member ids that no longer appear in provider docs - newer models that better fit the group's intent - pricing changes vs the member's prior cost
Diff behavior
If the current Horizon AIOS ## Model Groups block is already in context when
invoked, run the Config Diff automatically. If it is not, prompt once:
"Paste your current ## Model Groups block to get a config diff." Do not invent a
config to diff against.
Freshness
- Stamp the output with the fetch date.
- State, per provider, whether you got live data or fell back (scrape / cache / unavailable).
- If a page is unreachable, say so explicitly for that provider — never return stale data silently as if it were current.
Populating the config
After presenting the catalog, offer to hand the relevant ids to /model-prefs
(or do it directly if the user asks) to update horizon_aios_model_prefs.local.md.
Use runtime-qualified members: claude:<id|alias> for Anthropic, ollama:<tag>
for local models. Prefer Anthropic aliases (haiku/sonnet/opus/fable) over pinned
full ids unless the user wants a specific version. Never write the base
horizon_aios_model_prefs.md — user choices go only in the extend file.
Known Gotchas
- Ollama tags often omit the size suffix — always use the full tag (
:7b, not:latest);:latestsilently pulls whatever the registry defaults to. - Google model ids frequently carry date suffixes — never store bare
gemini-3.5-flashwithout verifying the exact stable string. - OpenAI open-weight models (
gpt-oss-*) run locally via Ollama/LM Studio AND are available via the OpenAI API — record both surfaces; they differ in price. - Anthropic access suspensions (e.g. Fable 5, mid-2026) may not show on the models overview page — check the changelog and any banner before trusting availability.
- Pricing and model-listing pages are separate fetches for every provider — do both; a listing without prices is an incomplete catalog.
What this skill must NOT do
- No executable code embedded as the mechanism — you fetch at runtime; the file is instruction.
- No hardcoded model ids or prices — live fetch only.
- No assumption about which runtime/harness you are in.
Notes for the executing agent
- Run independent provider fetches in parallel where possible; one provider being down must not block the others.
- This skill is read-only toward provider sources and the base config; the only thing it may write is the gitignored extend file (and only when the user asks).
- Brains may invoke this — it touches public docs and the user's own extend file only; no privileged paths.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.