Pi
Changelog
Erweiterbarer Terminal-Coding-Agent
Diese Seite zeigt höchstens die 120 neuesten Releases aus offiziellen Quellen. Sie beansprucht keine vollständige Versionshistorie.
Versionshinweise ohne deutsche Übersetzung stehen im englischen Original.
Neueste Releases (129)
v1.0.4Neu
v1.0.4
6. Oktober 2026
- •Tool patterns and `--no-mcp`:
--toolsand--exclude-toolsaccept*patterns, for example--tools read,codemode,'mcp__radius__*'keeps only one MCP server's tools.--toolsnow keeps MCP tools unless an entry starts withmcp__, and--no-mcpturns off MCP for one run. See Tools and MCP tools. - •Codemode persists images:
tools.read()on an image file now gives back an image block thatimage()can show. See Call tools. - •Added
*patterns to--toolsand--exclude-tools, for example--tools read,codemode,'mcp__radius__*' - •Added
--no-mcpto disable the built-in MCP support for one run - •Fixed syntax highlighting losing colors after the first line of multiline strings and comments in fenced code blocks (#10143)
- •Fixed codemode scripts not receiving images from
read:tools.read()now resolves to an image block for image files, whichimage()shows (#10251) - •Fixed MCP OAuth sign-in failing with
invalid_redirect_urion servers with OpenID Connect client registration, such asmcp.modem.dev: pi now registers as a native client (#10493) - •Fixed
--toolsremoving MCP tools, which leftpi --tools codemodewithout any MCP servers.--toolsnow keeps MCP tools unless an entry starts withmcp__ - •Fixed MCP session shutdown returning while a server was still connecting, leaving its transport open until the server answered or timed out (#10249)
- •Fixed system prompt rules and the skills hint naming tools hidden by
prepareLoadout. Hidden tools are left out of the rules, the skills hint names no tool when the file reader is hidden, andcodemodeshows each tool's prompt guidelines with its declaration;ToolLoadoutgainsgetPromptGuidelines()(#10343) - •Fixed Bedrock requests that fail with
The pending stream has been canceledafter a stalled HTTP/2 connection not being retried automatically (#10379) - •Fixed codemode scripts that patch built-ins (for example
Array.prototype.toJSON = ...) crashing pi and leaving the tool call unsettled. Built-ins are now frozen before the script runs, so such patches have no effect (#10444)
v1.0.3NeuBreaking Change
v1.0.3
5. Oktober 2026
- •Azure Foundry Chat Completions — The
azureprovider (renamed fromazure-openai-responses) now also serves Foundry Chat Completions deployments, starting withazure/deepseek-v4-pro. See Azure OpenAI. - •Codemode images saved to files —
image()also writes each image to a temp file and names the path in the result, so later turns can copy or move generated images. See Generate images. - •Renamed the Azure provider from
azure-openai-responsestoazure. Rename the provider key inauth.json(or run/loginagain), inmodels.json, and insettings.json(defaultProvider,enabledModelspatterns, andmodelThinkingLevelskeys). Sessions that used the old provider fall back to another model when resumed, and their prompt cache is not reused. TheAZURE_OPENAI_*environment variables are unchanged (#9714 by @jsanter27) - •Added Azure Foundry Chat Completions deployments, starting with
azure/deepseek-v4-pro(#9645, #9714 by @jsanter27) - •Codemode
image()now also saves each image to a temp file and names the path in the result, so later turns can copy or move generated images (#10310) - •Output files (full text of truncated tool output, binary MCP resources, codemode images) are now readable only by the user
- •
Home/Endnow always move the editor cursor to the line start/end; fullscreen transcript top/bottom moved toCtrl+Home/Ctrl+End, which no longer move the editor cursor (#10314) - •Fixed subscription logins such as Sign in with ChatGPT failing with
refresh_token_invalidatedafter a request was cancelled during an OAuth token refresh - •Fixed codemode failing for the rest of a session after a pnpm global update removed the running install, and added a restart hint when errors occur after pi was updated or removed on disk (#10439)
- •Fixed interactive sessions reporting a
read EIOorsetRawMode EIOcrash (and asking to run /bug) when the terminal went away, e.g. after closing the window or resuming a suspended pi in a closed terminal
v1.0.2Neu
v1.0.2
4. Oktober 2026
- •Sampling by thinking level —
samplingParamsByThinkingLevelinmodels.jsonsets sampling parameters such astemperatureandtop_pfor each thinking level on OpenAI-compatible APIs. See Configure sampling by thinking level. - •Added
samplingParamsByThinkingLeveltomodels.jsonfor per-thinking-level sampling parameter overrides on OpenAI-compatible APIs. See Configure sampling by thinking level (#9776 by @mrexodia)
v1.0.1Neu
v1.0.1
3. Oktober 2026
- •Nix flake —
nix run github:earendil-works/pi/stableruns the latest release, andnix profile add github:earendil-works/pi/stableinstalls it. See Install pi. - •Project overrides for MCP servers —
.pi/mcp.jsonand/mcpcan enable, disable, or change the exposure of a user-level server for one project. See Configure servers. - •MCP Client ID Metadata Documents —
oauth.clientRegistration: "cimd"lets authorization servers allow pi by its document URL instead of dynamic registration. See Authenticate with OAuth. - •Tool renderers for any tool —
pi.registerToolRenderer()draws calls to tools that are not registered yet, such as MCP tools in resumed sessions. See Tool rendering. - •Cloudflare Clef classifiers —
@cf/cloudflare/clefand@cf/cloudflare/clef-flashare usable from codemode scripts and extensions. See Use classifier models. - •Added a copy key (
app.message.copy, defaultctrl+x) to OAuth sign-in screens in/login,/mcp, and/mcp login, which copies the sign-in URL when the browser cannot be opened or the wrapped link cannot be selected. - •Added
oauth.clientRegistration: "cimd"for MCP servers, which identifies pi with its Client ID Metadata Document on pi.dev instead of dynamic client registration, so authorization servers can allow pi by URL (#10302) - •Added project overrides for user-level MCP servers: a
.pi/mcp.jsonentry withoutcommandorurlsets onlyenabled,exposure, andtoolExposureof the user-level server, and/mcpcan enable or disable a server for the current project (#10277) - •Added Cloudflare's Clef and Clef Flash classifier models to
cloudflare-workers-ai, usable from codemode scripts and extensions (#10316 by @ndisidore, #10322 by @RealAlexandreAI) - •Added
pi.registerToolRenderer(), which chooses how calls to a tool are drawn, including tools that are not registered (#10285) - •Added a Nix flake for macOS and Linux:
nix run github:earendil-works/pi/stableruns the latest release, andnix profile add github:earendil-works/pi/stableinstalls it. See Install pi (#9137) - •
pi updateon global npm installations now recommends migrating to the managed installation from the pi.dev installer, which pins all dependencies. - •Anthropic tools added or redefined mid-conversation are now defined inline in the conversation, so redefining a tool under the same name keeps the prompt cache instead of resending the full tool list.
- •Fixed installations resolving vulnerable
brace-expansion5.0.9 by pinningbrace-expansion5.0.12 as a direct dependency (GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7, GHSA-6j4f-fj2g-mc7p) (#10288) - •Fixed a trailing comma in
--modelsadding an extra model to the model cycle (#10334)
v1.0.0
v1.0.0
1. Oktober 2026
- •Fullscreen by default — The TUI now runs fullscreen. Set
tuiModeto"regular"to keep the terminal's normal scrollback. See Terminal and display. - •Leaner codemode — About 40% fewer prompt tokens, and errors that tell the model how to recover. See Codemode.
- •Image generation in codemode — Scripts call
models.generateImages()with the session's credentials. See Generate images and Use image models. - •Radius in `/login` — Sign in with Radius and set up its MCP server in one step. See Radius.
- •Anthropic copy code login — Sign in when the browser runs on another machine. See Authenticate interactively.
- •MCP OAuth hardening —
oauth.authServerMetadataUrl, RFC 9207isschecks, credentials per server, and step-up sign-in that keeps granted scopes. See Authenticate with OAuth. - •Header-only quiet startup —
quietStartup: "header"keeps the version and key hints and hides the rest. See Terminal and display. - •Added an
oauth.authServerMetadataUrlsetting for MCP servers that advertise a wrong OAuth authorization server or none. Pi uses the configured metadata document instead of discovery (#10172). - •Added
quietStartup: "header", which keeps the startup header with version and key hints but hides the model scope line and loaded-resource listing. - •Added
models.generateImages()to codemode scripts. It runs image models such as OpenRouter's with the session's credentials and returns base64 image blocks thatimage()attaches to the result; usage counts toward the session cost likemodels.classify(). Extensions can callctx.modelRegistry.generateImages(). See Use image models. - •Added a copy code login method to Anthropic
/loginfor headless setups where the browser runs on another machine (#10194 by @lucasmeijer). - •Changed the default TUI mode to fullscreen. Set
tuiModeto"regular"or pass--tui-mode regularto keep the terminal's normal scrollback. - •
/loginnow offers "Sign in with Radius" at the top level, as the last option, with its status. After a Radius sign-in,/loginoffers to configure the Radius MCP server in the globalmcp.jsonwith"auth": { "provider": "radius" }and reloads. Cancelling a login returns to the menu it was started from. - •The provider docs page is renamed to Providers, its "Cloud Providers" section is now "Provider Specific Config", and it documents Radius first.
- •MCP OAuth credentials are now stored per server name and URL, so MCP servers with the same URL can sign in with different accounts. Credentials stored by URL alone move to the first server that uses them (#10252).
v0.99.2
v0.99.2
30. September 2026
- •MCP servers stay out of the way: servers with the default
codemodeexposure are no longer listed in thecodemodedescription and no longer block the first prompt. They appear in a short system prompt section, and scripts find their tools withsearchTools()anddescribeNamespace(). See Control tool exposure. - •More MCP authentication options:
oauth.clientNamefor servers that only accept known OAuth clients, and"auth": { "provider": "<provider>" }to authenticate HTTP servers with a provider's/logintoken. See Authenticate with OAuth. - •Anthropic workload identity federation from the Anthropic SDK environment variables. See Use an API key from the environment.
- •
/reloadenables tools newly added to thedefaultToolssetting. See Tools. - •Added a
descriptionfield for MCP servers (pi mcp add --description), shown with the server in the system prompt and used to rank its tools in tool search, and adescribeNamespace(name)codemode helper that returns a namespace's instructions and tool names.describeNamespace()andsearchTools()accept a namespace asmcp__dev-radius,mcp__dev_radius,dev-radius, ordev_radius. - •Added an
oauth.clientNamesetting for MCP servers (pi mcp add --oauth-client-name) to change the client name sent during OAuth client registration, for servers that only accept known clients (#10226). - •Added
"auth": { "provider": "<provider>" }for HTTP MCP servers to send a provider's current/logintoken as the bearer token instead of using MCP OAuth. The token is read on every request, so provider refreshes apply. Only allowed in the globalmcp.jsonand from extensions, and requires https except on loopback hosts. - •Added Anthropic workload identity federation from the
ANTHROPIC_FEDERATION_RULE_ID,ANTHROPIC_ORGANIZATION_ID, andANTHROPIC_IDENTITY_TOKEN_FILEenvironment variables (see Providers) (#10177, #10242 by @philfreo). - •
/reloadnow enables tools newly added to thedefaultToolssetting. Tools removed from it stay enabled, tools turned off during the session stay off unless newly added, and--tools,--no-tools, and--no-builtin-toolsstill override the setting (#10245). - •MCP servers with the default
codemodeexposure no longer appear in thecodemodedescription; scripts find them withsearchTools().codemode-deferredis now an alias forcodemode. Usedirectexposure for tools the model should see without searching (#10212). - •The
codemodedescription no longer includes deferred tools, tool counts, or MCP server instructions, so it no longer changes when MCP servers connect or change their tools. Thetool_searchdescription no longer lists the servers whose tools it can load, for the same reason. Servers are listed instead in anmcp_serverssystem prompt section with a one-line summary, updated at the start of each prompt; a changed section is appended to the conversation. Scripts read server instructions withdescribeNamespace()(#10212). - •The first prompt no longer waits for MCP servers without
directtools. They connect in the background and are waited for when a codemode script names them, a script searches tools, ortool_searchruns (#10212). - •Fixed new sessions intermittently ignoring the saved default model, or warning that no models are available, when it belongs to an extension-registered native provider with a stored credential (#9962, #10190 by @davidbrai).
- •Fixed the
/mcpsign-in URL not being clickable when it wraps across lines, by emitting it as a terminal hyperlink with aCmd/Ctrl+click to openline like/login(#10186). - •Fixed codemode
image()accepting malformed base64 data or unsupported image types, which persisted an invalid image block that made every later provider request fail with HTTP 400 (#10215).
v0.99.1
v0.99.1
29. September 2026
- •GPT-6.1 Sol — Available on OpenAI, Azure OpenAI, and OpenAI Codex, and now the default OpenAI Codex model. See Select a model.
- •Added GPT-6.1 Sol (
gpt-6.1-sol) to the OpenAI, Azure OpenAI Responses, and OpenAI Codex providers. - •Changed the default OpenAI Codex model to GPT-6.1 Sol (
gpt-6.1-sol). - •Fixed
/loginwith OpenAI failing in the bundled release with a missingopenai-chatgpt.jsmodule error.
v0.99.0
v0.99.0
29. September 2026
- •Codemode and MCP — Connect MCP servers and let models run JavaScript that calls tools in parallel. See MCP Servers and Enable codemode.
- •System theme — Pi's colors now come from your terminal's own palette by default. See Use your terminal's colors.
- •Sign in with ChatGPT — Use a ChatGPT subscription with the OpenAI provider through
/login openai. See Authenticate interactively. - •Virtual models — Extensions can route each request to a different physical model. See Virtual Models.
- •Classifier models — Run Jev classifiers from codemode scripts, or use any llama.cpp model as a classifier. See How codemode works and Classification.
- •Added codemode, tool search, and MCP support as built-in extensions. The
codemodetool runs model-written JavaScript in a QuickJS sandbox that calls pi's tools; enable it withdefaultToolsor--toolsand configure it withcodemode.modeandcodemode.inlineBudget.tool_searchfinds tools that are not declared to the model and declares them. MCP servers over stdio or streamable HTTP, with OAuth, come frommcp.json(global, or per project once trusted) orpi.registerMcpServer()and are managed with/mcpandpi mcp add|remove|list|login|logout. See MCP Servers and Enable codemode (#10040). - •Added extension tool APIs for orchestrating tools:
exposure(direct,model-only,codemode,deferred, orhidden),namespace,annotations,outputSchemawithstructuredContent,isErrorresults,prepareLoadout(), andctx.executeTool()for nested tool calls, which emit events withparentToolCallIdand are recorded as boundednestedCallson the calling tool's result. See Tool exposure. - •Added a warning when an extension that registers the same tool, command, or flag replaces a built-in extension (#10174 by @cristinaponcela).
- •Added experimental virtual models: extensions register them with
pi.registerVirtualModel()and pick a physical model and thinking level for each request. The footer shows the routed model,/sessionlists cost per physical model, andexamples/extensions/jev-router.tsroutes with the Jev classifier. See Virtual Models. - •Added Sign in with ChatGPT to the OpenAI provider in
/login, which uses a ChatGPT subscription with the OpenAI API. Pi stores a stabledeviceIdin the global settings for this login and omits it from bug reports. - •Added the
systemtheme, now the default, which derives pi's colors from the terminal's reported foreground, background, and ANSI palette and rebuilds them when the terminal switches between light and dark. See Use your terminal's colors. - •Added
#rgb,oklch(), andokhsl()colors and an optionalappearancefield to theme files, andtheme.style(),theme.colors, andtheme.appearancefor extensions. See Themes and TUI. - •Added a classifier model for every llama.cpp chat model, answered from next-token label probabilities. See Classification.
- •Added inherited Jev classifier models on OpenRouter, Cloudflare Workers AI, Vercel AI Gateway, and OpenCode Zen.
- •Added the
fullscreenWheelScrollLinessetting and/settingsentry for fullscreen mouse-wheel scrolling. The default"auto"accelerates fast wheel spins outside local macOS terminals (#9758).
v0.87.1
v0.87.1
22. September 2026
- •Latest frontier models — Use Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna through supported providers, including GitHub Copilot. See Choose a Model.
- •Grok 4.7 by default for xAI — New xAI sessions now default to Grok 4.7. See Provider Authentication.
- •Added inherited Claude Opus 5.5, GPT-6 Sol, and GPT-6 Luna support for GitHub Copilot.
- •Added inherited GPT-6 Sol and GPT-6 Luna support for OpenAI API keys and OpenAI Codex subscriptions.
- •Added inherited Claude Opus 5.5 support for Anthropic with adaptive thinking and a 1M context window.
- •Changed the default xAI model to Grok 4.7.
- •Fixed split-turn compaction summaries being refused by Claude Fable 5.1 by clearly separating the conversation and using continuation-oriented instructions (#9908 by @davidbrai).
- •Fixed missing or invalid
--modevalues being silently ignored instead of reporting an error and exiting with a nonzero status (#9045). - •Fixed inherited image-only user messages being rejected by some OpenAI-compatible providers because they included an empty text part (#9797).
- •Fixed inherited Anthropic OAuth requests reporting an outdated Claude Code version.
v0.87.0Breaking Change
v0.87.0
21. September 2026
- •Canonical session context and extension boundaries — Edit model context without rewriting history and add actionable lifecycle hooks. See ContextEditEntry and extension events.
- •Full-transcript context extensions — Use
context_with_systemfor per-request system-message transformations. See `context_with_system`. - •Per-model image input limits — Configure cache-safe image resizing per model for attachments,
read, and tool-result images. See Image Input Limits. - •Removed the inherited
shouldStopAfterTurnagent option. UsefinishTurnand return{ action: "end" }instead.finishTurnruns beforeturn_endbut applies the decision afterward, and it also receives error and aborted responses; migrate normal-response predicates by returningundefinedfor those hard exits. See the@earendil-works/pi-agent-corechangelog for a complete before-and-after example. - •Added
ContextEditEntryto the exportedSessionEntryunion. TypeScript consumers with exhaustive entry switches must handlecontext_edit; usereplacement: nullfor omission and a content replacement otherwise. - •Made
SessionManagercanonical forAgentSessionprovider context. Assigningsession.agent.state.messagesno longer replaces future request history; restore withSessionManager.inMemory(cwd, { id }, entries), navigate withsession.navigateTree(), or append throughsession.sessionManagerand callsession.refreshContext(). - •Expanded
TurnEndEventwith required boundary fields and addedAgentBeforeSettleEventto the exportedExtensionEventunion. Consumers constructing events or exhaustively switching onExtensionEventmust handle the new shapes.ExtensionRunner.emit()no longer acceptsturn_end; host integrations dispatch actionable boundaries withemitBoundary(baseEvent, buildContext). - •Deferred runs requested from
agent_settledhandlers until all settled handlers finish. Handlers still observectx.isIdle() === true, but no longer see a reentrantagent_startduring the same notification dispatch. - •Added append-only model-context edits. For example,
sessionManager.appendContextEdit(entryId, null)omits one message from future provider context without changing raw history, usage, or UI history. - •Added actionable
turn_endandagent_before_settleextension boundaries. Return{ entries: [...event.entries, draft], continue: true }to persist structural entries in order and ensure one next provider request without changing steering or follow-up scheduling. - •Added retain-none compaction input:
sessionManager.appendCompaction(summary, null, tokensBefore)stores the compaction's own ID as its kept boundary. - •Added the
context_with_systemextension event, which runs aftercontexthandlers on the full transcript including system messages and sends its result verbatim. See `context_with_system`. - •Added per-model image resize profiles through
inputLimits.images.resizeinmodels.json, applied to file attachments, image reads, and tool-result images (#9631). - •Fixed string context-edit replacements producing invalid assistant and tool-result message content instead of text blocks.
- •Fixed context-invisible boundary metadata and replacement edits causing newly appended or replaced input to be summarized before its first provider request.
v0.86.1
v0.86.1
20. September 2026
- •Meta Muse provider — Sign in with Meta using
/login metaor useMETA_API_KEYto access Muse Spark models. See Meta (Muse subscription). - •Added Meta (Muse subscription) login via
/login metawith automatic Model API key refresh, plusMETA_API_KEYsupport (#9096 by @xl0). - •Enabled Node's persistent compile cache before loading the bundled CLI runtime, reducing repeat launch time.
- •Fixed
/bugdescriptions dropping line breaks from pasted diagnostics. - •Fixed
/bughints appearing for user cancellations and retryable provider failures such as service unavailability. - •Fixed clipboard copy failing in containers and WSL without WSLg by restoring the OSC 52 fallback when no display is available, and added a verified Windows clipboard backend for WSL (#9688).
- •Fixed inherited z.ai
Prompt too longerrors not being recognized as context overflow (#9805). - •Fixed inherited Cerebras models advertising unsupported strict tool schemas, which caused HTTP 400 errors when strict and non-strict tools were mixed (#9804 by @EdenGottlieb).
v0.86.0Breaking Change
v0.86.0
20. September 2026
- •Prompt cache warming — Keep valuable prompt caches alive during long tool runs and optionally while idle using cost-aware refreshes. See Cache Warming.
- •Bug reporting — Report problems with
/bugusing redacted diagnostics, optional transcripts, or exported ZIP archives. See Reporting Bugs. - •Transcript-aware prompt and tool updates — Preserve instruction and tool changes across resume and branch navigation while retaining cached prefixes. See `before_agent_start`.
- •Offline Radius model catalog — Select Radius models immediately, with cached and live catalogs overlaid when available. See Radius.
- •Per-model compaction budgets — Configure reserved and recent-token budgets by model. See Per-model overrides.
- •Changed inherited pi-ai provider stream inputs from
Contextto normalizedTranscriptContextvalues. Custom providers must read system prompts and tool declarations fromcontext.messageswithgetCurrentSystemPrompt()andgetCurrentTools(). See Custom Streaming API. - •Restricted inherited
ToolCall.argumentsandToolResultMessage.detailsto JSON-compatible values, changedToolResultMessageinto a conditional type, and madeJsonValuearrays readonly. - •
user_bashnow fails closed: errors or invalid defined results abort the command without invoking later handlers or executing locally. Returnundefinedto continue propagation; otherwise return{ operations }or{ result }(#9068). - •Added transcript-backed mid-conversation system prompt and tool changes so instruction and tool updates survive resume and branch navigation while preserving cached prefixes on supported models. See `before_agent_start` and Entry Types (#9548).
- •Added inherited native deferred tool loading for Fireworks Messages models. Use
ToolSearchortool_searchas the loader name for prompt-prefix deferral (#9323). - •Added click toggling for branch summaries, compaction summaries, and skill invocation entries.
- •Added the public Radius model catalog for immediate and offline model selection, with cached and live gateway catalogs overlaid when available.
- •Added
ctx.modelRegistry.stream()andstreamSimple()for extension model calls through configured providers with resolved authentication (#8964). - •Added per-model
reserveTokensandkeepRecentTokenssettings throughcompaction.modelOverrides, with ordinary compaction settings as fallback (#8133). - •Added
compat.allowedFallbackModelsconfiguration for overriding or disabling Anthropic server-side fallback models (#9294).
v0.85.1
v0.85.1
5. September 2026
- •GPT-6 Astra — Available through OpenAI API keys and OpenAI Codex subscriptions. See API Keys and OpenAI Codex.
- •Added GPT-6 Astra for OpenAI API keys and OpenAI Codex subscriptions.
- •Added five-times-faster mouse wheel scrolling while holding Alt in fullscreen mode (#9166 by @xl0).
- •Fixed configurable save keybindings in the model and thinking selectors (#9149 by @rwachtler).
- •Fixed SDK import failures caused by unintentionally publishing internal experimental code and dependencies in 0.85.0. The experimental
clientandexperimental/pluginsubpaths and server/client commands are now source-only throughpi-test.sh; the supported local SDK and stdio RPC API are unchanged (#9132). - •Fixed mouse hover changing selection and recentering autocomplete and settings lists, causing clicks to target a different item.
- •Fixed long prompt-cache requests for GPT-5.6+ Responses models to use
prompt_cache_options.ttl: "30m"instead ofprompt_cache_retention: "24h".
v0.85.0
v0.85.0
4. September 2026
- •Persistent Claude thinking effort — Supported Anthropic transports preserve per-turn effort and recover safely from signed-thinking mismatches. See Model Configuration.
- •Fullscreen transcript controls — Jump to the latest message from a scrolled transcript and use the embedded working indicator. See TUI Fullscreen Viewport.
- •Restorable in-memory sessions — Resume externally stored session entries through the SDK. See Session Management.
- •Added
SessionManager.inMemory()support for restoring externally managed session entries (#8980 by @y-nk). - •Added inherited OpenAI-compatible
vllmPriorityandsupportsMaxOutputTokensmodel settings for vLLM scheduler priority and OpenAI Responses output-token limits (#9004 by @AppleDannyClegg, #8941 by @scturtle). - •Added inherited LaTeX rendering for relational algebra join symbols (#9050 by @haoqixu).
- •Added a clickable "Jump to latest message" label with the
tui.altScreen.bottomshortcut to the fullscreen transcript while it is scrolled up (#9080 by @rwachtler). - •Moved the streaming working indicator into the default editor border and matched its default spinner and label to the thinking-level border color. Custom editors retain the standalone indicator unless they opt in to embedding it (#8799 by @cristinaponcela).
- •Reduced inherited fullscreen transcript search latency on large transcripts by caching unchanged search results, indexing ASCII runs, and limiting highlight work to visible matches (#8800 by @cristinaponcela).
- •Fixed managed
fdand ripgrep downloads on Linux musl systems (#9070 by @Charlie0113-T). - •Removed the unavailable inherited Grok Build 0.1 model from
/model(#9093 by @Jaaneek). - •Fixed inherited provider streams emitting incompatible event sequences and custom tool-call deltas.
- •Restored the
@earendil-works/pi-coding-agent/clientcompatibility entry point. - •Fixed the inherited Qwen Token Plan Individual catalog to include Qwen3.8 Flash (#9021).
- •Fixed inherited OpenAI Codex SSE parsing to process terminal events that are not followed by a blank line (#9047).
v0.84.4
v0.84.4
29. August 2026
- •Terminal capability overrides — Override detected terminal hyperlink, image, and truecolor support. See Capability Overrides.
- •Extension UI prompt events — Integrations can distinguish active agent work from time spent waiting for
ctx.uiprompts. See Extension UI prompt events. - •RPC queue clearing — Retrieve and clear queued steering and follow-up messages with
clear_queue. See RPC `clear_queue`. - •Fullscreen selection copy controls — Disable automatic selection copying in fullscreen mode and use Ctrl+X to copy the active selection. See UI & Display.
- •DeepSeek V4 Flash Vision (experimental) — Use the vision-capable model through the built-in DeepSeek provider. See API Keys.
- •Added
ui_prompt_startandui_prompt_endextension events so host integrations can distinguish active agent work from waiting on user-facingctx.uiprompts (#8355 by @cristinaponcela). - •Added
detectSupportedImageMimeTypeFromFile()to the public library exports (#8600 by @xl0). - •Added inherited experimental vision-capable
deepseek-v4-flash-vision-expmodel support. - •Added transcript usage notices for compaction and branch summaries when cache miss notices are enabled.
- •Added RPC
clear_queueto retrieve and remove queued steering and follow-up messages (#8432). - •Added environment variables and advanced settings for overriding auto-detected terminal hyperlink, image, and truecolor capabilities (#8665).
- •Added
fullscreenCopyOnSelectto disable automatic fullscreen selection copy; when disabled,Ctrl+Xcopies the active text selection before falling back to the last assistant message, while/treestill copies the selected message (#7720). - •Fixed toggling thinking visibility clearing partial output from running Bash tools (#8611).
- •Fixed Windows shell aborts crashing Pi when
taskkill.exeis unavailable onPATH(#6596). - •Fixed resumed sessions corrupting the next appended entry when their JSONL file lacks a trailing newline (#8345).
v0.84.3Breaking Change
v0.84.3
24. August 2026
- •PowerShell tool — Use optional native PowerShell command execution on Windows. See PowerShell Tool.
- •Safer managed updates — Stage, verify, and atomically activate updates for installer-managed installations. See Install and Manage.
- •Model and thinking controls — Select thinking levels with
/thinking, search defaults, keep selections session-scoped, and persist them explicitly with Ctrl+S. See Models and Thinking. - •Renamed the inherited
GoogleThinkingLeveltype toGoogleApiThinkingLeveland addedResolvedGoogleThinkingLevelfor normalized adapter levels. - •Added an optional
powershelltool for Windows, configurable throughdefaultToolsand the SDK. See PowerShell Tool. - •Added a
/thinkingselector and searchable default choices to the model and thinking selectors; Ctrl+S saves the selected model as the global default. See Models and Thinking. - •Added optional routing session IDs to exported compaction summary helpers so callers can preserve provider routing without enabling prompt cache writes.
- •Added transcript usage notices for compaction and branch summaries when cache miss notices are enabled.
- •Added
session_compact_failedextension events so compaction failures and aborts expose their reason, retry state, source, and error message to handlers (#8175). - •Added inherited provider-neutral
toolChoicesupport to simple stream requests. - •Added inherited automatic Anthropic server-side refusal fallback for supported first-party models, including returned-model usage pricing (#8017).
- •Added inherited configurable OpenAI-compatible thinking-token budget fields for vLLM, Qwen/SGLang, and llama.cpp servers. See OpenAI Compatibility (#8275 by @bnsd55).
- •Added inherited China-specific ZAI Coding Plan models, including GLM-4.6V vision support and API-equivalent usage cost estimates (#8220).
- •Added inherited
deepseek-v4-pro-0813support to the Qwen Token Plan Individual catalog (#8194). - •Changed experimental installer-managed installations so
pi updatestages, verifies, and atomically activates the selected release in place. See Install and Manage.
v0.84.2
v0.84.2
14. August 2026
- •Fullscreen transcript search — Search and navigate matches in fullscreen mode. See TUI Fullscreen Viewport.
- •Configurable default tools — Choose startup built-in tools globally or per project. See Tools.
- •Configurable fullscreen exit output — Print the transcript or only a resume hint on exit. See Interactive Mode.
- •Added fullscreen transcript search with
Ctrl+Shift+F, incremental match highlighting, configurable search match theme colors, and next/previous navigation withEnter/Ctrl+GandShift+Enter/Ctrl+Shift+G. - •Added experimental strict JSON-schema constrained sampling for the default
read,bash,edit, andwritetools underPI_EXPERIMENTAL=1. - •Added a fullscreen exit output setting to choose between printing the final transcript and only a session resume hint.
- •Added the
defaultToolssetting for configuring the initial built-in tool selection globally or per project. - •Added
--use-theme <name[/name]>to choose an initial per-run interactive theme without changing saved settings (#7722 by @rwachtler). - •Added
expandPromptTemplatesto extensionpi.sendUserMessage()options for explicitly dispatching commands and expanding skills and prompt templates. See `pi.sendUserMessage()` (#7857 by @mrexodia). - •Added inherited
createGatewayBindingFetch()for routing Cloudflare AI Gateway requests through a Workers AI binding without an API token (#7901 by @Maximo-Guk). - •Added inherited
AssistantMessage.endTurnto preserve OpenAI Codex's terminalend_turnsignal for diagnostics (#7766). - •Added inherited unbound single-line transcript scrolling actions for fullscreen mode. See TUI Fullscreen Viewport (#7903 by @midastruth).
- •Changed inherited Kimi Coding requests to use pi's runtime
User-Agentheader. - •Replaced the inherited Mistral SDK transport with a native Chat Completions HTTP stream, eliminating its generated client and schema runtime overhead.
- •Documented the generic
AI_AGENT=piprocess marker and how it differs fromPI_CODING_AGENT=true(#7747).
v0.84.1
v0.84.1
7. August 2026
- •Qwen Token Plan Individual — Use the built-in provider for models documented for Individual subscriptions. See API Keys.
- •Authentication readiness checks — Use
pi auth checkto verify provider or model credentials, optionally emitting the resolved credential. - •Improved fullscreen interaction — Select words and paragraphs with multiple clicks and configure half-page transcript scrolling. See TUI Fullscreen Viewport.
- •Terminating blocked tool calls — Extension
tool_callhandlers can stop all-terminating batches without another model call. See Tool Events. - •Added Qwen Token Plan Individual as a built-in provider with its documented subscription model catalog and the shared international
QWEN_TOKEN_PLAN_API_KEY. See API Keys (#7659 by @arasovic). - •Added
pi auth checkprovider/model auth preflight with optional credential output (#7152). - •Added
terminatesupport to blocked extensiontool_callevents so all-terminating batches can skip the automatic follow-up model call. See Tool Events (#7715 by @muyiyr). - •Added inherited double-click word and whitespace selection, granularity-aware drag selection, and triple-click paragraph selection in fullscreen mode (#7725, #7733 by @volsa).
- •Added inherited unbound half-page transcript scrolling actions for fullscreen mode. See TUI Fullscreen Viewport (#7735).
- •Softened the bash tool's
PI_*environment guideline in an attempt to reduce unnecessary inspection commands (#7128). - •Reduced worst-case automatic terminal theme detection delay from 200 ms to 100 ms by probing color-scheme and background support concurrently.
- •Fixed Bun standalone binaries crashing on startup when the cwd contains a
bunfig.tomlwithpreloadby compiling with--no-compile-autoload-bunfig(#7685 by @geril07). - •Fixed extension TUI method wrappers recursing indefinitely when delegating to the original method (#7731).
- •Fixed right-click not pasting clipboard text in fullscreen mode on Windows.
- •Fixed inherited
Agent.reset()clearing transcript and runtime state during active runs; it now rejects until the agent is idle (#7717 by @wesleyzhangwq).
v0.84.0Breaking Change
v0.84.0
6. August 2026
- •Fullscreen TUI mode — Switch between regular and fullscreen modes at runtime, with a sticky editor and footer, independently scrollable transcript, and draggable scrollbars. See UI & Display.
- •Mermaid and LaTeX rendering — Render Mermaid diagrams and terminal-friendly Unicode math in interactive transcripts. See Markdown settings and TUI Markdown.
- •Per-directory context overrides — Use
AGENTS.override.mdto replace context files for a specific directory. See Context Files. - •Advanced custom model sampling — Configure arbitrary OpenAI-compatible
samplingParamsand opt-in vLLMthinking_token_budgetvalues. See Sampling Parameters. - •Baseten provider — Use built-in Baseten authentication and model support. See API Keys.
- •Renamed the inherited pi-ai
ModelsStreamTransformsinterface toModelsRequestTransformsbecause its header transformation now applies to all authenticated provider requests. - •Changed JSON and RPC
message_updateevents to emit onlyassistantMessageEventdeltas, removing the cumulativemessageandassistantMessageEvent.partialfields that caused quadratic output growth. Clients that need partial messages must assemble deltas betweenmessage_startandmessage_end; the latter remains authoritative (#7290). - •
ModelRegistry.getApiKeyAndHeaders()now returnsProviderHeaderswithstring | nullvalues and preservesnullheader-deletion markers. Extensions that inspect returned headers must handlenull; extensions forwarding them to pi-ai streams should pass them through unchanged. This prevents placeholder OpenAI credentials from being sent through Cloudflare AI Gateway (#7030). - •Changed
ModelRegistry.refresh()to acceptModelsRefreshOptionsand returnModelsRefreshResultinstead of discarding cancellation and provider errors. - •Changed
ModelRuntime.setRuntimeApiKey()to accept auth cancellation options rather than catalog refresh options. Callrefresh({ providers: [providerId], signal })separately when remote freshness is required. - •Required config-form extension OAuth
refreshToken(credentials, signal)callbacks to accept and honor a concrete abort signal. - •Replaced dynamic provider refresh context store access with the read-only
context.storedsnapshot and generation-checkedcontext.publish()transaction. - •Replaced the inherited pi-agent-core harness session model with the v4 lane-based
Session,SessionStorage, andSessionRepoAPIs, including durable operation records, global facts, shared sequence numbers, and tree-scoped lane views. - •Promoted the inherited v2 session and
AgentHarnessAPI from pi-agent-core's experimental entrypoint to its default export and removed the experimental subpaths. - •Removed the inherited legacy JSONL and in-memory repository APIs. Use pi-agent-core's v4
JsonlSessionRepoorInMemorySessionRepo, both implementing the newSessionRepocontract.
v0.83.0Breaking Change
v0.83.0
30. Juli 2026
- •Credential export for external clients —
pi auth print-api-keyandpi auth print-bearer-tokenexport configured credentials with automatic OAuth refresh and minimum-validity enforcement. - •Headless OpenRouter sign-in — Complete
/loginover SSH by pasting the redirect URL or authorization code when the loopback callback is unavailable. See OpenRouter. - •Claude Opus 5 on GitHub Copilot — Use Claude Opus 5 through GitHub Copilot with adaptive thinking and a 1M context window. See GitHub Copilot.
- •Upgraded bundled TypeBox aliases to 1.3.7, removing deprecated APIs including
Type.Base,Type.Awaited,Type.Promise,Type.AsyncIterator,Type.Iterator,Type.Options, andValue.Mutate, while fixing compiled validation of nullable array tool arguments. Extensions using removed APIs must migrate to supported TypeBox APIs. See Package Dependencies (#7243 by @petrroll). - •Added
pi auth print-api-keyandpi auth print-bearer-tokencommands for exporting configured credentials to external clients, including automatic OAuth refresh and configurable minimum token validity (#7168). - •Exposed the session's resolved model scope as
ctx.scopedModelsto extensions. See Extension Context (#7191 by @pungggi, #7215). - •Added inherited per-request
fetchinjection for supported text and image provider transports. - •Added the inherited
"pending"stop reason for partial streaming messages. See Custom Provider Stream Pattern (#7151 by @lucasmeijer). - •Added inherited raw provider stop reasons across Google, Anthropic, Amazon Bedrock, Mistral, and OpenAI streams; unmapped terminal reasons now surface as provider errors instead of successful stops (#7272).
- •Added manual redirect URL and authorization-code entry to OpenRouter login for remote and headless environments. See OpenRouter (#7114 by @rgarcia).
- •Added inherited Claude Opus 5 support for GitHub Copilot with adaptive thinking and a 1M context window. See GitHub Copilot (#7158 by @jay-aye-see-kay).
- •Changed inherited OAuth credential resolution to refresh tokens with less than five minutes of validity remaining instead of waiting until expiration (#7168).
- •Added a status line when the tool output expansion is toggled (#7180).
- •Fixed file-backed
SYSTEM.mdandAPPEND_SYSTEM.mdprompts being omitted from the interactive startup context listing. See System Prompt Files (#7096). - •Fixed context files loading twice when a linked Git worktree is nested under its main repository. See Context Files (#7221 by @arajkumar).
v0.82.1
v0.82.1
25. Juli 2026
- •Claude Opus 5 — Available on Anthropic and Amazon Bedrock with adaptive thinking (including
xhigh), inference profiles, and prompt caching. See Providers. - •Anthropic gateway bearer auth —
ANTHROPIC_AUTH_TOKENauthenticates against Anthropic-compatible gateways that requireAuthorization: Bearer, including compaction and branch summaries. See Environment Variables or Auth File. - •Faster, more resilient model catalogs — pi.dev catalogs revalidate with
If-None-Matchso unchanged providers answer with an empty304, and llama.cpp models stay listed across restarts. See llama.cpp. - •Exposed the
outputPadsetting to custom message renderers. See Extensions (#7045 by @xl0). - •Added inherited
ANTHROPIC_AUTH_TOKENbearer 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 pi.dev model catalog refreshes to revalidate with
If-None-Match, so unchanged provider catalogs answer with an empty304instead 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-codexreport the provider response instead of a bare wrapper message. - •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 producedEISDIRwarnings (#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
v0.82.0
24. Juli 2026
- •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
/loginto 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 inherited
Tool.constrainedSamplingwith 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
supportsGrammarToolsandsupportsStrictToolscompatibility flags, expandedsupportsStrictModecoverage, 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, andPI_REASONING_LEVELto commands run by built-in and factory-created bash tools. See Bash Tool Session Environment. - •Added streaming
bash_execution_updateevents for direct RPC bash commands, correlated with request IDs. See RPC bash events (#6971 by @ananthakumaran). - •Changed inherited generated model catalogs to expose only provider-verified reasoning effort levels from models.dev (#6928 by @davidbrai).
- •Fixed inherited DNS lookup failures such as
getaddrinfo,ENOTFOUND, andEAI_AGAINto trigger automatic assistant retries (#6946 by @christianklotz). - •Fixed inherited OpenRouter Anthropic cache breakpoints to advance through tool results and enabled cache control for
~anthropic/*-latestaliases (#6941 by @mteam88). - •Fixed inherited OpenAI Codex WebSocket sessions to retry once without a missing previous-response continuation after
previous_response_not_founderrors (#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).
v0.81.1
v0.81.1
21. Juli 2026
- •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.
- •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 and RPC retry events.
- •Added deterministic, checksummed source archives to GitHub releases with documented standalone binary rebuild instructions (#6913 by @christianklotz).
- •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
v0.81.0
21. Juli 2026
- •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 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_levelsRPC command andRpcClient.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
/loginconnection setup and/llamaHugging 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).
- •Updated the packaged
brace-expansiondependency 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
envvalues, 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
k2p7alias tokimi-for-coding.
v0.80.10
v0.80.10
17. Juli 2026
- •Kimi Coding thinking compatibility — Kimi Coding models now use adaptive thinking correctly; K3 exposes its supported
maxlevel and supports replaying empty-signature thinking blocks. See Kimi For Coding setup and Model Options. - •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
maxlevel (#6737). - •Fixed inherited catalog generation restoring xAI models removed in 0.80.9 (#6736).
v0.80.9
v0.80.9
16. Juli 2026
- •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, OpenAI Compatibility, and the `kimi-deferred-tools.ts` example.
- •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, OpenAI Compatibility, and the `kimi-deferred-tools.ts` example.
- •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 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 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.8Breaking Change
v0.80.8
16. Juli 2026
- •Unified model runtime and provider authentication —
ModelRuntimecentralizes model configuration, provider-owned/login, and dynamic provider catalogs. See Providers. - •Live model catalog refresh —
/modelrefreshes configured providers in the background, andpi update --modelsforces 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.
- •Replaced the SDK's
CreateAgentSessionOptions.authStorageandmodelRegistryoptions with the asyncmodelRuntimeoption.AuthStorageand its storage backends are no longer exported; useModelRuntime(or a custom pi-aiCredentialStore), orreadStoredCredential()for one-off reads of auth.json. - •Removed redundant
ModelRuntime.getAll(),find(),getSnapshot(), andgetAuthOptions()projections. Use the pi-aiModelsmethodsgetModels(),getModel(),getProviders(), andcheckAuth()directly. - •Replaced SDK request-auth assembly through
ModelRegistry.getApiKeyAndHeaders()withModelRuntime.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 synchronousvoidtoPromise<void>becausemodels.jsonloading is asynchronous. Extensions must await it before making synchronous registry reads. - •Moved canonical dynamic catalog refresh to async
ModelRuntime.refresh()/pi-aiModels.refresh(). Legacy extension OAuthmodifyModelsremains supported as a synchronous compatibility projection after credential initialization. - •Added
ModelRuntimeas the canonical async SDK and internal model/auth facade while preserving the synchronous extension-facingModelRegistryAPI.ModelRuntime.create()accepts any pi-aiCredentialStorethrough itscredentialsoption. - •Added provider-owned
/logindiscovery 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 --modelsto 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
ModelRuntimeto compose built-in providers, immutablemodels.jsonconfiguration, and extension overlays through ad-hoc pi-ai provider methods.
v0.80.7Breaking Change
v0.80.7
14. Juli 2026
- •Removed the
openai-responsescompat.sendSessionIdHeaderflag frommodels.json. Session-affinity behavior is now controlled bycompat.sessionAffinityFormat("openai","openai-nosession", or"openrouter"). ReplacesendSessionIdHeader: falsewithsessionAffinityFormat: "openai-nosession"(#6496 by @petrroll). - •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+Xcopies 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
xhighandmaxthinking levels are available across generated provider catalogs. See Model Options. - •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
xhighandmaxthinking levels for Claude Fable 5 across all generated provider catalogs (#6490 by @davidbrai). - •Added
Ctrl+Xto copy the last assistant message, or the selected message in/tree. - •Added inherited
toolChoicesupport for OpenAI and Codex Responses, including required and named tool selection (#6588 by @xl0). - •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-idheader instead of OpenAI-specific session-affinity fields (#6496 by @petrroll). - •Fixed
Ctrl+Vto paste clipboard text when the pasteboard does not contain an image. - •Fixed
/login amazon-bedrockto 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+,andAlt+.(#6523 by @ribelo).
v0.80.6
v0.80.6
10. Juli 2026
- •`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 definethinkingMax. 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.jsonandmodelOverrides. See Model Configuration. - •Added the opt-in
maxthinking level across CLI, SDK, RPC, model selection, and themes. Custom themes can definethinkingMax; existing themes fall back tothinkingXhigh. - •Added request-wide input-token pricing tiers to custom model costs in
models.json,modelOverrides, and extension-registered providers. - •Added
~(home directory) expansion for theshellPathsetting (#6470 by @aaronkyriesenbach). - •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.6alias. - •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).
Zeige 30 von 129