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.

WorkManaged route
Fast intent routingGPT-5.6 Luna Low on OpenAI Priority
Small, safe, known-target editsGPT-5.6 Luna High on OpenAI Priority
Ordinary interactive codingGPT-5.6 Terra Max on OpenAI Priority
Hard, wide, risky, recovery, and background-agent workGPT-5.6 Sol Max on OpenAI Priority
Product design and UI implementationClaude Opus 5 Max through Anthropic
Complex architecture, planning, and complementary reviewClaude Opus 5 through Anthropic
Research, synthesis, comparisons, and long knowledge artifactsGrok 4.6 High on xAI Priority
Attached images, video, audio, and PDFsGemini 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

Code
/model deep        favour capability
/model fast        favour latency
/model premium     back to the blend

Pin a specific model when you have a reason:

Code
/model anthropic/claude-opus-5
/model xai/grok-4.6
/model google/gemini-3.7-flash

Direct-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.

Next