News

Release notes, project updates, and announcements from the Pi team.

Release notes

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 --self now supports the upcoming package rename from @mariozechner/pi-coding-agent to @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.json parsing: models.json now 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 --self to 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 jiti 2.7 instead of the @mariozechner/jiti fork (#4244 by @pi0).
  • Changed models.json parsing to allow comments and trailing commas (#4162 by @julien-c).

Read more

Release notes

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 - xiaomi now uses API billing, with separate xiaomi-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 read output for Pi docs, context files, and skills is collapsed by default and shows selected line ranges.

Breaking Changes

  • Switched the built-in xiaomi provider from Token Plan AMS to Xiaomi's API billing endpoint, and renamed its /login display from "Xiaomi MiMo Token Plan" to "Xiaomi MiMo". XIAOMI_API_KEY now refers to the API billing key from platform.xiaomimimo.com. Users on Token Plan should switch to the appropriate xiaomi-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 to mimo-v2.5-pro (#4112 by @Phoen1xCode).

Changed

  • Changed read tool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, and SKILL.md contents by default in interactive output.

Read more

Release notes

Pi 0.72.0

New version of pi. Download from npm or view release on GitHub.

New Features

Breaking Changes

  • Replaced compat.reasoningEffortMap in models.json and pi.registerProvider() model definitions with model-level thinkingLevelMap (#3208). Migration: move old mappings from compat.reasoningEffortMap to thinkingLevelMap. Use string values for provider-specific thinking values and null for unsupported pi levels that should be hidden and skipped by cycling. See docs/models.md#thinking-level-map and docs/custom-provider.md.

Added

  • Added Xiaomi MiMo Token Plan provider support with XIAOMI_API_KEY, default model resolution, /login display support, and provider documentation (#4005 by @Phoen1xCode).
  • Added model-level thinkingLevelMap support in models.json and pi.registerProvider(), allowing models to expose only the thinking levels they actually support (#3208).
  • Added shouldStopAfterTurn agent loop callback for post-turn stop control, inherited from @mariozechner/pi-agent-core. See packages/agent/README.md.

Read more

Release notes

Pi 0.71.1

New version of pi. Download from npm or view release on GitHub.

Added

  • Added websocket-cached to 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.

Read more

Release notes

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

Added

  • Added Cloudflare AI Gateway as a built-in provider with CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_ID setup, default model resolution, /login display support, and provider documentation (#3856 by @mchenco).
  • Added Moonshot AI as a built-in provider with MOONSHOT_API_KEY setup, default model resolution, and /login display 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_DIR as an environment equivalent to --session-dir (#4027).
  • Added message_end extension result support for replacing finalized messages, enabling extensions to override assistant usage cost (#3982).
  • Added top-level name support to pi.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_select extension event for observing thinking level changes (#3888).

Removed

  • Removed the discontinued Qwen CLI OAuth custom provider extension example (#3832 by @4h9fbZ).
  • Removed Google Gemini CLI and Google Antigravity built-in login, default model, documentation, and example extension support.

Read more

Release notes

Pi 0.70.6

New version of pi. Download from npm or view release on GitHub.

New Features

Added

  • Added Cloudflare Workers AI as a built-in provider with CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID setup, default model resolution, /login support, and provider documentation (#3851 by @mchenco).

Changed

  • Changed Pi version checks to identify Pi with a pi/<version> user agent (#3877 by @mitsuhiko).

Read more

Release notes

Pi 0.70.3

New version of pi. Download from npm or view release on GitHub.

New Features

Added

  • Added pi update support 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.anthropicExtraUsage and a /settings warnings 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)

Read more

Release notes

Pi 0.70.2

New version of pi. Download from npm or view release on GitHub.

Fixed

  • Fixed provider retry/timeout forwarding to omit undefined provider request controls, avoiding downstream SDK validation errors such as timeout must be an integer when retry.provider.timeoutMs is not configured (#3627)

Read more

Release notes

Pi 0.70.1

New version of pi. Download from npm or view release on GitHub.

New Features

Added

  • Added DeepSeek to built-in provider setup, default model resolution, and provider documentation.

Read more

Release notes

Pi 0.70.0

New version of pi. Download from npm or view release on GitHub.

New Features

  • Searchable auth provider login flow: the /login provider 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.5 is available as a model option, including xhigh reasoning 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.showTerminalProgress in /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.showTerminalProgress to true in /settings to 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 /login so 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/command ctx and use withSession for post-replacement work.

Read more

Release notes

Pi 0.69.0

New version of pi. Download from npm or view release on GitHub.

New Features

Breaking Changes

  • Migrated first-party coding-agent code, SDK/examples/docs, and package metadata from @sinclair/typebox 0.34.x to typebox 1.x. New extensions, SDK integrations, and pi packages should depend on and import from typebox. Legacy extension loading still aliases the root @sinclair/typebox package, but @sinclair/typebox/compiler is no longer shimmed. This migration also picks up the new @mariozechner/pi-ai TypeBox-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(), and ctx.switchSession(). Old pi and command ctx references 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, pass withSession to that same method and do the post-switch work there. In practice, move post-switch pi.sendUserMessage(), pi.sendMessage(), and command-ctx/session-manager access into withSession, and use only the ReplacedSessionContext passed to that callback for session-bound operations. Footguns: withSession runs after the old extension instance has already received session_shutdown, old cleanup may already have invalidated captured state, captured old pi / old command ctx are stale, and previously extracted raw objects such as const sm = ctx.sessionManager remain 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 a structured-output.ts extension 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 a github-issue-autocomplete.ts example and extension docs (#2983)

Read more

Release notes

Pi 0.68.1

New version of pi. Download from npm or view release on GitHub.

New Features

Added

  • Added built-in Fireworks provider support, including FIREWORKS_API_KEY setup/docs and the default Fireworks model accounts/fireworks/models/kimi-k2p6 (#3519)

Read more

Release notes

Pi 0.68.0

New version of pi. Download from npm or view release on GitHub.

New Features

Breaking Changes

  • Changed SDK and CLI tool selection from cwd-bound built-in tool instances to tool-name allowlists. createAgentSession({ tools }) now expects string[] names such as "read" and "bash" instead of Tool[], --tools now allowlists built-in, extension, and custom tools by name, and --no-tools now disables all tools by default rather than only built-ins. Migrate SDK code from tools: [readTool, bashTool] to tools: ["read", "bash"] (#2835, #3452)
  • Removed prebuilt cwd-bound tool and tool-definition exports from @mariozechner/pi-coding-agent, including readTool, bashTool, editTool, writeTool, grepTool, findTool, lsTool, readOnlyTools, codingTools, and the corresponding *ToolDefinition values. Use the explicit factory exports instead, for example createReadTool(cwd), createBashTool(cwd), createCodingTools(cwd), and createReadToolDefinition(cwd) (#3452)
  • Removed ambient process.cwd() / default agent-dir fallback behavior from public resource helpers. DefaultResourceLoader, loadProjectContextFiles(), and loadSkills() now require explicit cwd/agent-dir style inputs, and exported system-prompt option types now require an explicit cwd. Pass the session or project cwd explicitly instead of relying on process-global defaults (#3452)

Added

  • Added extension support for customizing the interactive streaming working indicator via ctx.ui.setWorkingIndicator(), including custom animated frames, static indicators, hidden indicators, a new working-indicator.ts example extension, and updated extension/TUI/RPC docs (#3413)
  • Added systemPromptOptions (BuildSystemPromptOptions) to before_agent_start extension events, so extensions can inspect the structured inputs used to build the current system prompt (#3473 by @dljsjr)
  • Added /clone to duplicate the current active branch into a new session, while keeping /fork focused on forking from a previous user message (#2962)
  • Added ctx.fork() support for position: "before" | "at" so extensions and integrations can branch before a user message or duplicate the current point in the conversation; the interactive clone/fork UX builds on that runtime support (#3431 by @mitsuhiko)
  • Added configurable keybinding ids for scoped model selector actions and tree filter actions, so those interactive shortcuts can be remapped in keybindings.json (#3343 by @mpazik)
  • Added PI_OAUTH_CALLBACK_HOST support for built-in OAuth login flows, allowing local callback servers used by pi auth to bind to a custom interface instead of hardcoded 127.0.0.1 (#3409 by @Michaelliv)
  • Added reason and targetSessionFile metadata to session_shutdown extension events, so extensions can distinguish quit, reload, new-session, resume, and fork teardown paths (#2863)

Changed

  • Changed pi update to batch npm package updates per scope and run git package updates with bounded parallelism, reducing multi-package update time while preserving skip behavior for pinned and already-current packages (#2980)
  • Changed Bedrock session requests to omit maxTokens when model token limits are unknown and to omit temperature when unset, letting Bedrock use provider defaults and avoid unnecessary TPM quota reservation (#3400 by @wirjo)

Read more

Release notes

Pi 0.67.67

New version of pi. Download from npm or view release on GitHub.

New Features

  • Bedrock sessions can now authenticate with AWS_BEARER_TOKEN_BEDROCK, enabling Converse API access without local SigV4 credentials. See docs/providers.md#amazon-bedrock.

Added

  • Added Bedrock bearer-token authentication support via AWS_BEARER_TOKEN_BEDROCK, enabling coding-agent sessions to use Bedrock Converse without local SigV4 credentials (#3125 by @wirjo)

Read more

Release notes

Pi 0.67.6

New version of pi. Download from npm or view release on GitHub.

New Features

  • Prompt templates support an argument-hint frontmatter field that renders before the description in the / autocomplete dropdown, using <angle> for required and [square] for optional arguments. See docs/prompt-templates.md#argument-hints.
  • New after_provider_response extension hook lets extensions inspect provider HTTP status codes and headers immediately after each response is received and before stream consumption begins. See docs/extensions.md.
  • Compact interactive startup header with a comma-separated view of loaded AGENTS.md files, prompt templates, skills, and extensions. Press Ctrl+O to toggle the expanded listing.
  • Markdown links in assistant output now render as OSC 8 hyperlinks on terminals that advertise support; unknown terminals and tmux/screen default to plain text so URLs are never silently dropped.

Added

  • Added argument-hint frontmatter field for prompt templates, displayed before the description in the autocomplete dropdown (#2780 by @andresvi94)
  • Added after_provider_response extension hook so extensions can inspect provider HTTP status codes and headers after each provider response is received and before stream consumption begins (#3128)
  • Added OSC 8 hyperlink rendering for markdown links when the terminal advertises support (#3248 by @ofa1)

Changed

  • Changed interactive startup header to a compact, comma-separated view of loaded AGENTS.md files, prompt templates, skills, and extensions, with Ctrl+O to toggle the expanded listing (#3267)
  • Tightened hyperlink capability detection to default hyperlinks: false for unknown terminals and force it off under tmux/screen (including nested sessions), preventing markdown link URLs from disappearing on terminals that silently swallow OSC 8 sequences (#3248)

Read more

Release notes

Pi 0.67.5

New version of pi. Download from npm or view release on GitHub.

Fixed

  • Fixed Opus 4.7 adaptive thinking configuration across Anthropic and Bedrock providers by recognizing Opus 4.7 adaptive-thinking support and mapping xhigh reasoning to provider-supported effort values (#3286 by @markusylisiurunen)
  • Fixed Zellij Shift+Enter regressions by reverting the Zellij-specific Kitty keyboard query bypass and restoring the previous keyboard negotiation behavior (#3259)

Read more