@taterdoge/pi-remember-model

extensionmaintained

Persist the last selected model and thinking level to Pi's global settings.json.

by — · v0.1.1 · published 1w ago

$ pi install npm:@taterdoge/pi-remember-model
downloads/mo
0
stars
3
last push
1d ago
open issues
0

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

No downloads in the last 12 weeks.

README

@taterdoge/pi-remember-model

npm version License: MIT

Pi extension that persists the last selected model and thinking level to Pi's global settings.json, so every new session starts where you left off.

Install

pi install npm:@taterdoge/pi-remember-model

Or try without installing:

pi -e npm:@taterdoge/pi-remember-model

How it works

  • On model selection, writes defaultProvider and defaultModel to the global settings file (~/.pi/agent/settings.json, or $PI_CODING_AGENT_DIR/settings.json)
  • On thinking level selection, writes a per-model entry in modelThinkingLevels, keyed "provider/modelId", so a level one model cannot support never leaks into another model
  • On model selection, re-applies that model's remembered level with pi.setThinkingLevel() — Pi only reads modelThinkingLevels while booting, so the file write alone would only take effect on the next start
  • Existing settings keys are preserved (read-merge-write); a missing or invalid file is started fresh
  • Session-restore events (source: "restore") are ignored, so merely opening an old session never rewrites your default

Settings file

The extension patches Pi's own global settings — the same keys Pi reads at startup:

{
  "defaultProvider": "anthropic",
  "defaultModel": "claude-opus-4-6",
  "modelThinkingLevels": {
    "anthropic/claude-opus-4-6": "xhigh",
    "openai/gpt-5": "low"
  }
}

Per-model thinking levels need Pi ≥ 0.84.3, when modelThinkingLevels was added (pi.setThinkingLevel() has existed since 0.76). On older Pi the extension still remembers the model; the thinking-level entries are simply ignored.

Note: Pi ≥ 0.76 already persists model/thinking-level choices natively; this extension is mainly useful on older Pi versions or as an explicit safety net.