Skip to main content
The default model is Auto. Instead of pinning one model for everything, 9p classifies each turn and picks from the models your plan allows.
The line is printed every turn, so you always know what ran.

How a turn is classified

Signals used: keywords (refactor, debug, migrate, why does…), prompt length, and whether you’re in plan mode, plan mode is always treated as complex.
Routing resolves once per message, not per tool call. Switching models mid-loop would discard the provider’s prompt cache, which is what keeps a long session affordable.

Bias

This persists to ~/.9p/config.json, or set NINEP_AUTO_BIAS per run. quality is the only way Auto reaches premium models, and only on turns already classified complex.

Pinning a model

Or for a whole session: NINEP_MODEL=z-ai/glm-4.7 9p /models lists the catalog with tiers, burn rate per heavy session, and which ones your plan locks.

Tiers

Free accounts get economy models only.
Kimi K3 is frontier-priced despite being an open model: roughly 17.70ofrawcostforaheavysessionagainst17.70 of raw cost for a heavy session against 11.80 for Sonnet 5. It sits in Premium for that reason, and Auto never selects it, because a model that expensive should be a deliberate choice. Max users can pin it with /model moonshotai/kimi-k3.

Sub-agent routing

Explore sub-agents are pinned to economy models regardless of the parent’s pick. They read and summarise; a frontier model there is pure burn, and they often run several at once.

BYOK

With your own OpenRouter key there are no plan locks, so Auto picks from its full ladder and /model accepts any OpenRouter model id.