pi-dont-change-my-defaults

Prevent Pi from persisting model, provider, and thinking-level changes as defaults

Packages

Package details

extension

Install pi-dont-change-my-defaults from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-dont-change-my-defaults
Package
pi-dont-change-my-defaults
Version
0.0.3
Published
Aug 24, 2026
Downloads
246/mo · 18/wk
Author
kaanozdokmeci
License
MIT
Types
extension
Size
5.8 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./extensions/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-dont-change-my-defaults

Prevent Pi from persisting model, provider, and thinking-level changes as defaults.

Selecting a model or thinking level still changes the current session. This extension only prevents Pi from writing those choices back as defaults for future sessions. Other settings continue to persist normally.

Pi 0.84.3 and newer

Pi 0.84.3 provides this behavior natively: model and thinking-level selections are session-only unless you explicitly save them as defaults with Ctrl+S.

This extension is only compatible with Pi 0.83.0 through 0.84.2. On Pi 0.84.3 or newer, remove it:

pi remove npm:pi-dont-change-my-defaults

Install

pi install npm:pi-dont-change-my-defaults

To try it for one invocation without installing it:

pi -e npm:pi-dont-change-my-defaults

Development

npm install
npm run check
npm test
npm run pack:dry

The extension entrypoint is:

extensions/index.ts

Release staging

  1. Run npm run release -- X.Y.Z from a clean, synchronized main.
  2. The command builds the exact package locally, records its SHA-256 in an SSH-signed release commit, proves a clean rebuild is reproducible, and creates a lightweight tag.
  3. Inspect the result, then push atomically with git push --atomic origin main vX.Y.Z.
  4. A read-only GitHub Actions job validates and packs the package. After approval in the tag-restricted npm-publish environment, a separate GitHub-owned job verifies the signature and signed digest before attesting and staging that exact archive through npm trusted publishing.
  5. Approve the staged package on npmjs.com, or with npm stage approve <stage-id>.

Stable releases use latest; prereleases derive their npm dist-tag from the first prerelease identifier.