← All features

Run the agentsAvailable in v0.3.0

New model generations join automatically

New in v0.3.0: a new model generation joins once it has a score, and superseded or removed models drop out, with no file edited. Each change shows a plain notice and stays in the run record. A new generation without a score waits while the older one stays, so a model family never goes empty.

When you need it

Every new model release would otherwise mean editing config files by hand, and forgetting means working on an outdated model.

How it works

  1. A model competes when the CLI lists it and does not hide it, its family is known, it has every common task, it is the newest generation of its family with those tasks, and allowed_models permits it.
  2. A newer generation of a known family is used from the next catalog rebuild once it has a score; a superseded or vanished model stops being chosen at that same rebuild.
  3. OAH_MODEL_CHANGED says once what moved and why, such as a newer generation or new scores, and changes.jsonl keeps it.
  4. A free alias check, which cannot be billed, confirms Claude aliases such as haiku that claude --help leaves out.

Example

Reread the engines' model lists now (from Upgrade).

oah models --refresh

Requirements

  • Requires v0.3.0 or later.
  • Current Claude Code and Codex CLI; newer models reach you only when the tools themselves are current.

Limits and recovery

  • A new model waits for a published score, which can take days or weeks (OAH_MODEL_UNSCORED).
  • A family oah does not know is never chosen automatically (OAH_MODEL_UNKNOWN_FAMILY).
  • A model you name yourself skips these tests; an older generation you name runs with OAH_MODEL_SUPERSEDED.
  • The alias check relies on an undocumented tag; if it changes, haiku drops out and sonnet serves instead until oah is updated.
  • A Codex pin that a fresh catalog no longer lists stops with OAH_MODEL_NOT_LISTED.

Original documents

Related