New Features
- Anthropic Claude Sonnet 5 support - Claude Sonnet 5 is available through inherited Anthropic-compatible and Bedrock provider catalogs with adaptive thinking enabled. See Providers and Model Options.
- Configurable output spacing -
outputPadcontrols horizontal padding for user messages, assistant messages, and thinking blocks. See Settings. - External editor configuration -
externalEditorlets Ctrl+G use a configured editor before$VISUAL/$EDITORfallbacks. See Settings and Keybindings. - Richer RPC session tree access - RPC clients can inspect session entries and tree snapshots with
get_entriesandget_tree. See get_entries and get_tree. - Extension session metadata updates - Extensions can observe session name changes through
session_info_changed. See session_info_changed. - Modern Azure Foundry endpoint support - Azure OpenAI Responses provider setup supports current Microsoft Foundry endpoint URLs. See Azure OpenAI.
Added
- Added inherited Anthropic Claude Sonnet 5 model support.
- Added
get_entriesandget_treeRPC commands for reading session entries and tree snapshots over RPC (#6078 by @geraschenko). - Added a package
./rpc-entryexport for launching Pi directly in RPC mode. - Added session-name change events for extensions (#6175 by @xl0).
- Added inherited Azure OpenAI Responses support for modern Microsoft Foundry endpoint URLs (#6004 by @gukoff).
- Added inherited
Usage.reasoningtoken counts for providers that report reasoning/thinking token usage (#6057). - Added an
externalEditorsettings.json override for Ctrl+G external editor commands, with default fallbacks to Notepad on Windows andnanoelsewhere (#6122). - Added an
outputPadsetting for user message, assistant message, and thinking horizontal padding (#6168).
Changed
- Changed the default OpenAI model to
gpt-5.5. - Changed inherited OpenAI Codex Responses SSE response-header waits to use the configured HTTP timeout instead of the previous fixed 20 second timeout, reducing false timeouts on slow connections (#4945).
Fixed
- Fixed inherited Claude Sonnet 5 metadata to use adaptive thinking payloads for Anthropic-compatible and Bedrock requests.
- Fixed inherited generated Xiaomi MiMo model pricing to match current pay-as-you-go pricing from models.dev (#6138).
- Fixed inherited provider HTTP errors to include response bodies instead of opaque SDK messages (#5832 by @stephanmck).
- Fixed inherited
streamSimple()max-token caps so providers that count input and output against one context window do not reject long requests (#5595). - Fixed inherited OpenAI Responses streams to preserve reasoning replay state when output items finish out of order (#6009).
- Fixed inherited Z.AI preserved thinking requests to send
thinking.clear_thinking: falsewhen thinking is enabled, allowing replayedreasoning_contentto participate in provider caching (#6083). - Fixed pre-prompt compaction to stop after compaction instead of continuing immediately (#6074 by @yzhg1983).
- Fixed resource notifications to stay before messages when resuming sessions (#6048 by @haoqixu).
- Fixed startup benchmark timing output to print after TUI shutdown, preserve extension timings, and drain terminal-query replies before stopping benchmark mode (#6030 by @xl0, #6063 by @xl0).
- Fixed extension tool changes to apply before the next provider request in the same agent run without dropping
before_agent_startsystem-prompt overrides (#6162). - Fixed a crash when undici emits an internal client error while terminating a mid-stream HTTP response (#6133).
- Fixed the compaction event regression test to cover status indicator cleanup and keep CI passing.
- Fixed interactive status indicators so ending work, retry, compaction, or branch-summary indicators no longer shrink the TUI when clear-on-shrink is enabled (#6026).
- Fixed
--sessionandSessionManager.open()to reject non-empty invalid session files without overwriting them (#6002). - Fixed user-message transcript rendering to keep visible backslashes in Markdown escape sequences such as
\"(#6105). - Fixed assistant messages stopped by output length to show a visible incomplete-response error (#4290).
- Fixed
--no-session --session-idso ephemeral CLI runs can use deterministic session IDs for provider cache affinity (#6070). - Fixed disk BMP image files to be detected, converted to PNG, and attached through
readand CLI@fileinputs (#6047). - Fixed auto-retry for provider stream errors that explicitly tell callers to retry the request (#6019).