# pi changelog > pi release notes. - Vendor: pi - Category: AI - Official site: https://github.com/earendil-works/pi - Tracked by: What's New (https://whatsnew.fyi/product/pi) - Harvested from: GitHub (earendil-works/pi) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v0.82.1 - Date: 2026-07-25 - Version: v0.82.1 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.82.1 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.82.1 - **added** — Claude Opus 5 available on Anthropic and Amazon Bedrock with adaptive thinking, inference profiles, and prompt caching - **added** — Anthropic gateway bearer authentication via ANTHROPIC_AUTH_TOKEN for Anthropic-compatible gateways - **added** — Exposed outputPad setting to custom message renderers - **changed** — Model catalog refreshes revalidate with If-None-Match so unchanged provider catalogs answer with empty 304 instead of full download - **changed** — Radius OAuth device authorization, token exchange, and refresh requests use configured gateway directly - **changed** — Model loading errors append underlying cause to provide better error messages such as OAuth refresh failures - **fixed** — Compaction and branch summaries for providers whose authentication resolves entirely to request headers - **fixed** — Unavailable scoped models are no longer hidden from /models endpoint - **fixed** — Startup context file discovery skips directories that match context file names to prevent EISDIR warnings - **fixed** — llama.cpp extension persists model catalog so models stay listed before first successful refresh ###### New Features - **Claude Opus 5** — Available on Anthropic and Amazon Bedrock with adaptive thinking (including `xhigh`), inference profiles, and prompt caching. See [Providers](https://github.com/earendil-works/pi/blob/v0.82.1/packages/coding-agent/docs/providers.md#api-keys). - **Anthropic gateway bearer auth** — `ANTHROPIC_AUTH_TOKEN` authenticates against Anthropic-compatible gateways that require `Authorization: Bearer`, including compaction and branch summaries. See [Environment Variables or Auth File](https://github.com/earendil-works/pi/blob/v0.82.1/packages/coding-agent/docs/providers.md#environment-variables-or-auth-file). - **Faster, more resilient model catalogs** — pi.dev catalogs revalidate with `If-None-Match` so unchanged providers answer with an empty `304`, and llama.cpp models stay listed across restarts. See [llama.cpp](https://github.com/earendil-works/pi/blob/v0.82.1/packages/coding-agent/docs/llama-cpp.md). ###### Added - Exposed the `outputPad` setting to custom message renderers. See [Extensions](https://github.com/earendil-works/pi/blob/v0.82.1/packages/coding-agent/docs/extensions.md) ([#7045](https://github.com/earendil-works/pi/pull/7045) by [@xl0](https://github.com/xl0)). - Added inherited `ANTHROPIC_AUTH_TOKEN` bearer authentication for Anthropic-compatible gateways. See [Providers](https://github.com/earendil-works/pi/blob/v0.82.1/packages/coding-agent/docs/providers.md#environment-variables-or-auth-file) ([#5871](https://github.com/earendil-works/pi/issues/5871)). - Added inherited Claude Opus 5 support for Anthropic and Amazon Bedrock with adaptive thinking, inference profiles, prompt caching, and preserved AWS validation messages ([#7081](https://github.com/earendil-works/pi/pull/7081) by [@unexge](https://github.com/unexge), [#7083](https://github.com/earendil-works/pi/pull/7083) by [@davidbrai](https://github.com/davidbrai)). ###### Changed - Changed pi.dev model catalog refreshes to revalidate with `If-None-Match`, so unchanged provider catalogs answer with an empty `304` instead of a full download. - Changed inherited Radius OAuth device authorization, token exchange, and refresh requests to use the configured gateway directly. - Changed inherited model loading errors to append the underlying cause, so auth failures such as `OAuth refresh failed for openai-codex` report the provider response instead of a bare wrapper message. ###### Fixed - Fixed compaction and branch summaries for providers whose authentication resolves entirely to request headers ([#5871](https://github.com/earendil-works/pi/issues/5871)) - Fixed unavailable scoped models being hidden from `/models`, allowing them to be removed without editing settings manually ([#6949](https://github.com/earendil-works/pi/issues/6949), [#7032](https://github.com/earendil-works/pi/pull/7032) by [@christianklotz](https://github.com/christianklotz)). - Fixed startup context file discovery to skip directories that match context file names such as `AGENTS.md`, which produced `EISDIR` warnings ([#7106](https://github.com/earendil-works/pi/pull/7106) by [@mrexodia](https://github.com/mrexodia)). - Fixed the llama.cpp extension to persist its model catalog, so llama.cpp models stay listed before the first successful refresh. See [llama.cpp](https://github.com/earendil-works/pi/blob/v0.82.1/packages/coding-agent/docs/llama-cpp.md) ([#7072](https://github.com/earendil-works/pi/pull/7072) by [@davidbrai](https://github.com/davidbrai)). ### v0.82.0 - Date: 2026-07-24 - Version: v0.82.0 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.82.0 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.82.0 - **added** — Tools can prefer or require strict JSON Schema sampling or use OpenAI Lark/regex grammars with model capability metadata preventing unsupported requests - **added** — OpenRouter and Kimi Code subscription sign-in via /login to authorize without manually configuring API keys - **added** — Bash tools receive current session/model metadata including PI_SESSION_ID, PI_SESSION_FILE, PI_PROVIDER, PI_MODEL, and PI_REASONING_LEVEL - **added** — Direct RPC bash commands stream correlated output via bash_execution_update events - **added** — Inherited Tool.constrainedSampling with strict JSON Schema and OpenAI Lark/regex grammar variants across OpenAI, Anthropic, Amazon Bedrock, Google Gemini, and Mistral - **added** — Inherited supportsGrammarTools and supportsStrictTools compatibility flags and expanded supportsStrictMode coverage with generated model capability metadata - **added** — Kimi Code subscription OAuth login for the Kimi For Coding provider with device authorization and automatic token refresh - **added** — OpenRouter OAuth PKCE login through /login minting a user-controlled API key - **added** — Streaming bash_execution_update events for direct RPC bash commands correlated with request IDs - **changed** — Generated model catalogs now expose only provider-verified reasoning effort levels from models.dev - **fixed** — DNS lookup failures such as getaddrinfo, ENOTFOUND, and EAI_AGAIN now trigger automatic assistant retries - **fixed** — OpenRouter Anthropic cache breakpoints now advance through tool results and cache control enabled for ~anthropic/*-latest aliases - **fixed** — OpenAI Codex WebSocket sessions now retry once without a missing previous-response continuation after previous_response_not_found errors - **fixed** — TUI debug and crash logs now respect custom agent directories instead of always writing under ~/.pi/agent - **fixed** — Slow Ctrl+G external-editor startup when the system temporary directory contains many entries - **fixed** — Startup resource display now preserves relative paths for sibling npm extensions loaded by a package - **fixed** — Compaction and branch-summary requests now use fresh routing session IDs with prompt caching disabled where supported - **fixed** — Explicit self-updates when PI_SKIP_VERSION_CHECK is set - **fixed** — Scoped model IDs containing brackets now resolve as literal exact matches before glob matching ###### New Features - **Constrained tool sampling** — Tools can prefer or require strict JSON Schema sampling or use OpenAI Lark/regex grammars, with model capability metadata preventing unsupported requests. See [Constrained Sampling for Tools](https://github.com/earendil-works/pi/blob/v0.82.0/packages/ai/README.md#constrained-sampling-for-tools). - **OpenRouter and Kimi Code sign-in** — Use `/login` to authorize OpenRouter or a Kimi Code subscription without manually configuring API keys. See [OpenRouter](https://github.com/earendil-works/pi/blob/v0.82.0/packages/coding-agent/docs/providers.md#openrouter). - **Session-aware, streaming bash integrations** — Bash tools receive current session/model metadata, while direct RPC bash commands stream correlated output. See [Bash Tool Session Environment](https://github.com/earendil-works/pi/blob/v0.82.0/packages/coding-agent/docs/environment-variables.md#bash-tool-session-environment) and [RPC bash events](https://github.com/earendil-works/pi/blob/v0.82.0/packages/coding-agent/docs/rpc.md#bash_execution_update). ###### Added - Added inherited `Tool.constrainedSampling` with strict JSON Schema (`prefer`/`require`) and OpenAI Lark/regex grammar variants across OpenAI, Anthropic, Amazon Bedrock, Google Gemini, and Mistral. See [Constrained Sampling for Tools](https://github.com/earendil-works/pi/blob/v0.82.0/packages/ai/README.md#constrained-sampling-for-tools). - Added inherited `supportsGrammarTools` and `supportsStrictTools` compatibility flags, expanded `supportsStrictMode` coverage, and generated model capability metadata to gate constrained sampling. - Added inherited Kimi Code subscription OAuth login for the Kimi For Coding provider, including device authorization and automatic token refresh ([#6935](https://github.com/earendil-works/pi/pull/6935) by [@zaycruz](https://github.com/zaycruz)). - Added inherited OpenRouter OAuth PKCE login through `/login`, minting a user-controlled API key. See [OpenRouter](https://github.com/earendil-works/pi/blob/v0.82.0/packages/coding-agent/docs/providers.md#openrouter) ([#6927](https://github.com/earendil-works/pi/pull/6927) by [@rsaryev](https://github.com/rsaryev)). - Exposed `PI_SESSION_ID`, `PI_SESSION_FILE`, `PI_PROVIDER`, `PI_MODEL`, and `PI_REASONING_LEVEL` to commands run by built-in and factory-created bash tools. See [Bash Tool Session Environment](https://github.com/earendil-works/pi/blob/v0.82.0/packages/coding-agent/docs/environment-variables.md#bash-tool-session-environment). - Added streaming `bash_execution_update` events for direct RPC bash commands, correlated with request IDs. See [RPC bash events](https://github.com/earendil-works/pi/blob/v0.82.0/packages/coding-agent/docs/rpc.md#bash_execution_update) ([#6971](https://github.com/earendil-works/pi/pull/6971) by [@ananthakumaran](https://github.com/ananthakumaran)). ###### Changed - Changed inherited generated model catalogs to expose only provider-verified reasoning effort levels from models.dev ([#6928](https://github.com/earendil-works/pi/pull/6928) by [@davidbrai](https://github.com/davidbrai)). ###### Fixed - Fixed inherited DNS lookup failures such as `getaddrinfo`, `ENOTFOUND`, and `EAI_AGAIN` to trigger automatic assistant retries ([#6946](https://github.com/earendil-works/pi/pull/6946) by [@christianklotz](https://github.com/christianklotz)). - Fixed inherited OpenRouter Anthropic cache breakpoints to advance through tool results and enabled cache control for `~anthropic/*-latest` aliases ([#6941](https://github.com/earendil-works/pi/pull/6941) by [@mteam88](https://github.com/mteam88)). - Fixed inherited OpenAI Codex WebSocket sessions to retry once without a missing previous-response continuation after `previous_response_not_found` errors ([#6955](https://github.com/earendil-works/pi/pull/6955) by [@davidbrai](https://github.com/davidbrai)). - Fixed TUI debug and crash logs to respect custom agent directories instead of always writing under `~/.pi/agent` _[Truncated at 4000 characters — full notes: https://github.com/earendil-works/pi/releases/tag/v0.82.0]_ ### v0.81.1 - Date: 2026-07-21 - Version: v0.81.1 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.81.1 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.81.1 - **added** — GitHub releases now include deterministic, checksummed source archives with instructions for rebuilding standalone binaries - **fixed** — Compaction and branch summarization now retry transient provider failures using the configured retry policy, with retry lifecycle events exposed to interactive, JSON, RPC, and SDK consumers - **fixed** — Interactive startup no longer waits for background model catalog refresh while computing the footer provider count - **fixed** — Restored the default stream fallback for extensions using the pre-0.81 agent-core API - **fixed** — Kimi K3 models from Moonshot AI and Moonshot AI China now use the OpenAI thinking format and expose reasoning effort support ###### New Features - **Verifiable release source archives** — GitHub releases now include deterministic, checksummed source archives with instructions for rebuilding standalone binaries. See [Building standalone binaries from release source](https://github.com/earendil-works/pi/blob/v0.81.1/README.md#building-standalone-binaries-from-release-source). - **Resilient compaction and branch summaries** — Transient provider failures now follow the configured retry policy, with retry lifecycle events available to interactive, JSON, RPC, and SDK consumers. See [Compaction & Branch Summarization](https://github.com/earendil-works/pi/blob/v0.81.1/packages/coding-agent/docs/compaction.md) and [RPC retry events](https://github.com/earendil-works/pi/blob/v0.81.1/packages/coding-agent/docs/rpc.md#summarization_retry_scheduled--summarization_retry_attempt_start--summarization_retry_finished). ###### Added - Added deterministic, checksummed source archives to GitHub releases with documented standalone binary rebuild instructions ([#6913](https://github.com/earendil-works/pi/pull/6913) by [@christianklotz](https://github.com/christianklotz)). ###### Fixed - Fixed compaction and branch summarization to retry transient provider failures using the configured retry policy, with retry lifecycle events exposed to interactive, JSON, RPC, and SDK consumers ([#6901](https://github.com/earendil-works/pi/pull/6901) by [@davidbrai](https://github.com/davidbrai)). - Fixed interactive startup waiting for background model catalog refresh while computing the footer provider count. - Restored the default stream fallback for extensions using the pre-0.81 agent-core API ([#6915](https://github.com/earendil-works/pi/issues/6915)). - Fixed inherited Kimi K3 models from Moonshot AI and Moonshot AI China to use the OpenAI thinking format and expose reasoning effort support. ### v0.81.0 - Date: 2026-07-21 - Version: v0.81.0 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.81.0 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.81.0 - **added** — Local llama.cpp model management with router connection, Hugging Face model search and downloads, and explicit load or unload with live progress - **added** — Full provider extensions allowing registration of complete pi-ai providers with authentication, model refresh, filtering, and custom streaming - **added** — Qwen Token Plan and Qwen Token Plan China built-in subscription providers with regional endpoints and API-key authentication - **added** — Expanded usage accounting for tools, compaction, and branch summaries persisted in sessions and included in session totals - **added** — get_available_thinking_levels RPC command and RpcClient.getAvailableThinkingLevels() method - **added** — Message and tool execution lifecycle event types exported from the package root - **fixed** — Persisted remote model catalogs overriding newer bundled catalogs after an upgrade - **fixed** — Inherited stored API-key credentials to apply their provider-scoped env values, including Amazon Bedrock profiles - **fixed** — Inherited OpenAI-compatible cross-provider replay to keep tool call IDs unique when multiple calls share a provider call ID - **fixed** — Inherited Kimi K3 thinking levels to expose low, high, and max, and normalized the k2p7 alias to kimi-for-coding - **fixed** — Inherited OpenCode Go models routed through the OpenAI Responses API - **fixed** — Inherited pi-ai package metadata to avoid repeated consumer lockfile changes - **fixed** — Inherited terminal shutdown to clear the editor's inverted software cursor before restoring the hardware cursor - **fixed** — Inherited ANSI-aware text wrapping to recognize CRLF and CR line endings while preserving styles - **fixed** — Editor paste registry corruption after deleting and undoing paste markers, preventing literal or mismatched paste markers in submitted prompts - **fixed** — Sessionless OpenAI Codex WebSocket requests to use UUIDv7 request IDs - **fixed** — Inherited GPT-5.6 Codex models to default to the 272K context window, avoiding automatic long-context pricing - **fixed** — Messages queued during compaction to preserve steering and follow-up delivery behavior - **fixed** — Read tool errors being syntax-highlighted as if they were file contents - **fixed** — Persisted sessions being read and parsed twice when opened, reducing startup latency for large sessions ###### New Features - **Local llama.cpp model management** — Connect to a llama.cpp router, search and download Hugging Face models, and explicitly load or unload models with live progress. See [llama.cpp](https://github.com/earendil-works/pi/blob/v0.81.0/packages/coding-agent/docs/llama-cpp.md). - **Full provider extensions** — Extensions can register complete pi-ai providers with authentication, model refresh, filtering, and custom streaming. See [Register New Provider](https://github.com/earendil-works/pi/blob/v0.81.0/packages/coding-agent/docs/custom-provider.md#register-new-provider). - **Qwen Token Plan providers** — Use the built-in international and China subscription providers with regional endpoints and API-key authentication. See [API Keys](https://github.com/earendil-works/pi/blob/v0.81.0/packages/coding-agent/docs/providers.md#api-keys). - **Expanded usage accounting** — Tool, compaction, and branch-summary usage is persisted and included in session totals. See [Compaction & Branch Summarization](https://github.com/earendil-works/pi/blob/v0.81.0/packages/coding-agent/docs/compaction.md). ###### Added - Added Qwen Token Plan and Qwen Token Plan China to built-in provider setup, default model resolution, and provider documentation ([#6858](https://github.com/earendil-works/pi/pull/6858) by [@QuintinShaw](https://github.com/QuintinShaw)). - Added the `get_available_thinking_levels` RPC command and `RpcClient.getAvailableThinkingLevels()` method ([#6865](https://github.com/earendil-works/pi/pull/6865) by [@cristinaponcela](https://github.com/cristinaponcela)). - Exported message and tool execution lifecycle event types from the package root ([#6772](https://github.com/earendil-works/pi/pull/6772) by [@davidbrai](https://github.com/davidbrai)). - Added built-in llama.cpp router support with `/login` connection setup and `/llama` Hugging Face model search and downloads, explicit loading, unloading, and live progress. See [llama.cpp](https://github.com/earendil-works/pi/blob/v0.81.0/packages/coding-agent/docs/llama-cpp.md). - Added extension registration for complete pi-ai providers, including native authentication, model refresh, filtering, and streaming behavior. - Added usage accounting for tools, compaction, and branch summaries in persisted sessions, footer totals, and session statistics ([#6671](https://github.com/earendil-works/pi/pull/6671) by [@davidbrai](https://github.com/davidbrai)). ###### Fixed - Updated the packaged `brace-expansion` dependency to 5.0.7 ([#6896](https://github.com/earendil-works/pi/pull/6896) by [@davidbrai](https://github.com/davidbrai)). - Fixed persisted remote model catalogs from overriding newer bundled catalogs after an upgrade. - Fixed inherited stored API-key credentials to apply their provider-scoped `env` values, including Amazon Bedrock profiles ([#6864](https://github.com/earendil-works/pi/pull/6864) by [@cristinaponcela](https://github.com/cristinaponcela)). - Fixed inherited OpenAI-compatible cross-provider replay to keep tool call IDs unique when multiple calls share a provider call ID ([#6854](https://github.com/earendil-works/pi/pull/6854) by [@cristinaponcela](https://github.com/cristinaponcela)). - Fixed inherited Kimi K3 thinking levels to expose low, high, and max, and normalized the `k2p7` alias to `kimi-for-coding`. - Fixed inherited OpenCode Go models routed through the OpenAI Responses API. - Fixed inherited `pi-ai` package metadata to avoid repeated consumer lockfile changes ([#6812](https://github.com/earendil-works/pi/pull/6812) by [@jmfederico](https://github.com/jmfederico)). - Fixed inherited terminal shutdown to clear the editor's inverted software cursor before restoring the hardware cursor ([#6790](https://github.com/earendil-works/pi/pull/6790) by [@dam9000](https://github.com/dam9000)). - Fixed inherited ANSI-aware text wrapping to recognize CRLF and CR line endings while preserving styles ([#6764](https://github.com/earendil-works/pi/pull/6764) by _[Truncated at 4000 characters — full notes: https://github.com/earendil-works/pi/releases/tag/v0.81.0]_ ### v0.80.10 - Date: 2026-07-16 - Version: v0.80.10 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.80.10 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.80.10 - **added** — Kimi Coding models now use adaptive thinking correctly with K3 exposing its supported max level and supporting replayed empty-signature thinking blocks - **fixed** — Kimi Coding requests now use Anthropic adaptive thinking effort without token budgets, and empty thinking signatures are enabled for K3 and kimi-for-coding - **fixed** — Kimi K3 pricing metadata for Moonshot AI and Moonshot AI China - **fixed** — Kimi Coding K3 thinking-level metadata to expose only the supported max level - **fixed** — Catalog generation restoring xAI models removed in 0.80.9 ###### New Features - **Kimi Coding thinking compatibility** — Kimi Coding models now use adaptive thinking correctly; K3 exposes its supported `max` level and supports replaying empty-signature thinking blocks. See [Kimi For Coding setup](https://github.com/earendil-works/pi/blob/v0.80.10/packages/coding-agent/docs/providers.md#api-keys) and [Model Options](https://github.com/earendil-works/pi/blob/v0.80.10/packages/coding-agent/docs/usage.md#model-options). ###### Fixed - Fixed inherited Kimi Coding requests to use Anthropic adaptive thinking effort without token budgets, and enabled empty thinking signatures for K3 and `kimi-for-coding`. - Fixed inherited Kimi K3 pricing metadata for Moonshot AI and Moonshot AI China. - Fixed inherited Kimi Coding K3 thinking-level metadata to expose only the supported `max` level ([#6737](https://github.com/earendil-works/pi/issues/6737)). - Fixed inherited catalog generation restoring xAI models removed in 0.80.9 ([#6736](https://github.com/earendil-works/pi/issues/6736)). ### v0.80.9 - Date: 2026-07-16 - Version: v0.80.9 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.80.9 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.80.9 - **added** — Add inherited Kimi K3 support for Kimi Coding, Moonshot AI, Moonshot AI China, OpenRouter, and Vercel AI Gateway - **added** — Add Kimi deferred tool loading for extension-driven tool activation - **changed** — Change xAI login to use a prefilled device-authorization link labeled "Sign in with SuperGrok or X Premium" - **changed** — Change the default xAI model to Grok 4.5 - **fixed** — Fix inherited Kimi K3 output limits for Vercel AI Gateway and OpenRouter models - **fixed** — Fix cloning or forking a session before its first assistant response to explain that the session must be saved first - **removed** — Remove Grok 3, Grok 3 Fast, Grok 4.20 variants, and Grok Code Fast 1 from the built-in xAI model catalog ###### New Features - **Kimi K3 and deferred tool loading** — Use Kimi K3 across built-in providers, including progressive extension tool activation through Kimi’s native protocol. See [Dynamic Tool Loading](https://github.com/earendil-works/pi/blob/v0.80.9/packages/coding-agent/docs/extensions.md#dynamic-tool-loading), [OpenAI Compatibility](https://github.com/earendil-works/pi/blob/v0.80.9/packages/coding-agent/docs/models.md#openai-compatibility), and the [`kimi-deferred-tools.ts`](https://github.com/earendil-works/pi/blob/v0.80.9/packages/coding-agent/examples/extensions/kimi-deferred-tools.ts) example. ###### Added - Added inherited Kimi K3 support for Kimi Coding, Moonshot AI, Moonshot AI China, OpenRouter, and Vercel AI Gateway. - Added Kimi deferred tool loading for extension-driven tool activation. See [Dynamic Tool Loading](https://github.com/earendil-works/pi/blob/v0.80.9/packages/coding-agent/docs/extensions.md#dynamic-tool-loading), [OpenAI Compatibility](https://github.com/earendil-works/pi/blob/v0.80.9/packages/coding-agent/docs/models.md#openai-compatibility), and the [`kimi-deferred-tools.ts`](https://github.com/earendil-works/pi/blob/v0.80.9/packages/coding-agent/examples/extensions/kimi-deferred-tools.ts) example. ###### Changed - Changed xAI login to use a prefilled device-authorization link labeled “Sign in with SuperGrok or X Premium,” and changed the default xAI model to Grok 4.5 ([#6734](https://github.com/earendil-works/pi/pull/6734) by [@Jaaneek](https://github.com/Jaaneek)). ###### Fixed - Fixed inherited Kimi K3 output limits for Vercel AI Gateway and OpenRouter models. - Fixed cloning or forking a session before its first assistant response to explain that the session must be saved first. ###### Removed - Removed Grok 3, Grok 3 Fast, Grok 4.20 variants, and Grok Code Fast 1 from the built-in xAI model catalog ([#6734](https://github.com/earendil-works/pi/pull/6734) by [@Jaaneek](https://github.com/Jaaneek)). ### v0.80.8 - Date: 2026-07-16 - Version: v0.80.8 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.80.8 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.80.8 - **added** — ModelRuntime centralizes model configuration, provider-owned /login, and dynamic provider catalogs - **added** — /model refreshes configured providers in the background and pi update --models forces an immediate model catalog refresh - **added** — xAI device-code OAuth and Grok 4.5 Responses support with low, medium, or high thinking levels - **removed** — Replaced SDK's CreateAgentSessionOptions.authStorage and modelRegistry options with async modelRuntime option - **removed** — AuthStorage and its storage backends are no longer exported - **removed** — Removed redundant ModelRuntime.getAll(), find(), getSnapshot(), and getAuthOptions() projections - **changed** — Replaced SDK request-auth assembly through ModelRegistry.getApiKeyAndHeaders() with ModelRuntime.getAuth() - **changed** — Changed extension-facing ModelRegistry.refresh() from synchronous void to Promise because models.json loading is asynchronous - **changed** — Moved canonical dynamic catalog refresh to async ModelRuntime.refresh()/pi-ai Models.refresh() - **added** — Added file-backed dynamic catalogs in models-store.json and per-provider pi.dev catalog overlays - **added** — Added Radius gateway support including offline migration from legacy credential-cached catalogs - **added** — Added extension provider refreshModels(context) support for dynamic model discovery with optional provider-controlled persistence - **changed** — ModelRuntime composes built-in providers, immutable models.json configuration, and extension overlays through ad-hoc pi-ai provider methods - **changed** — ModelRuntime owns final request assembly with getAuth(model) including configured model headers and before_provider_headers running as the Models-only header transform - **changed** — /model renders the current model snapshot immediately and refreshes configured providers in the background - **fixed** — Fixed configured-provider catalog refresh to parse pi.dev's model-ID keyed responses and throttle checks to once per four hours - **fixed** — Fixed adjacent assistant thinking blocks to render as one thinking section - **fixed** — Fixed OpenAI Codex session IDs longer than 64 characters to meet the API limit - **fixed** — Fixed terminal output to normalize tab characters consistently - **fixed** — Fixed Bun standalone binaries to bundle OAuth adapters for interactive logins ###### New Features - **Unified model runtime and provider authentication** — `ModelRuntime` centralizes model configuration, provider-owned `/login`, and dynamic provider catalogs. See [Providers](https://github.com/earendil-works/pi/blob/v0.80.8/packages/coding-agent/docs/providers.md). - **Live model catalog refresh** — `/model` refreshes configured providers in the background, and `pi update --models` forces an immediate refresh. See [Install and Manage](https://github.com/earendil-works/pi/blob/v0.80.8/packages/coding-agent/docs/packages.md#install-and-manage). - **xAI device-code OAuth and Grok 4.5 Responses support** — Sign in to xAI with a device code and use Grok 4.5 with low, medium, or high thinking. See [xAI](https://github.com/earendil-works/pi/blob/v0.80.8/packages/coding-agent/docs/providers.md#xai-grokx-subscription). ###### Breaking Changes - Replaced the SDK's `CreateAgentSessionOptions.authStorage` and `modelRegistry` options with the async `modelRuntime` option. `AuthStorage` and its storage backends are no longer exported; use `ModelRuntime` (or a custom pi-ai `CredentialStore`), or `readStoredCredential()` for one-off reads of auth.json. - Removed redundant `ModelRuntime.getAll()`, `find()`, `getSnapshot()`, and `getAuthOptions()` projections. Use the pi-ai `Models` methods `getModels()`, `getModel()`, `getProviders()`, and `checkAuth()` directly. - Replaced SDK request-auth assembly through `ModelRegistry.getApiKeyAndHeaders()` with `ModelRuntime.getAuth()`. Passing a provider ID returns provider-scoped auth; passing a model also resolves built-in, `models.json`, and extension model headers. - Changed extension-facing `ModelRegistry.refresh()` from synchronous `void` to `Promise` because `models.json` loading is asynchronous. Extensions must await it before making synchronous registry reads. - Moved canonical dynamic catalog refresh to async `ModelRuntime.refresh()`/pi-ai `Models.refresh()`. Legacy extension OAuth `modifyModels` remains supported as a synchronous compatibility projection after credential initialization. ###### Added - Added `ModelRuntime` as the canonical async SDK and internal model/auth facade while preserving the synchronous extension-facing `ModelRegistry` API. `ModelRuntime.create()` accepts any pi-ai `CredentialStore` through its `credentials` option. - Added provider-owned `/login` discovery directly from registered pi-ai providers, including ambient auth status and informational links. - Added file-backed dynamic catalogs in `models-store.json`, per-provider pi.dev catalog overlays, and Radius gateway support including offline migration from legacy credential-cached catalogs. - Added extension provider `refreshModels(context)` support for dynamic model discovery with optional provider-controlled persistence. - Added `pi update --models` to force an immediate model catalog refresh without updating pi or extensions. - Added inherited xAI device-code OAuth login and Grok 4.5 OpenAI Responses support, with low, medium, and high thinking levels ([#6651](https://github.com/earendil-works/pi/pull/6651) by [@Jaaneek](https://github.com/Jaaneek)). ###### Changed - Changed `ModelRuntime` to compose built-in providers, immutable `models.json` configuration, and extension overlays through ad-hoc pi-ai provider methods. - Changed `ModelRuntime` to own final request assembly: `getAuth(model)` includes configured model headers, stream methods resolve auth once, and `before_provider_headers` runs as the Models-only header transform before provider dispatch. - Changed `/model` to render the current model snapshot immediately, refresh configured providers in the background, and update the open selector with partial results or timeout errors. ###### Fixed - Fixed configured-provider catalog refresh to parse pi.dev's model-ID keyed responses, throttle checks to once per four hours, send the versioned pi user agent, treat unimplemented routes as unavailable overlays, and show concise r _[Truncated at 4000 characters — full notes: https://github.com/earendil-works/pi/releases/tag/v0.80.8]_ ### v0.80.7 - Date: 2026-07-14 - Version: v0.80.7 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.80.7 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.80.7 - **removed** — Removed the openai-responses compat.sendSessionIdHeader flag from models.json; replace with compat.sessionAffinityFormat set to "openai", "openai-nosession", or "openrouter" - **added** — Extensions can add tools during execution while supported Anthropic and OpenAI Responses models preserve prompt-cache prefixes through cache-friendly dynamic tool loading - **added** — Ctrl+X copies the last assistant message in the transcript or the selected message in /tree - **added** — Native xhigh and max thinking levels are available for Fable 5 across generated provider catalogs - **added** — Added inherited toolChoice support for OpenAI and Codex Responses, including required and named tool selection - **fixed** — Fixed inherited OpenRouter model context windows to use the top provider's actual context length - **fixed** — Fixed inherited OpenRouter OpenAI-compatible session IDs to use the x-session-id header instead of OpenAI-specific session-affinity fields - **fixed** — Fixed Ctrl+V to paste clipboard text when the pasteboard does not contain an image - **fixed** — Fixed /login amazon-bedrock to prompt for and save a Bedrock API key - **fixed** — Fixed inherited Amazon Bedrock ambient AWS credentials to keep using SigV4 authentication, including for custom model IDs - **fixed** — Fixed inherited Cloudflare Workers AI and AI Gateway authentication to use ambient account and gateway IDs when stored credentials contain only an API key - **fixed** — Fixed inherited legacy terminal decoding for Alt+symbol key combinations such as Alt+, and Alt+. - **fixed** — Fixed the GitHub Copilot mai-code-1-flash-picker model to route through the /responses endpoint - **fixed** — Fixed branch summaries to work with providers that use ambient authentication instead of API keys - **fixed** — Fixed inherited Amazon Bedrock errors to report unhandled provider stop reasons instead of only "An unknown error occurred" - **fixed** — Fixed npm package removal when installed packages have conflicting peer dependencies - **fixed** — Fixed inherited Azure OpenAI Responses reasoning replay when encrypted_content appears only in the terminal response event - **fixed** — Fixed inherited Anthropic-compatible proxies that omit usage from message_delta events - **fixed** — Fixed inherited OpenCode OpenAI Responses models to omit the unsupported session-id header while preserving other cache-affinity data - **fixed** — Fixed system prompt cache invalidation across dates by removing the current date from the default prompt ###### Breaking Changes - Removed the `openai-responses` `compat.sendSessionIdHeader` flag from `models.json`. Session-affinity behavior is now controlled by `compat.sessionAffinityFormat` (`"openai"`, `"openai-nosession"`, or `"openrouter"`). Replace `sendSessionIdHeader: false` with `sessionAffinityFormat: "openai-nosession"` ([#6496](https://github.com/earendil-works/pi/pull/6496) by [@petrroll](https://github.com/petrroll)). ###### New Features - **Cache-friendly dynamic tool loading** - Extensions can add tools during execution while supported Anthropic and OpenAI Responses models preserve prompt-cache prefixes. See [Dynamic Tool Loading](https://github.com/earendil-works/pi/blob/v0.80.7/packages/coding-agent/docs/extensions.md#dynamic-tool-loading). - **Message copy shortcut** - `Ctrl+X` copies the last assistant message in the transcript or the selected message in `/tree`, making older and branched messages directly copyable. See [Display and Message Queue](https://github.com/earendil-works/pi/blob/v0.80.7/packages/coding-agent/docs/keybindings.md#display-and-message-queue). - **Fable 5 `xhigh` and `max` thinking** - Native `xhigh` and `max` thinking levels are available across generated provider catalogs. See [Model Options](https://github.com/earendil-works/pi/blob/v0.80.7/packages/coding-agent/docs/usage.md#model-options). ###### Added - Added cache-friendly dynamic tool loading for extension tools activated by tool results. Supported Anthropic and OpenAI Responses models load definitions where they become available, preserving the cached prompt prefix. See [Dynamic Tool Loading](https://github.com/earendil-works/pi/blob/v0.80.7/packages/coding-agent/docs/extensions.md#dynamic-tool-loading) ([#6474](https://github.com/earendil-works/pi/pull/6474)). - Added inherited native `xhigh` and `max` thinking levels for Claude Fable 5 across all generated provider catalogs ([#6490](https://github.com/earendil-works/pi/pull/6490) by [@davidbrai](https://github.com/davidbrai)). - Added `Ctrl+X` to copy the last assistant message, or the selected message in `/tree`. - Added inherited `toolChoice` support for OpenAI and Codex Responses, including required and named tool selection ([#6588](https://github.com/earendil-works/pi/pull/6588) by [@xl0](https://github.com/xl0)). ###### Fixed - Fixed inherited OpenRouter model context windows to use the top provider's actual context length ([#6481](https://github.com/earendil-works/pi/pull/6481) by [@davidbrai](https://github.com/davidbrai)). - Fixed inherited OpenRouter OpenAI-compatible session IDs to use the `x-session-id` header instead of OpenAI-specific session-affinity fields ([#6496](https://github.com/earendil-works/pi/pull/6496) by [@petrroll](https://github.com/petrroll)). - Fixed `Ctrl+V` to paste clipboard text when the pasteboard does not contain an image. - Fixed `/login amazon-bedrock` to prompt for and save a Bedrock API key instead of only displaying ambient AWS credential setup instructions. - Fixed inherited Amazon Bedrock ambient AWS credentials to keep using SigV4 authentication, including for custom model IDs ([#6532](https://github.com/earendil-works/pi/pull/6532) by [@ribelo](https://github.com/ribelo)). - Fixed inherited Cloudflare Workers AI and AI Gateway authentication to use ambient account and gateway IDs when stored credentials contain only an API key ([#6292](https://github.com/earendil-works/pi/pull/6292) by [@markphelps](https://github.com/markphelps)). - Fixed inherited legacy terminal decoding for Alt+symbol key combinations such as `Alt+,` and `Alt+.` ([#6523](https://github.com/earendil-works/pi/pull/6523) by [@ribelo](https://github.com/ribelo)). - Fixed the GitHub Copilot `mai-code-1-flash-picker` model to route through the `/responses` endpoint ([#6544](https://github.com/earendil-works/pi/pull/6544) by [@petrroll](https://github.com/petrroll)). - Fixed branch summaries to work with providers that use ambient authentication instead of API ke _[Truncated at 4000 characters — full notes: https://github.com/earendil-works/pi/releases/tag/v0.80.7]_ ### v0.80.6 - Date: 2026-07-09 - Version: v0.80.6 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.80.6 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.80.6 - **added** — Add opt-in `max` thinking level above `xhigh`, natively supported on GPT-5.6 and adaptive Claude models, available across CLI, SDK, RPC, and model selection - **added** — Add request-wide input-token pricing tiers for accurate long-context cost accounting, configurable for custom models in `models.json` and `modelOverrides` - **added** — Add `~` (home directory) expansion for the `shellPath` setting - **fixed** — Fix inherited post-compaction output-token budgeting to ignore stale assistant usage from before the compaction boundary - **fixed** — Fix inherited GPT-5.4 and GPT-5.5 long-context cost accounting while retaining the intentional 272K default context limit for models that require an explicit override - **fixed** — Fix inherited GPT-5.6 metadata to keep direct OpenAI requests in the 272K short-context tier while exposing the Codex backend's 372K context window with long-context pricing, and remove the nonexistent bare `gpt-5.6` alias - **fixed** — Fix inherited Anthropic message conversion to preserve thinking blocks with empty thinking text but a valid signature instead of dropping them ###### New Features - **`max` thinking level** - New opt-in thinking level above `xhigh`, natively supported on GPT-5.6 and adaptive Claude models, available across CLI (`--thinking max`), SDK, RPC, and model selection. Custom themes can define `thinkingMax`. See [CLI Reference](https://github.com/earendil-works/pi/blob/v0.80.6/packages/coding-agent/docs/usage.md#cli-reference). - **Input-based pricing tiers** - Request-wide input-token pricing tiers for accurate long-context cost accounting (e.g. GPT-5.4/5.5/5.6 long-context rates), also configurable for custom models in `models.json` and `modelOverrides`. See [Model Configuration](https://github.com/earendil-works/pi/blob/v0.80.6/packages/coding-agent/docs/models.md#model-configuration). ###### Added - Added the opt-in `max` thinking level across CLI, SDK, RPC, model selection, and themes. Custom themes can define `thinkingMax`; existing themes fall back to `thinkingXhigh`. - Added request-wide input-token pricing tiers to custom model costs in `models.json`, `modelOverrides`, and extension-registered providers. - Added `~` (home directory) expansion for the `shellPath` setting ([#6470](https://github.com/earendil-works/pi/pull/6470) by [@aaronkyriesenbach](https://github.com/aaronkyriesenbach)). ###### Fixed - Fixed inherited post-compaction output-token budgeting to ignore stale assistant usage from before the compaction boundary ([#6464](https://github.com/earendil-works/pi/issues/6464)). - Fixed inherited GPT-5.4 and GPT-5.5 long-context cost accounting while retaining the intentional 272K default context limit for models that require an explicit override. - Fixed inherited GPT-5.6 metadata to keep direct OpenAI requests in the 272K short-context tier while exposing the Codex backend's 372K context window with long-context pricing, and removed the nonexistent bare `gpt-5.6` alias. - Fixed inherited Anthropic message conversion to preserve thinking blocks with empty thinking text but a valid signature instead of dropping them, avoiding thinking-block errors on newer Claude models ([#6457](https://github.com/earendil-works/pi/pull/6457) by [@davidbrai](https://github.com/davidbrai)). ### v0.80.5 - Date: 2026-07-09 - Version: v0.80.5 - Original notes: https://github.com/earendil-works/pi/releases/tag/v0.80.5 - Permalink: https://whatsnew.fyi/product/pi/releases/v0.80.5 Release 0.80.5