What’s New

pi

AI

pi release notes.

Latest v0.82.1 · by piWebsiteearendil-works/pi

Changelog

v0.82.1

Added
  • Claude Opus 5 available on Anthropic and Amazon Bedrock with adaptive thinking, inference profiles, and prompt caching
  • Anthropic gateway bearer authentication via ANTHROPIC_AUTH_TOKEN for Anthropic-compatible gateways
  • 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
  • Radius OAuth device authorization, token exchange, and refresh requests use configured gateway directly
  • 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
  • Unavailable scoped models are no longer hidden from /models endpoint
  • Startup context file discovery skips directories that match context file names to prevent EISDIR warnings
  • 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.
  • Anthropic gateway bearer authANTHROPIC_AUTH_TOKEN authenticates against Anthropic-compatible gateways that require Authorization: Bearer, including compaction and branch summaries. See 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.
Added
  • Exposed the outputPad setting to custom message renderers. See Extensions (#7045 by @xl0).
  • Added inherited ANTHROPIC_AUTH_TOKEN bearer authentication for Anthropic-compatible gateways. See Providers (#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 by @unexge, #7083 by @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)
  • Fixed unavailable scoped models being hidden from /models, allowing them to be removed without editing settings manually (#6949, #7032 by @christianklotz).
  • Fixed startup context file discovery to skip directories that match context file names such as AGENTS.md, which produced EISDIR warnings (#7106 by @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 (#7072 by @davidbrai).

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
  • OpenRouter and Kimi Code subscription sign-in via /login to authorize without manually configuring API keys
  • Bash tools receive current session/model metadata including PI_SESSION_ID, PI_SESSION_FILE, PI_PROVIDER, PI_MODEL, and PI_REASONING_LEVEL
  • Direct RPC bash commands stream correlated output via bash_execution_update events
  • Inherited Tool.constrainedSampling with strict JSON Schema and OpenAI Lark/regex grammar variants across OpenAI, Anthropic, Amazon Bedrock, Google Gemini, and Mistral
  • Inherited supportsGrammarTools and supportsStrictTools compatibility flags and expanded supportsStrictMode coverage with generated model capability metadata
  • Kimi Code subscription OAuth login for the Kimi For Coding provider with device authorization and automatic token refresh
  • OpenRouter OAuth PKCE login through /login minting a user-controlled API key
  • 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
  • OpenRouter Anthropic cache breakpoints now advance through tool results and cache control enabled for ~anthropic/*-latest aliases
  • OpenAI Codex WebSocket sessions now retry once without a missing previous-response continuation after previous_response_not_found errors
  • TUI debug and crash logs now respect custom agent directories instead of always writing under ~/.pi/agent
  • Slow Ctrl+G external-editor startup when the system temporary directory contains many entries
  • Startup resource display now preserves relative paths for sibling npm extensions loaded by a package
  • Compaction and branch-summary requests now use fresh routing session IDs with prompt caching disabled where supported
  • Explicit self-updates when PI_SKIP_VERSION_CHECK is set
  • 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.
  • OpenRouter and Kimi Code sign-in — Use /login to authorize OpenRouter or a Kimi Code subscription without manually configuring API keys. See 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 and RPC bash events.
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.
  • 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 by @zaycruz).
  • Added inherited OpenRouter OAuth PKCE login through /login, minting a user-controlled API key. See OpenRouter (#6927 by @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.
  • Added streaming bash_execution_update events for direct RPC bash commands, correlated with request IDs. See RPC bash events (#6971 by @ananthakumaran).
Changed
  • Changed inherited generated model catalogs to expose only provider-verified reasoning effort levels from models.dev (#6928 by @davidbrai).
Fixed
  • Fixed inherited DNS lookup failures such as getaddrinfo, ENOTFOUND, and EAI_AGAIN to trigger automatic assistant retries (#6946 by @christianklotz).
  • Fixed inherited OpenRouter Anthropic cache breakpoints to advance through tool results and enabled cache control for ~anthropic/*-latest aliases (#6941 by @mteam88).
  • Fixed inherited OpenAI Codex WebSocket sessions to retry once without a missing previous-response continuation after previous_response_not_found errors (#6955 by @davidbrai).
  • Fixed TUI debug and crash logs to respect custom agent directories instead of always writing under ~/.pi/agent (#6958 by @davidbrai).
  • Fixed slow Ctrl+G external-editor startup when the system temporary directory contains many entries (#6903 by @christianklotz).
  • Fixed startup resource display to preserve relative paths for sibling npm extensions loaded by a package (#6964 by @davidbrai).
  • Fixed compaction and branch-summary requests to use fresh routing session IDs with prompt caching disabled where supported (#6618 by @tmustier).
  • Fixed explicit self-updates when PI_SKIP_VERSION_CHECK is set (#6977).
  • Fixed scoped model IDs containing brackets to resolve as literal exact matches before glob matching (#6210).
  • Fixed inherited OpenAI and Anthropic provider retry waits to honor abort signals and configured delay limits (#6980 by @petrroll).
  • Fixed fresh installs from preferring bundled model catalogs over newer remote catalogs because package file mtimes were newer (#7016 by @davidbrai).
  • Fixed inherited editor scroll indicators overflowing narrow terminals (#7015 by @christianklotz).
  • Fixed llama.cpp models to use the loaded context window as their output token limit instead of capping it at 16K (#7034 by @christianklotz).
  • Fixed release source archives to include the generated provider model data used to build standalone binaries.
  • Updated the packaged protobufjs dependency to 7.6.5 to address GHSA-j3f2-48v5-ccww (#7005).
  • Fixed /copy on Wayland to fall back to X11 or OSC 52 when wl-copy fails (#7009 by @rkfshakti).
  • Fixed /model to reload updated models.json configuration when opening the model picker (#6999).

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
  • Interactive startup no longer waits 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
  • Kimi K3 models from Moonshot AI and Moonshot AI China now use the OpenAI thinking format and expose reasoning effort support
New Features
Added
  • Added deterministic, checksummed source archives to GitHub releases with documented standalone binary rebuild instructions (#6913 by @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 by @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).
  • 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

Added
  • Local llama.cpp model management with router connection, Hugging Face model search and downloads, and explicit load or unload with live progress
  • Full provider extensions allowing registration of complete pi-ai providers with authentication, model refresh, filtering, and custom streaming
  • Qwen Token Plan and Qwen Token Plan China built-in subscription providers with regional endpoints and API-key authentication
  • Expanded usage accounting for tools, compaction, and branch summaries persisted in sessions and included in session totals
  • get_available_thinking_levels RPC command and RpcClient.getAvailableThinkingLevels() method
  • Message and tool execution lifecycle event types exported from the package root
Fixed
  • Persisted remote model catalogs overriding newer bundled catalogs after an upgrade
  • Inherited stored API-key credentials to apply their provider-scoped env values, including Amazon Bedrock profiles
  • Inherited OpenAI-compatible cross-provider replay to keep tool call IDs unique when multiple calls share a provider call ID
  • Inherited Kimi K3 thinking levels to expose low, high, and max, and normalized the k2p7 alias to kimi-for-coding
  • Inherited OpenCode Go models routed through the OpenAI Responses API
  • Inherited pi-ai package metadata to avoid repeated consumer lockfile changes
  • Inherited terminal shutdown to clear the editor's inverted software cursor before restoring the hardware cursor
  • Inherited ANSI-aware text wrapping to recognize CRLF and CR line endings while preserving styles
  • Editor paste registry corruption after deleting and undoing paste markers, preventing literal or mismatched paste markers in submitted prompts
  • Sessionless OpenAI Codex WebSocket requests to use UUIDv7 request IDs
  • Inherited GPT-5.6 Codex models to default to the 272K context window, avoiding automatic long-context pricing
  • Messages queued during compaction to preserve steering and follow-up delivery behavior
  • Read tool errors being syntax-highlighted as if they were file contents
  • 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.
  • Full provider extensions — Extensions can register complete pi-ai providers with authentication, model refresh, filtering, and custom streaming. See 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.
  • Expanded usage accounting — Tool, compaction, and branch-summary usage is persisted and included in session totals. See Compaction & Branch Summarization.
Added
  • Added Qwen Token Plan and Qwen Token Plan China to built-in provider setup, default model resolution, and provider documentation (#6858 by @QuintinShaw).
  • Added the get_available_thinking_levels RPC command and RpcClient.getAvailableThinkingLevels() method (#6865 by @cristinaponcela).
  • Exported message and tool execution lifecycle event types from the package root (#6772 by @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.
  • 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 by @davidbrai).
Fixed
  • Updated the packaged brace-expansion dependency to 5.0.7 (#6896 by @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 by @cristinaponcela).
  • Fixed inherited OpenAI-compatible cross-provider replay to keep tool call IDs unique when multiple calls share a provider call ID (#6854 by @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 by @jmfederico).
  • Fixed inherited terminal shutdown to clear the editor's inverted software cursor before restoring the hardware cursor (#6790 by @dam9000).
  • Fixed inherited ANSI-aware text wrapping to recognize CRLF and CR line endings while preserving styles (#6764 by @xz-dev).
  • Fixed inherited editor paste registry corruption after deleting and undoing paste markers, preventing literal or mismatched paste markers in submitted prompts (#6844).
  • Fixed sessionless OpenAI Codex WebSocket requests to use UUIDv7 request IDs (#6834 by @xl0).
  • Fixed inherited GPT-5.6 Codex models to default to the 272K context window, avoiding automatic long-context pricing (#6853 by @aadishv).
  • Fixed messages queued during compaction to preserve steering and follow-up delivery behavior (#6730 by @dannote).
  • Fixed read tool errors being syntax-highlighted as if they were file contents (#6731 by @dannote).
  • Fixed llama.cpp router download progress updates and removed redundant wording from model action confirmations.
  • Moved automatic model catalog network refresh out of startup initialization and into the running interactive and RPC modes.
  • Fixed persisted sessions being read and parsed twice when opened, reducing startup latency for large sessions (#6793).
  • Fixed prompt-template defaults for all arguments (${@:-default} and ${ARGUMENTS:-default}) (#6695).
  • Fixed obsolete custom UI, custom tool, and custom editor examples in the extension documentation (#6735).
  • Fixed Kimi Coding sessions to show API-equivalent implied costs with the subscription indicator.
  • Fixed OpenAI Responses early stream endings to trigger automatic retry instead of ending the agent run (#6727).

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
  • Kimi K3 pricing metadata for Moonshot AI and Moonshot AI China
  • Kimi Coding K3 thinking-level metadata to expose only the supported max level
  • 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 and 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).
  • Fixed inherited catalog generation restoring xAI models removed in 0.80.9 (#6736).

v0.80.9

Added
  • Add inherited Kimi K3 support for Kimi Coding, Moonshot AI, Moonshot AI China, OpenRouter, and Vercel AI Gateway
  • 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"
  • Change the default xAI model to Grok 4.5
Fixed
  • Fix inherited Kimi K3 output limits for Vercel AI Gateway and OpenRouter models
  • 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
Added
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 by @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 by @Jaaneek).

v0.80.8

Added
  • ModelRuntime centralizes model configuration, provider-owned /login, and dynamic provider catalogs
  • /model refreshes configured providers in the background and pi update --models forces an immediate model catalog refresh
  • xAI device-code OAuth and Grok 4.5 Responses support with low, medium, or high thinking levels
  • Added file-backed dynamic catalogs in models-store.json and per-provider pi.dev catalog overlays
  • Added 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
Changed
  • Replaced SDK request-auth assembly through ModelRegistry.getApiKeyAndHeaders() with ModelRuntime.getAuth()
  • Changed extension-facing ModelRegistry.refresh() from synchronous void to Promise<void> because models.json loading is asynchronous
  • Moved canonical dynamic catalog refresh to async ModelRuntime.refresh()/pi-ai Models.refresh()
  • ModelRuntime composes built-in providers, immutable models.json configuration, and extension overlays through ad-hoc pi-ai provider methods
  • ModelRuntime owns final request assembly with getAuth(model) including configured model headers and before_provider_headers running as the Models-only header transform
  • /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 adjacent assistant thinking blocks to render as one thinking section
  • Fixed OpenAI Codex session IDs longer than 64 characters to meet the API limit
  • Fixed terminal output to normalize tab characters consistently
  • Fixed Bun standalone binaries to bundle OAuth adapters for interactive logins
Removed
  • Replaced SDK's CreateAgentSessionOptions.authStorage and modelRegistry options with async modelRuntime option
  • AuthStorage and its storage backends are no longer exported
  • Removed redundant ModelRuntime.getAll(), find(), getSnapshot(), and getAuthOptions() projections
New Features
  • Unified model runtime and provider authenticationModelRuntime centralizes model configuration, provider-owned /login, and dynamic provider catalogs. See Providers.
  • Live model catalog refresh/model refreshes configured providers in the background, and pi update --models forces an immediate refresh. See 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.
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<void> 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 by @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 refresh status in /model.
  • Fixed adjacent assistant thinking blocks to render as one thinking section.
  • Fixed inherited OpenAI Codex session IDs longer than 64 characters to meet the API limit (#6630).
  • Fixed inherited terminal output to normalize tab characters consistently (#6697 by @xz-dev).
  • Fixed the Windows terminal title after checking npm packages (#6629).
  • Fixed Bun standalone binaries to bundle OAuth adapters for interactive logins.

v0.80.7

Added
  • Extensions can add tools during execution while supported Anthropic and OpenAI Responses models preserve prompt-cache prefixes through cache-friendly dynamic tool loading
  • Ctrl+X copies the last assistant message in the transcript or the selected message in /tree
  • Native xhigh and max thinking levels are available for Fable 5 across generated provider catalogs
  • 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 inherited OpenRouter OpenAI-compatible session IDs to use the x-session-id header instead of OpenAI-specific session-affinity fields
  • 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
  • Fixed inherited Amazon Bedrock ambient AWS credentials to keep using SigV4 authentication, including for custom model IDs
  • 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 inherited legacy terminal decoding for Alt+symbol key combinations such as Alt+, and Alt+.
  • Fixed the GitHub Copilot mai-code-1-flash-picker model to route through the /responses endpoint
  • Fixed branch summaries to work with providers that use ambient authentication instead of API keys
  • Fixed inherited Amazon Bedrock errors to report unhandled provider stop reasons instead of only "An unknown error occurred"
  • Fixed npm package removal when installed packages have conflicting peer dependencies
  • Fixed inherited Azure OpenAI Responses reasoning replay when encrypted_content appears only in the terminal response event
  • Fixed inherited Anthropic-compatible proxies that omit usage from message_delta events
  • Fixed inherited OpenCode OpenAI Responses models to omit the unsupported session-id header while preserving other cache-affinity data
  • Fixed system prompt cache invalidation across dates by removing the current date from the default prompt
Removed
  • Removed the openai-responses compat.sendSessionIdHeader flag from models.json; replace with compat.sessionAffinityFormat set to "openai", "openai-nosession", or "openrouter"
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 by @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.
  • 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.
  • Fable 5 xhigh and max thinking - Native xhigh and max thinking levels are available across generated provider catalogs. See 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 (#6474).
  • Added inherited native xhigh and max thinking levels for Claude Fable 5 across all generated provider catalogs (#6490 by @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 by @xl0).
Fixed
  • Fixed inherited OpenRouter model context windows to use the top provider's actual context length (#6481 by @davidbrai).
  • Fixed inherited OpenRouter OpenAI-compatible session IDs to use the x-session-id header instead of OpenAI-specific session-affinity fields (#6496 by @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 by @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 by @markphelps).
  • Fixed inherited legacy terminal decoding for Alt+symbol key combinations such as Alt+, and Alt+. (#6523 by @ribelo).
  • Fixed the GitHub Copilot mai-code-1-flash-picker model to route through the /responses endpoint (#6544 by @petrroll).
  • Fixed branch summaries to work with providers that use ambient authentication instead of API keys (#6595 by @davidbrai).
  • Fixed inherited Amazon Bedrock errors to report unhandled provider stop reasons instead of only An unknown error occurred (#6598 by @davidbrai).
  • Fixed npm package removal when installed packages have conflicting peer dependencies (#6604 by @davidbrai).
  • Fixed inherited Azure OpenAI Responses reasoning replay when encrypted_content appears only in the terminal response event (#6608 by @davidbrai).
  • Fixed inherited Anthropic-compatible proxies that omit usage from message_delta events (#6611 by @davidbrai).
  • Fixed inherited OpenCode OpenAI Responses models to omit the unsupported session-id header while preserving other cache-affinity data (#6645 by @davidbrai).
  • Fixed system prompt cache invalidation across dates by removing the current date from the default prompt (#6621).

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
  • Add request-wide input-token pricing tiers for accurate long-context cost accounting, configurable for custom models in `models.json` and `modelOverrides`
  • 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
  • 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
  • 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
  • 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.
  • 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.
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 by @aaronkyriesenbach).
Fixed
  • Fixed inherited post-compaction output-token budgeting to ignore stale assistant usage from before the compaction boundary (#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 by @davidbrai).