Fetch current model names from AI providers (Anthropic, OpenAI, Gemini, Ollama), classify them into tiers (fast/default/heavy), and detect new models. Use when needing up-to-date model IDs for API calls or when other skills reference model names.
Fetch current model names from AI providers (Anthropic, OpenAI, Gemini, Ollama), classify them into tiers (fast/default/heavy), and detect new models. Use when needing up-to-date model IDs for API calls or when other skills reference model names.
Model Discovery Skill
Fetch the most recent model names from AI providers using their APIs. Includes tier classification (fast/default/heavy) for routing decisions and automatic detection of new models.
# Fetch all models (uses cache if fresh)
uv run python scripts/fetch_models.py
# Force refresh from APIs
uv run python scripts/fetch_models.py --force
# Fetch and check for new models
uv run python scripts/fetch_models.py --force --check-new
# Check for new unclassified models (JSON output for agents)
uv run python scripts/check_new_models.py --json
# Auto-classify new models using patterns
uv run python scripts/check_new_models.py --auto
# Interactive classification
uv run python scripts/check_new_models.py
Config Files
File
Purpose
config/model_tiers.json
Static tier mappings and CLI model names
config/known_models.json
Registry of all classified models with timestamps
cache/models.json
Cached API responses
API Endpoints
Provider
Endpoint
Auth
Anthropic
GET /v1/models
x-api-key header
OpenAI
GET /v1/models
Bearer token
Gemini
GET /v1beta/models
?key= param
Ollama
GET /api/tags
None
Output Examples
Fetch Models Output
{"fetched_at":"2025-12-17T05:53:25Z","providers":{"anthropic":[{"id":"claude-opus-4-5","name":"Claude Opus 4.5"}],"openai":[{"id":"gpt-5.2","name":"gpt-5.2"}],"gemini":[{"id":"models/gemini-3-pro","name":"Gemini 3 Pro"}],"ollama":[{"id":"phi3.5:latest","name":"phi3.5:latest"}]}}
Other skills should reference this skill for model names:
## Model Names
For current model names and tiers, use the `model-discovery` skill:
- Tiers: Read `config/model_tiers.json`- Fresh data: Run `uv run python scripts/fetch_models.py`- New models: Run `uv run python scripts/check_new_models.py --json`**Do not hardcode model version numbers** - they become stale quickly.
New Model Detection
When new models are detected:
The script will report them with suggested tiers based on naming patterns
Models matching these patterns are auto-classified:
heavy: -pro, -opus, -max, thinking, deep-research
fast: -mini, -nano, -flash, -lite, -haiku
default: Base model names without modifiers
Models not matching patterns require manual classification
Specialty models (TTS, audio, transcribe) are auto-excluded
Agent Query for New Models
When checking for new models programmatically:
# Returns exit code 1 if new models need attention
uv run python scripts/check_new_models.py --json
# Example agent workflowif ! uv run python scripts/check_new_models.py --json > /tmp/new_models.json 2>&1; thenecho"New models detected - review /tmp/new_models.json"fi