Changelog
Release notes, project updates, and announcements from the Pi team.
Pi 0.56.0
New version of pi. Download from npm or view release on GitHub.
New Features
- Added OpenCode Go provider support with
opencode-gomodel defaults andOPENCODE_API_KEYenvironment variable support (docs/providers.md, #1757). - Added
branchSummary.skipPromptsetting to skip branch summarization prompts during tree navigation (docs/settings.md, #1792). - Added
gemini-3.1-flash-lite-previewfallback model availability for Google provider catalogs when upstream model metadata lags (README.md, #1785).
Breaking Changes
- Changed scoped model thinking semantics. Scoped entries without an explicit
:<thinking>suffix now inherit the current session thinking level when selected, instead of applying a startup-captured default. - Moved Node OAuth runtime exports off the top-level
@mariozechner/pi-aientry. OAuth login and refresh must be imported from@mariozechner/pi-ai/oauth(#1814).
Added
- Added
branchSummary.skipPromptsetting to skip the summary prompt when navigating branches (#1792). - Added OpenCode Go provider support with
opencode-gomodel defaults andOPENCODE_API_KEYenvironment variable support (#1757). - Added
gemini-3.1-flash-lite-previewfallback model availability in provider catalogs when upstream catalogs lag (#1785).
Changed
- Updated Antigravity Gemini 3.1 model metadata and request headers to match upstream behavior.
Pi 0.55.4
New version of pi. Download from npm or view release on GitHub.
New Features
- Runtime tool registration now applies immediately in active sessions. Tools registered via
pi.registerTool()after startup are available topi.getAllTools()and the LLM without/reload(docs/extensions.md, examples/extensions/dynamic-tools.ts, #1720). - Tool definitions can customize the default system prompt with
promptSnippet(Available tools) andpromptGuidelines(Guidelines) while the tool is active (docs/extensions.md, #1720). - Custom tool renderers can suppress transcript output without leaving extra spacing or empty transcript footprint in interactive rendering (docs/extensions.md, #1719).
Added
- Added optional
promptSnippettoToolDefinitionfor one-line entries in the default system prompt'sAvailable toolssection. Active extension tools appear there when registered and active (#1237 by @semtexzv). - Added optional
promptGuidelinestoToolDefinitionso active tools can append tool-specific bullets to the default system promptGuidelinessection (#1720).
Pi 0.55.2
New version of pi. Download from npm or view release on GitHub.
New Features
- Extensions can dynamically remove custom providers via
pi.unregisterProvider(name), restoring any built-in models that were overridden, without requiring/reload(docs). pi.registerProvider()now takes effect immediately when called outside the initial extension load phase (e.g. from a command handler), removing the need for/reloadafter late registrations.
Added
Pi 0.55.1
New version of pi. Download from npm or view release on GitHub.
New Features
- Added offline startup mode via
--offline(orPI_OFFLINE) to disable startup network operations, with startup network timeouts to avoid hangs in restricted or offline environments. - Added
gemini-3.1-pro-previewmodel support to thegoogle-gemini-cliprovider (#1599 by @audichuang).
Pi 0.55.0
New version of pi. Download from npm or view release on GitHub.
Breaking Changes
- Resource precedence for extensions, skills, prompts, themes, and slash-command name collisions is now project-first (
cwd/.pi) before user-global (~/.pi/agent). If you relied on global resources overriding project resources with the same names, rename or reorder your resources. - Extension registration conflicts no longer unload the entire later extension. All extensions stay loaded, and conflicting command/tool/flag names are resolved by first registration in load order.
Pi 0.54.2
New version of pi. Download from npm or view release on GitHub.
Fixed
- Fixed
.pifolder being created unnecessarily when only reading settings. The folder is now only created when writing project-specific settings. - Fixed extension-driven runtime theme changes to persist in settings so
/settingsreflects the activecurrentThemeafterctx.ui.setTheme(...)(#1483 by @ferologics) - Fixed interactive mode freezes during large streaming
writetool calls by using incremental syntax highlighting while partial arguments stream, with a final full re-highlight after tool-call arguments complete.
Pi 0.54.0
New version of pi. Download from npm or view release on GitHub.
Added
- Added default skill auto-discovery for
.agents/skillslocations. Pi now discovers project skills from.agents/skillsincwdand ancestor directories (up to git repo root, or filesystem root when not in a repo), and global skills from~/.agents/skills, in addition to existing.piskill paths.
Pi 0.53.1
New version of pi. Download from npm or view release on GitHub.
Changed
- Added Gemini 3.1 model catalog entries for all built-in providers that currently expose it:
google,google-vertex,opencode,openrouter, andvercel-ai-gateway. - Added Claude Opus 4.6 Thinking to the
google-antigravitymodel catalog.
Pi 0.53.0
New version of pi. Download from npm or view release on GitHub.
Breaking Changes
SettingsManagerpersistence semantics changed for SDK consumers. Setters now update in-memory state immediately and queue disk writes. Code that requires durable on-disk settings must callawait settingsManager.flush().AuthStorageconstructor is no longer public. Use static factories (AuthStorage.create(...),AuthStorage.fromStorage(...),AuthStorage.inMemory(...)). This breaks code that usednew AuthStorage(...)directly.
Added
- Added
SettingsManager.drainErrors()for caller-controlled settings I/O error handling without manager-side console output. - Added auth storage backends (
FileAuthStorageBackend,InMemoryAuthStorageBackend) andAuthStorage.fromStorage(...)for storage-first auth persistence wiring. - Added Anthropic
claude-sonnet-4-6model fallback entry to generated model definitions.
Changed
SettingsManagernow uses scoped storage abstraction with per-scope locked read/merge/write persistence for global and project settings.
Pi 0.52.12
New version of pi. Download from npm or view release on GitHub.
Added
- Added
transportsetting ("sse","websocket","auto") to/settingsandsettings.jsonfor providers that support multiple transports (currentlyopenai-codexvia OpenAI Codex Responses).
Changed
- Interactive mode now applies transport changes immediately to the active agent session.
- Settings migration now maps legacy
websockets: booleanto the newtransportsetting.
Pi 0.52.10
New version of pi. Download from npm or view release on GitHub.
New Features
- Extension terminal input interception via
terminal_input, allowing extensions to consume or transform raw input before normal TUI handling. See docs/extensions.md. - Expanded CLI model selection:
--modelnow supportsprovider/id, fuzzy matching, and:<thinking>suffixes. See README.md and docs/models.md. - Safer package source handling with stricter git source parsing and improved local path normalization. See docs/packages.md.
- New built-in model definition
gpt-5.3-codex-sparkfor OpenAI and OpenAI Codex providers. - Improved OpenAI stream robustness for malformed trailing tool-call JSON in partial chunks.
- Added built-in GLM-5 model support via z.ai and OpenRouter provider catalogs.
Breaking Changes
ContextUsage.tokensandContextUsage.percentare nownumber | null. After compaction, context token count is unknown until the next LLM response, so these fields returnnull. Extensions that readContextUsagemust handle thenullcase. RemovedusageTokens,trailingTokens, andlastUsageIndexfields fromContextUsage(implementation details that should not have been public) (#1382 by @ferologics)- Git source parsing is now strict without
git:prefix: only protocol URLs are treated as git (https://,http://,ssh://,git://). Shorthand sources likegithub.com/org/repoandgit@github.com:org/reponow require thegit:prefix. (#1426)
Added
- Added extension event forwarding for message and tool execution lifecycles (
message_start,message_update,message_end,tool_execution_start,tool_execution_update,tool_execution_end) (#1375 by @sumeet) - Added
terminal_inputextension event to intercept, consume, or transform raw terminal input before normal TUI handling. - Added
gpt-5.3-codex-sparkmodel definition for OpenAI and OpenAI Codex providers (research preview).
Changed
- Routed GitHub Copilot Claude 4.x models through Anthropic Messages API, with updated Copilot header handling for Claude model requests.
Pi 0.52.9
New version of pi. Download from npm or view release on GitHub.
New Features
- Extensions can trigger a full runtime reload via
ctx.reload(), useful for hot-reloading configuration or restarting the agent. See docs/extensions.md and thereload-runtimeexample (#1371) - Short CLI disable aliases:
-ne(--no-extensions),-ns(--no-skills), and-np(--no-prompt-templates) for faster interactive usage and scripting. /exportHTML now includes collapsible tool input schemas (parameter names, types, and descriptions), improving session review and sharing workflows (#1416 by @marchellodev).pi.getAllTools()now exposes tool parameters in addition to name and description, enabling richer extension integrations (#1416 by @marchellodev).
Added
- Added
ctx.reload()to the extension API for programmatic runtime reload (#1371) - Added short aliases for disable flags:
-nefor--no-extensions,-nsfor--no-skills,-npfor--no-prompt-templates /exportHTML now includes tool input schema (parameter names, types, descriptions) in a collapsible section under each tool (#1416 by @marchellodev)pi.getAllTools()now returns tool parameters in addition to name and description (#1416 by @marchellodev)
Pi 0.52.8
New version of pi. Download from npm or view release on GitHub.
New Features
- Emacs-style kill ring (
ctrl+k/ctrl+y/alt+y) and undo (ctrl+z) in the editor input (#1373 by @Perlence) - OpenRouter
automodel alias (openrouter:auto) for automatic model routing (#1361 by @yogasanas) - Extensions can programmatically paste content into the editor via
pasteToEditorin the extension UI context. See docs/extensions.md (#1351 by @kaofelix) pi <package> --helpand invalid subcommands now show helpful output instead of failing silently (#1347 by @ferologics)
Added
- Added
pasteToEditorto extension UI context for programmatic editor paste (#1351 by @kaofelix) - Added package subcommand help and friendly error messages for invalid commands (#1347 by @ferologics)
- Added OpenRouter
automodel alias for automatic model routing (#1361 by @yogasanas) - Added kill ring (ctrl+k/ctrl+y/alt+y) and undo (ctrl+z) support to the editor input (#1373 by @Perlence)
Changed
- Replaced Claude Opus 4.5 with Opus 4.6 as default model (#1345 by @calvin-hpnet)
Pi 0.52.7
New version of pi. Download from npm or view release on GitHub.
New Features
- Per-model overrides in
models.jsonviamodelOverrides, allowing customization of built-in provider models without replacing provider model lists. See docs/models.md#per-model-overrides. models.jsonprovidermodelsnow merge with built-in models byid, so custom models can be added or replace matching built-ins without full provider replacement. See docs/models.md#overriding-built-in-providers.- Bedrock proxy support for unauthenticated endpoints via
AWS_BEDROCK_SKIP_AUTHandAWS_BEDROCK_FORCE_HTTP1. See docs/providers.md.
Breaking Changes
- Changed
models.jsonprovidermodelsbehavior from full replacement to merge-by-id with built-in models. Built-in models are now kept by default, and custom models upsert byid.
Added
- Added
modelOverridesinmodels.jsonto customize individual built-in models per provider without full provider replacement (#1332 by @charles-cooper) - Added
AWS_BEDROCK_SKIP_AUTHandAWS_BEDROCK_FORCE_HTTP1environment variables for connecting to unauthenticated Bedrock proxies (#1320 by @virtuald)