News
Release notes, project updates, and announcements from the Pi team.
Pi 0.75.2
New version of pi. Download from npm or view release on GitHub.
Fixed
- Fixed Bun-compiled release binaries failing to start when Bun's built-in undici shim lacks npm undici's
installexport (#4661 by @dmasiero). - Fixed Xiaomi MiMo generated model metadata to replay assistant tool-call messages with
reasoning_contentfor thinking-mode multi-turn requests, inherited from@earendil-works/pi-ai(#4678). - Fixed Windows external editor handoff so vim/nvim can receive input after opening from the TUI (#4612).
- Fixed Windows npm self-updates to move loaded native dependency packages out of the active install before reinstalling pi (#4157).
- Fixed
pi update --selfdetection for pnpm v11 global installs whose package path resolves through the pnpm store (#4647). - Fixed Windows pnpm self-updates to resolve pnpm command shims and run through pnpm instead of requiring manual updates (#4157).
- Fixed Windows npm-family command execution to use cross-spawn instead of parsing
.cmdshim internals (#4665).
Pi 0.74.1
New version of pi. Download from npm or view release on GitHub.
New Features
- Image generation support - Added image generation APIs, generated image model metadata, and built-in OpenRouter image generation support inherited from
@earendil-works/pi-ai. - Together AI provider - Added Together AI as a built-in provider with
/loginAPI-key auth, default model resolution, and setup docs. See README.md#providers--models and docs/providers.md. - Windows ARM64 standalone binaries - Added standalone release artifacts for Windows ARM64.
- Improved terminal and markdown rendering - Added markdown list indentation, task-list checkbox rendering, large markdown robustness, and inline image placement fixes inherited from
@earendil-works/pi-tui.
Added
- Added image generation support from
@earendil-works/pi-ai, including image generation APIs, image model metadata, and built-in OpenRouter image generation support (#3887 by @cristinaponcela). - Added Together AI to built-in provider setup,
/loginAPI-key auth, and default model resolution (#3624 by @Nutlope). - Added Windows ARM64 standalone binary release artifacts (#4458 by @brianmichel).
Pi Has a New Home at Earendil
Pi now lives under the Earendil Works GitHub and npm organizations. The old @mariozechner packages are deprecated, and 0.74.0 is the first release from the new home. Read more.
Pi 0.73.1
New version of pi. Download from npm or view release on GitHub.
New Features
- Self-update support for the npm scope migration:
pi update --selfnow supports the upcoming package rename from@mariozechner/pi-coding-agentto@earendil-works/pi-coding-agent. After the new package is published, existing global installs can update through the normal self-update flow; pi will uninstall the old global package and install the package name returned by the version check endpoint. - Interactive OAuth login selection: OAuth providers can now present multiple login choices in
/login, enabling provider-specific interactive authentication flows. See Providers. - JSONC-style
models.jsonparsing:models.jsonnow allows comments and trailing commas, making custom provider and model configuration easier to maintain. See Providers and Custom Providers.
Added
- Added interactive login selection support so OAuth providers can present multiple login choices (#4190 by @mitsuhiko).
Changed
- Changed
pi update --selfto honor the active package name returned by the Pi version check endpoint, defaulting to the current package when omitted and uninstalling the old global package before installing a renamed package. - Changed extension loading to use upstream
jiti2.7 instead of the@mariozechner/jitifork (#4244 by @pi0). - Changed
models.jsonparsing to allow comments and trailing commas (#4162 by @julien-c).
Pi 0.73.0
New version of pi. Download from npm or view release on GitHub.
New Features
- Xiaomi MiMo API billing and regional Token Plan providers -
xiaominow uses API billing, with separatexiaomi-token-plan-{cn,ams,sgp}providers. See docs/providers.md#api-keys and README.md#providers--models. (#4112 by @Phoen1xCode) - Incremental bash output streaming - Bash tool output now appears while commands run instead of only after completion. (#4145)
- Compact read rendering - Interactive
readoutput for Pi docs, context files, and skills is collapsed by default and shows selected line ranges.
Breaking Changes
- Switched the built-in
xiaomiprovider from Token Plan AMS to Xiaomi's API billing endpoint, and renamed its/logindisplay from "Xiaomi MiMo Token Plan" to "Xiaomi MiMo".XIAOMI_API_KEYnow refers to the API billing key from platform.xiaomimimo.com. Users on Token Plan should switch to the appropriatexiaomi-token-plan-*provider and set the corresponding env var (#4112 by @Phoen1xCode).
Added
- Added three Xiaomi MiMo Token Plan regional providers visible in
/login:xiaomi-token-plan-cn(XIAOMI_TOKEN_PLAN_CN_API_KEY),xiaomi-token-plan-ams(XIAOMI_TOKEN_PLAN_AMS_API_KEY),xiaomi-token-plan-sgp(XIAOMI_TOKEN_PLAN_SGP_API_KEY). Each defaults tomimo-v2.5-pro(#4112 by @Phoen1xCode).
Changed
- Changed
readtool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, andSKILL.mdcontents by default in interactive output.
Pi 0.72.0
New version of pi. Download from npm or view release on GitHub.
New Features
- Xiaomi MiMo Token Plan provider - New Anthropic-compatible provider with
XIAOMI_API_KEYauth, default model (mimo-v2.5-pro), and/logindisplay. See docs/providers.md. (#4005 by @Phoen1xCode). - Model thinking level metadata - Models can now declare which thinking levels they support via
thinkingLevelMap, replacing the oldreasoningEffortMap. See docs/models.md#thinking-level-map and docs/custom-provider.md. (#3208). - Custom provider base URL overrides -
pi.registerProvider()now respects per-modelbaseUrlsettings. See docs/custom-provider.md. (#4063). - Post-turn stop callback - Agent loop can now exit gracefully after a completed turn via
shouldStopAfterTurn. Seepackages/agent/README.md. - Self-update detection fix -
pinow correctly identifies and applies available updates. (#3942, #3980, #3922).
Breaking Changes
- Replaced
compat.reasoningEffortMapinmodels.jsonandpi.registerProvider()model definitions with model-levelthinkingLevelMap(#3208). Migration: move old mappings fromcompat.reasoningEffortMaptothinkingLevelMap. Use string values for provider-specific thinking values andnullfor unsupported pi levels that should be hidden and skipped by cycling. Seedocs/models.md#thinking-level-mapanddocs/custom-provider.md.
Added
- Added Xiaomi MiMo Token Plan provider support with
XIAOMI_API_KEY, default model resolution,/logindisplay support, and provider documentation (#4005 by @Phoen1xCode). - Added model-level
thinkingLevelMapsupport inmodels.jsonandpi.registerProvider(), allowing models to expose only the thinking levels they actually support (#3208). - Added
shouldStopAfterTurnagent loop callback for post-turn stop control, inherited from@mariozechner/pi-agent-core. Seepackages/agent/README.md.
Pi 0.71.1
New version of pi. Download from npm or view release on GitHub.
Added
- Added
websocket-cachedto the transport setting options for the OpenAI Codex provider used with ChatGPT subscription auth. This keeps the same WebSocket open for a session and, after the first request, sends only the new conversation items instead of resending the full chat history when possible.
Pi 0.71.0
New version of pi. Download from npm or view release on GitHub.
Breaking Changes
- Removed built-in Google Gemini CLI and Google Antigravity support. Existing configurations using those providers must switch to another supported provider.
New Features
- Cloudflare AI Gateway provider support with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_ID, default model resolution, and/logindisplay. See docs/providers.md#cloudflare-ai-gateway. (#3856 by @mchenco). - Moonshot AI provider support with
MOONSHOT_API_KEY, default model resolution, and/logindisplay. - Mistral Medium 3.5 built-in model support. See docs/providers.md#api-keys. (#4009 by @technocidal).
- Extension APIs can replace finalized
message_endmessages, wrap custom editor factories viactx.ui.getEditorComponent(), and observe thinking level changes. See docs/extensions.md#message_start--message_update--message_end, docs/extensions.md#widgets-status-and-footer, and docs/extensions.md#thinking_level_select. PI_CODING_AGENT_SESSION_DIRconfigures session storage from the environment. See docs/usage.md#environment-variables.
Added
- Added Cloudflare AI Gateway as a built-in provider with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_IDsetup, default model resolution,/logindisplay support, and provider documentation (#3856 by @mchenco). - Added Moonshot AI as a built-in provider with
MOONSHOT_API_KEYsetup, default model resolution, and/logindisplay support. - Added Mistral Medium 3.5 built-in model support via
@mariozechner/pi-ai(#4009 by @technocidal). - Added routed OpenAI-compatible response model metadata in assistant messages, so providers such as OpenRouter can expose the concrete model used (#3968 by @purrgrammer).
- Added
PI_CODING_AGENT_SESSION_DIRas an environment equivalent to--session-dir(#4027). - Added
message_endextension result support for replacing finalized messages, enabling extensions to override assistant usage cost (#3982). - Added top-level
namesupport topi.registerProvider()so extension-registered providers can show a friendly name in/login(#3956). - Added
ctx.ui.getEditorComponent()so extensions can wrap the currently configured custom editor factory (#3935). - Added a
thinking_level_selectextension event for observing thinking level changes (#3888).
Removed
Pi 0.70.6
New version of pi. Download from npm or view release on GitHub.
New Features
- Cloudflare Workers AI provider support with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_IDsetup. See docs/providers.md#api-keys. (#3851 by @mchenco) - Pi update checks now use
pi.devand identify Pi with api/<version>user agent. See docs/packages.md. (#3877 by @mitsuhiko)
Added
Changed
- Changed Pi version checks to identify Pi with a
pi/<version>user agent (#3877 by @mitsuhiko).
Pi 0.70.3
New version of pi. Download from npm or view release on GitHub.
New Features
pi updatecan now update pi itself in addition to installed pi packages. See docs/packages.md. (#3680 by @mitsuhiko)- Azure Cognitive Services endpoint support for Azure OpenAI Responses deployments. See docs/providers.md#api-keys. (#3799 by @marcbloech)
- Suppressible Anthropic extra-usage billing warning via
warnings.anthropicExtraUsagein/settings. See docs/settings.md. (#3808) - Extension-controlled working row visibility via
ctx.ui.setWorkingVisible(), allowing extensions to hide the built-in loader row and render custom working state. See docs/extensions.md and examples/extensions/border-status-editor.ts. (#3674)
Added
- Added
pi updatesupport for updating pi itself in addition to installed pi packages (#3680 by @mitsuhiko). - Added Azure Cognitive Services endpoint support for Azure OpenAI Responses base URLs (#3799 by @marcbloech).
- Added
warnings.anthropicExtraUsageand a/settingswarnings submenu to suppress the Anthropic extra usage billing warning (#3808) - Added
ctx.ui.setWorkingVisible()so extensions can hide the built-in interactive working loader row without reserving layout space, plus a border-status editor example that moves working state into a custom editor border (#3674)
Pi 0.70.1
New version of pi. Download from npm or view release on GitHub.
New Features
- DeepSeek provider support with V4 Flash/Pro models and
DEEPSEEK_API_KEYauthentication. See README.md#providers--models and docs/providers.md#api-keys. - Provider request timeout/retry controls via
retry.provider.{timeoutMs,maxRetries,maxRetryDelayMs}, useful for long-running local inference and provider SDK retry behavior. See docs/settings.md#retry. (#3627)
Added
- Added DeepSeek to built-in provider setup, default model resolution, and provider documentation.
Pi 0.70.0
New version of pi. Download from npm or view release on GitHub.
New Features
- Searchable auth provider login flow: the
/loginprovider selector now supports fuzzy search/filtering, making it faster to find providers when many are configured. See docs/providers.md. (#3572 by @mitsuhiko) - GPT-5.5 Codex support:
openai-codex/gpt-5.5is available as a model option, includingxhighreasoning support and corrected priority-tier pricing. - Terminal progress indicators are now opt-in: OSC 9;4 progress reporting during streaming/compaction is off by default and can be toggled via
terminal.showTerminalProgressin/settings(#3588) --no-builtin-tools/createAgentSession({ noTools: "builtin" })now correctly disables only built-in tools while keeping extension tools active. See docs/extensions.md and README.md (#3592)
Breaking Changes
- Disabled OSC 9;4 terminal progress indicators by default. Set
terminal.showTerminalProgresstotruein/settingsto re-enable (#3588)
Added
- Added searchable auth provider login flow with fuzzy filtering in the provider selector (#3572 by @mitsuhiko)
- Added GPT-5.5 Codex model
- Added auth source labels in
/loginso provider entries can show when auth comes from--api-key, an environment variable, or custom provider fallback without exposing secrets.
Changed
- Updated default model selection across providers to current recommended models.
- Improved stale extension context errors after session replacement or reload to tell extension authors to avoid captured
pi/commandctxand usewithSessionfor post-replacement work.
Pi 0.69.0
New version of pi. Download from npm or view release on GitHub.
New Features
- TypeBox 1.x migration for extensions and SDK integrations, including TypeBox-native tool argument validation that now works in eval-restricted runtimes such as Cloudflare Workers. See docs/extensions.md and docs/sdk.md.
- Stacked extension autocomplete providers via
ctx.ui.addAutocompleteProvider(...), allowing extensions to layer custom completion logic on top of built-in slash and path completion. See docs/extensions.md#autocomplete-providers and examples/extensions/github-issue-autocomplete.ts. - Terminating tool results via
terminate: true, allowing custom tools to end on a final tool call without paying for an automatic follow-up LLM turn. See docs/extensions.md and examples/extensions/structured-output.ts. - OSC 9;4 terminal progress indicators during agent streaming and compaction for supporting terminals.
Breaking Changes
- Migrated first-party coding-agent code, SDK/examples/docs, and package metadata from
@sinclair/typebox0.34.x totypebox1.x. New extensions, SDK integrations, and pi packages should depend on and import fromtypebox. Legacy extension loading still aliases the root@sinclair/typeboxpackage, but@sinclair/typebox/compileris no longer shimmed. This migration also picks up the new@mariozechner/pi-aiTypeBox-native validator path, so tool argument validation now works in eval-restricted runtimes such as Cloudflare Workers instead of being skipped (#3112) - Session-replacement commands now invalidate captured pre-replacement session-bound extension objects after
ctx.newSession(),ctx.fork(), andctx.switchSession(). Oldpiand commandctxreferences now throw instead of silently targeting the replaced session. Migration: if code needs to keep working in the replacement session after one of those calls, passwithSessionto that same method and do the post-switch work there. In practice, move post-switchpi.sendUserMessage(),pi.sendMessage(), and command-ctx/session-manager access intowithSession, and use only theReplacedSessionContextpassed to that callback for session-bound operations. Footguns:withSessionruns after the old extension instance has already receivedsession_shutdown, old cleanup may already have invalidated captured state, captured oldpi/ old commandctxare stale, and previously extracted raw objects such asconst sm = ctx.sessionManagerremain the caller's responsibility and must not be reused after the switch.
Added
- Added support for terminating tool results via
terminate: true, allowing custom tools to end the current tool batch without an automatic follow-up LLM call, plus astructured-output.tsextension example and extension docs showing the pattern (#3525) - Added OSC 9;4 terminal progress indicators during agent streaming and compaction, so terminals like iTerm2, WezTerm, Windows Terminal, and Kitty show activity in their tab bar
- Added
ctx.ui.addAutocompleteProvider(...)for stacking extension autocomplete providers on top of the built-in slash/path provider, plus agithub-issue-autocomplete.tsexample and extension docs (#2983)