Models and cost
Choosing a model
A managed blend picks the right model per job, or pin one yourself.
CtrlM opens the picker. /model prints the current one; /models opens the
picker from the keyboard.
The default does the routing
Premium is a managed blend, not a single model. ContextCode classifies the work once, keeps the route visible, and sends each part to the model selected for that job. Most people never need to change it.
| Work | Managed route |
|---|---|
| Fast intent routing | GPT-5.6 Luna Low on OpenAI Priority |
| Small, safe, known-target edits | GPT-5.6 Luna High on OpenAI Priority |
| Ordinary interactive coding | GPT-5.6 Terra Max on OpenAI Priority |
| Hard, wide, risky, recovery, and background-agent work | GPT-5.6 Sol Max on OpenAI Priority |
| Product design and UI implementation | Claude Opus 5 Max through Anthropic |
| Complex architecture, planning, and complementary review | Claude Opus 5 through Anthropic |
| Research, synthesis, comparisons, and long knowledge artifacts | Grok 4.6 High on xAI Priority |
| Attached images, video, audio, and PDFs | Gemini 3.7 Flash Low or High on Vertex Priority |
Managed GPT, Claude, and Grok calls go directly to OpenAI, Anthropic, and xAI. There is no aggregator in the managed path. Gemini is a media specialist; it does not replace Luna as the ordinary intent router.
Pinning one
/model deep favour capability
/model fast favour latency
/model premium back to the blendPin a specific model when you have a reason:
/model anthropic/claude-opus-5
/model xai/grok-4.6
/model google/gemini-3.7-flashDirect-provider pins require your own provider key. The pin lasts for the session, and the status line always shows what is active.
Media chooses Gemini automatically
Attach an image, video, audio file, or PDF with @path, terminal drag and
drop, or the VS Code attachment picker. ContextCode routes that turn to managed
Gemini 3.7 Flash: Low reasoning for a quick single-image pass, High for
comparisons or careful media and document analysis.
Attachments are turn-scoped. Their bytes are not written into journals or run receipts, and a failed media request is not silently replayed on another provider. For supported formats, limits, and examples, see The csc command line.
When pinning is worth it
- A long mechanical run — a cheaper model, since the work is repetitive.
- One genuinely hard problem — the most capable model for a few turns.
- Reproducing something — same model, same conditions.
- You have your own key — see Using your own API keys.
Cost follows the model
Managed calls bill ContextStream credits at the live rate for whichever model
ran. The status line shows the cost of the turn as it happens; /usage breaks
the session down by model.
Pinning a cheap model makes turns cheaper. Pinning an expensive one makes them dearer. There's no flat rate hiding the difference.
If it doesn't work
The picker shows models I can't use. Managed tiers need credits; your own providers need a key configured. The picker says which is which.
It switched back to premium. Pins are per session. /model at the start of
a session, or set a default in settings.json.
A pinned model is failing. Check the provider key, outage, or rate limit, then switch with CtrlM; the text conversation carries across. Reattach turn-scoped media when retrying it on a different route.