New Features
- Choose where
/shareuploads:sessionShareDestinationselectsauto,gist, orradius. See Sessions and context and Export or share a session. - Cache-preserving thinking level changes on OpenAI GPT-6: changing the thinking level mid-session with an API key keeps the prompt cache.
- Kimi Code over Chat Completions: tools added mid-conversation no longer invalidate the prompt cache.
models.jsonbase URL overrides must now include/v1. See Providers. - Clean model switching: thinking from a previous model is dropped instead of being shown to the new model as text.
- Resumed sessions keep their active tools:
--tools +name/-nameapplies on top of them. See Tools.
Added
- Changing the thinking level mid-session on OpenAI GPT-6 models (API key) now keeps the prompt cache (#10853)
- Added the
sessionShareDestinationsetting to choose automatic, GitHub gist, or Radius uploads for/share(#10870 by @vegarsti)
Changed
- Changed the
kimi-codingprovider to use OpenAI Chat Completions athttps://api.kimi.com/coding/v1, the protocol used by the official Kimi Code client. K3, K3-256K, and Kimi For Coding now accept tools added mid-conversation without invalidating the prompt cache.models.jsonoverrides of thekimi-codingbase URL must now include/v1(#10720) - Changed model switching to drop thinking blocks from earlier assistant messages produced by a different model, instead of sending them as plain text. The new model previously saw the old model's reasoning as part of its replies and could start writing its own reasoning into the visible answer (#10995)
Fixed
- Pinned internal Pi dependencies to exact release versions to prevent fresh installs from mixing incompatible packages (#10865)
- Fixed resumed sessions dropping tools activated during the session. Resume now restores the session's active tools, with
--tools +name/-nameentries applied to them, unless--toolswith tool names,--no-tools, or--no-builtin-toolsselects tools explicitly (#10785) - Fixed stopping a codemode script or reaching its deadline waiting for a non-interruptible built-in to return on Bun (#10748)
- Fixed repeated codemode timeouts or aborts accumulating surviving workers; admission now limits live workers to two across sessions, counting cancelled workers until actual exit (#10748)
- Fixed
--modelchoosing a provider by catalog order when several providers offer the match; Pi now prefers the provider with credentials and otherwise reports the ambiguity.--modelsandenabledModelsadd a model for each provider that offers it and warn about the ambiguity (#10160) - Fixed
readline-range labels for numeric-string or null arguments in the TUI, session tree, HTML exports, and examples (#9887) - Fixed the Nix flake build failing when a provider switched APIs: the model catalog pin is now refreshed from the newest published catalog when its model API groups differ, and releases pin the newest catalog and build with it before tagging (#10985)
- Fixed the Nix package putting its Node.js first on
PATH, which made bash tool shells use Pi's Node instead of the user'snode/npm. Pi's Node is now only a fallback (#10519) - Fixed prompt templates dropping empty quoted arguments (
""or''), which shifted later positional arguments and prevented positional defaults from applying (#10867) - Fixed the Nix package build failing in its install check because it still expected chord and esbuild, which Pi no longer depends on
- Fixed tool-call argument parsing dropping fields when a string contains an invalid
\uescape such as\usepackage(#10868) - Fixed Anthropic and Bedrock Claude requests failing with a 400 when an error tool result contains images; the images are now sent after the tool results of the turn, so the model still sees them (#10794)
- Fixed OpenCode Go Gemini models failing with a 404 by moving OpenCode Zen and OpenCode Go to the
opencode.ai/inferenceendpoints, and added Google Generative AI support to the OpenCode Go provider - Fixed OpenCode Go MiniMax M2.7 failing with "Model does not support this protocol" by using the Anthropic Messages API
- Fixed automatic retry not triggering for gateway
Unable to forward upstream streamerrors (#10920) - Fixed automatic retry not triggering for
The service is temporarily unavailableerrors, which also made compaction fail on the first attempt (#10965) - Fixed OpenAI-compatible responses showing thinking after the answer when a proxy such as LiteLLM sends reasoning and content in the same stream chunk (#10926)
- Fixed Gemini 4 Argon requests on Google Vertex failing with "Thinking budget is not supported", and its thinking level being ignored on the Gemini API (#10890)
- Fixed Xiaomi MiMo models failing with a 400 at the
minimalthinking level; they now expose only theoffandhighlevels (#10818) - Fixed
openai-codex/gpt-6.1-solusing a 272K context window instead of the 500K window Codex now provides (#10840) - Fixed tool calls whose final arguments are malformed JSON silently running with only the fields parsed before the error; they now fail validation and show the model the raw arguments it sent (#10897)
- Fixed Claude Haiku 5.5 and Claude Opus 5 not supporting the
offthinking level (#10753) - Fixed
done()of an extension'sctx.ui.custom({ overlay: true })closing the topmost overlay instead of its own, which left the finished overlay on screen and another extension's dialog unresolved (#10648, #10999 by @masonc15)