ralphy models exposes the live OpenRouter video-generation catalog with per-model constraints — supported durations, resolutions, aspect ratios, frame-anchor support, price tiers. Surfacing those before submit means the agent (and the human) doesn’t burn $0.70 and 2 minutes on a request the provider was going to reject. Per AGENTS.md invariant #6, agents read MODELS.md before every model call — this verb is the machine-readable mirror.
ralphy models list
Lists every OR video-generation model with per-model whitelist data and a 5-second price estimate.{ fetchedAt, count, models: [...] }.
/reference/cli/models.
ralphy models show <id>
Full schema for one model — description, supported params, price at 1s / 5s / 10s./reference/cli/models.
ralphy models alias
Resolve a shorthand (kling, nano banana pro, gpt image 2, …) to its canonical OpenRouter slug. Useful when the user says “use Kling” and you need the exact id for --model.
/reference/cli/models.
When to run these by hand
- Cost comparison before a batch:
ralphy models list --json | jq '.models[] | {id, priceUsd5s}'. - Whitelist check before
--no-validate: confirm the duration / aspect you want is supported. - Frame-anchor support for an i2v pipeline that needs start+end refs.
- Catalog refresh after OpenRouter ships a new model — pass
--refreshonce and the 24h cache picks up the addition.
ralphy generate video validates against the same catalog before submit and rejects mismatched flags with E_VALIDATION_FAILED. Run them when debugging a rejection or planning a manual swap.
Cache + offline behavior
The catalog caches for 24h atworkspace/.ralph/or-catalog.json. The fetcher in cli/lib/or-catalog.ts falls back to the stale cache when OpenRouter is unreachable — generation verbs still validate against the last-known catalog rather than failing closed.
--refresh on any of the verbs forces a fresh fetch. Wipe the cache by deleting the file (or wait 24h).
Why this verb exists
The agent readsMODELS.md for the picks (which model to use for which job, with the postmortem-derived rationale). It reads ralphy models show <id> for the constraints (what params will be accepted). The two are deliberately separate: text + opinion in MODELS.md, structured data + cost in the catalog.
Related
- Generation verbs —
--modelflag and the validation gate - MODELS.md — picks + rationale
- Models registry — deeper conceptual notes
- cli/commands/models.ts, cli/lib/or-catalog.ts