AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI
Pi v0.30.0 adds custom session directories and reverse model cycling in the TUI.
$ git clone --branch v0.30.0 https://github.com/earendil-works/pi.git # already have the repo? check out this version: $ git checkout v0.30.0
$ pi --session-dir ./my-project-sessions -r
$ pi --session-dir /shared/sessions -c
- ›New
--session-dirflag lets you store sessions in any directory instead of the default~/.pi/agent/sessions/<encoded-cwd>/, compatible with-c(continue) and-r(resume) flags. - ›Shift+Ctrl+P cycles models backward and Ctrl+L opens the model selector while retaining the current editor text.
- !The second parameter of SessionManager.create(), continueRecent(), and list() is renamed from
agentDirtosessionDirwith changed semantics: when provided it now specifies the session directory directly (no cwd encoding); when omitted it falls back to~/.pi/agent/sessions/<encoded-cwd>/. - !SessionManager.open() no longer accepts an
agentDirparameter.
3 more releases in this issue · 2025-12-25
Pi v0.29.1 adds automatic SYSTEM.md prompt loading and a unified /settings command.
$ git clone --branch v0.29.1 https://github.com/earendil-works/pi.git # already have the repo? check out this version: $ git checkout v0.29.1
$ mkdir -p .pi && echo 'You are a security-focused assistant. Always recommend least-privilege principles.' > .pi/SYSTEM.md
$ pi --system-prompt ~/prompts/pentest.md
- ›Adds automatic custom system prompt loading: Pi now auto-loads
.pi/SYSTEM.md(project-local) or~/.pi/agent/SYSTEM.md(global), with--system-promptflag taking highest precedence. - ›Introduces unified
/settingscommand consolidating thinking level, theme, queue mode, auto-compact, show images, hide thinking, and collapse changelog into a single menu.
- !The
/thinking,/queue,/theme,/autocompact, and/show-imagescommands are replaced by the new/settingsmenu.
Pi v0.29.0 adds word navigation, full Unicode input, and auto-spacing for pasted file paths in the CLI.
$ git clone --branch v0.29.0 https://github.com/earendil-works/pi.git # already have the repo? check out this version: $ git checkout v0.29.0
- ›Adds Ctrl+Left/Right and Alt+Left/Right word-by-word cursor movement in input fields.
- ›Supports full Unicode input beyond ASCII in all input fields.
- ›Auto-prepends a space when pasting a file path (starting with
/,~, or.) after a word character.
- !The
/clearcommand is renamed to/new; hook event reasonsbefore_clearandclearare renamed tobefore_newandnew.
Pi v0.28.0 refactors credential storage to ~/.pi/agent/auth.json and overhauls the SDK API for auth and model management.
$ git clone --branch v0.28.0 https://github.com/earendil-works/pi.git # already have the repo? check out this version: $ git checkout v0.28.0
- ›Moves credential storage (API keys and OAuth tokens) from
oauth.jsonandsettings.jsonto~/.pi/agent/auth.json; existing credentials are automatically migrated on first run. - ›Adds
AuthStorageclass to the SDK for managing API keys and OAuth tokens, including AuthStorage.setRuntimeApiKey() for runtime overrides. - ›Adds
ModelRegistryclass to the SDK for model discovery and API key resolution, with modelRegistry.find() for locating custom and built-in models. - ›Adds discoverAuthStorage() and discoverModels() discovery functions to the SDK.
- ›Extends createAgentSession() to accept
authStorageandmodelRegistryoptions.
+1 moreshow less
- ›Adds getModel() from
@mariozechner/pi-aifor accessing built-in models.
- !API keys are removed from
settings.json; they must now be stored in~/.pi/agent/auth.json. - !SDK: configureOAuthStorage(), defaultGetApiKey(), findModel(), and discoverAvailableModels() are removed.
- !SDK: The
getApiKeycallback option to createAgentSession() is removed; use AuthStorage.setRuntimeApiKey() instead.