Skip to content

Course · Pi · Models & config

Models & config

Module 1 made you watch a single turn happen before you trusted it with anything real - you couldn’t budget work you’d never seen run once. Module 2 opened the box: four tools and one short system prompt, the whole fixed cost, readable end to end. Module 3 admitted the box fills up anyway - the session outlives the window, and something gets dropped whether you chose it or not.

This module attacks a different piece of the same enemy. It’s not about what’s in the window anymore. It’s about what you’re charged for spending it. Same tokens, different price - and what you spend them at is a dial, not a default.

Here’s the claim this module spends four lessons proving: route the same four-row chore through the wrong dial settings and you’ll pay roughly fifteen times more for identical output - not because the work changed, but because you were billed to think about work that needed no thinking. That number isn’t a teaser. You’ll rederive it by hand in the routing lesson, from the same two multipliers the module keeps reusing.

Here’s where it starts. Your .pi/APPEND_SYSTEM.md means you’ve stopped re-explaining stash’s conventions every session - that problem is solved. But watch what happens the next time a backlog chore lands: a few hundred saved URLs from before the readability fix need re-extracting, one HTTP fetch and one parse each, nothing to think about. Pi runs it on whatever model you’ve been using for everything else, at whatever reasoning depth you left the dial. If that’s the same frontier model you want reasoning carefully about the extractor’s site-specific quirks, you just paid careful-reasoning prices for four hundred rounds of “fetch, strip tags, save.” Multiply that by every mechanical chore stash generates and the bill stops looking like rounding error.

  • Find the files first. Before you can route anything you need to know which config actually wins when you’ve got both a global setup and a project one. Two files, one merge walks ~/.pi/agent/settings.json against .pi/settings.json, plus the sibling files - models.json, auth.json, trust.json - that config splits across.
  • Turn the dials on purpose. Pi actually gives you two independent levers - which model answers, and how hard it thinks before it does - and stash’s lumpy workload is exactly what makes misusing them expensive. Route the cheap work to the cheap model sets both, per task, on the same shared toy sweep, and hand-traces the bill each way.
  • Take a model off the meter entirely. Not every stash chore needs a hosted model at all. Run a model on your own machine traces that same sweep through a local model, then puts all three options in one table so you know which to reach for.

None of this is exotic. It’s the same instinct the last three modules kept returning to - spend on purpose, not by habit - aimed at the two things that actually cost money in Pi’s config surface: which model picks up the work, and how long it’s allowed to think about it. (Pricing itself, and how the six tools in this site’s scope compare on it, is the Foundations model-selection chapter’s job; this course is where you turn Pi’s version of that dial by hand.)

The dial was always there. Most sessions just never touch it.

Start with the config files.