Releases: earendil-works/pi
Releases · earendil-works/pi
v0.74.0
v0.73.1
New Features
- Self-update support for the npm scope migration:
pi update --selfnow supports the upcoming package rename from@mariozechner/pi-coding-agentto@earendil-works/pi-coding-agent. After the new package is published, existing global installs can update through the normal self-update flow; pi will uninstall the old global package and install the package name returned by the version check endpoint. - Interactive OAuth login selection: OAuth providers can now present multiple login choices in
/login, enabling provider-specific interactive authentication flows. See Providers. - JSONC-style
models.jsonparsing:models.jsonnow allows comments and trailing commas, making custom provider and model configuration easier to maintain. See Providers and Custom Providers.
Added
- Added interactive login selection support so OAuth providers can present multiple login choices (#4190 by @mitsuhiko).
Changed
- Changed
pi update --selfto honor the active package name returned by the Pi version check endpoint, defaulting to the current package when omitted and uninstalling the old global package before installing a renamed package. - Changed extension loading to use upstream
jiti2.7 instead of the@mariozechner/jitifork (#4244 by @pi0). - Changed
models.jsonparsing to allow comments and trailing commas (#4162 by @julien-c).
Fixed
- Fixed
pi -ptreating prompts that start with YAML frontmatter as extension flags instead of user messages (#4163). - Fixed pending tool results not updating in the live TUI after toggling thinking block visibility while the tool is running (#4167).
- Fixed
/copyreporting success on Linux without writing the clipboard on Wayland-only compositors (Hyprland, Niri, ...) by skipping the X11-only native addon on Linux and routing throughwl-copy/xclip/xselinstead (#4177). - Fixed HTML session exports to strip skill wrapper XML from rendered user messages (#4234 by @aliou).
- Fixed OpenAI-compatible chat completion streams that interleave content and tool-call deltas in the same choice.
- Fixed OpenAI Codex OAuth refresh failures writing directly to stderr while the TUI is active (#4141).
- Fixed OpenAI Codex Responses requests to send a non-empty system prompt (#4184).
- Fixed Kimi For Coding model resolution for the Kimi K2 P6 alias (#4218).
- Fixed Kitty inline image redraws to stay within TUI-owned terminal regions and avoid writing below the active viewport.
- Fixed Kitty inline image rendering by letting the terminal allocate image ids and bounding parsed image ids to valid values.
- Fixed inline image capability detection to disable inline images in cmux terminals.
v0.73.0
New Features
- Xiaomi MiMo API billing and regional Token Plan providers -
xiaominow uses API billing, with separatexiaomi-token-plan-{cn,ams,sgp}providers. See docs/providers.md#api-keys and README.md#providers--models. (#4112 by @Phoen1xCode) - Incremental bash output streaming - Bash tool output now appears while commands run instead of only after completion. (#4145)
- Compact read rendering - Interactive
readoutput for Pi docs, context files, and skills is collapsed by default and shows selected line ranges.
Breaking Changes
- Switched the built-in
xiaomiprovider from Token Plan AMS to Xiaomi's API billing endpoint, and renamed its/logindisplay from "Xiaomi MiMo Token Plan" to "Xiaomi MiMo".XIAOMI_API_KEYnow refers to the API billing key from platform.xiaomimimo.com. Users on Token Plan should switch to the appropriatexiaomi-token-plan-*provider and set the corresponding env var (#4112 by @Phoen1xCode).
Added
- Added three Xiaomi MiMo Token Plan regional providers visible in
/login:xiaomi-token-plan-cn(XIAOMI_TOKEN_PLAN_CN_API_KEY),xiaomi-token-plan-ams(XIAOMI_TOKEN_PLAN_AMS_API_KEY),xiaomi-token-plan-sgp(XIAOMI_TOKEN_PLAN_SGP_API_KEY). Each defaults tomimo-v2.5-pro(#4112 by @Phoen1xCode).
Changed
- Changed
readtool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, andSKILL.mdcontents by default in interactive output.
Fixed
- Fixed generated OpenAI-compatible model metadata for Qwen 3.5/3.6 and MiniMax M2.7, so those models work through the built-in provider catalog (#4110 by @jsynowiec).
- Fixed Bedrock Claude Opus 4.7
xhighthinking requests by preserving the provider's native effort value. - Fixed OpenAI Codex WebSocket transport to fall back to SSE when setup fails before streaming starts, and surface transport diagnostics in the assistant message (#4133).
- Fixed OpenAI Codex WebSocket transport keeping
--printand JSON mode processes alive after the response by closing cached WebSocket sessions during session shutdown (#4103). - Fixed compact
readtool calls to render directly and include selected line ranges in interactive output. - Fixed interactive sessions to exit when terminal input is lost instead of continuing in a broken state.
- Fixed bash tool output to stream incrementally while commands run instead of waiting for command completion (#4145).
- Fixed selector and autocomplete fuzzy ranking to prioritize exact matches.
v0.72.1
Release v0.72.1
v0.72.0
New Features
- Xiaomi MiMo Token Plan provider - New Anthropic-compatible provider with
XIAOMI_API_KEYauth, default model (mimo-v2.5-pro), and/logindisplay. See docs/providers.md. (#4005 by @Phoen1xCode). - Model thinking level metadata - Models can now declare which thinking levels they support via
thinkingLevelMap, replacing the oldreasoningEffortMap. See docs/models.md#thinking-level-map and docs/custom-provider.md. (#3208). - Custom provider base URL overrides -
pi.registerProvider()now respects per-modelbaseUrlsettings. See docs/custom-provider.md. (#4063). - Post-turn stop callback - Agent loop can now exit gracefully after a completed turn via
shouldStopAfterTurn. Seepackages/agent/README.md. - Self-update detection fix -
pinow correctly identifies and applies available updates. (#3942, #3980, #3922).
Breaking Changes
- Replaced
compat.reasoningEffortMapinmodels.jsonandpi.registerProvider()model definitions with model-levelthinkingLevelMap(#3208). Migration: move old mappings fromcompat.reasoningEffortMaptothinkingLevelMap. Use string values for provider-specific thinking values andnullfor unsupported pi levels that should be hidden and skipped by cycling. Seedocs/models.md#thinking-level-mapanddocs/custom-provider.md.
Added
- Added Xiaomi MiMo Token Plan provider support with
XIAOMI_API_KEY, default model resolution,/logindisplay support, and provider documentation (#4005 by @Phoen1xCode). - Added model-level
thinkingLevelMapsupport inmodels.jsonandpi.registerProvider(), allowing models to expose only the thinking levels they actually support (#3208). - Added
shouldStopAfterTurnagent loop callback for post-turn stop control, inherited from@mariozechner/pi-agent-core. Seepackages/agent/README.md.
Fixed
v0.71.1
Added
- Added
websocket-cachedto the transport setting options for the OpenAI Codex provider used with ChatGPT subscription auth. This keeps the same WebSocket open for a session and, after the first request, sends only the new conversation items instead of resending the full chat history when possible.
v0.71.0
Breaking Changes
- Removed built-in Google Gemini CLI and Google Antigravity support. Existing configurations using those providers must switch to another supported provider.
New Features
- Cloudflare AI Gateway provider support with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_ID, default model resolution, and/logindisplay. See docs/providers.md#cloudflare-ai-gateway. (#3856 by @mchenco). - Moonshot AI provider support with
MOONSHOT_API_KEY, default model resolution, and/logindisplay. - Mistral Medium 3.5 built-in model support. See docs/providers.md#api-keys. (#4009 by @technocidal).
- Extension APIs can replace finalized
message_endmessages, wrap custom editor factories viactx.ui.getEditorComponent(), and observe thinking level changes. See docs/extensions.md#message_start--message_update--message_end, docs/extensions.md#widgets-status-and-footer, and docs/extensions.md#thinking_level_select. PI_CODING_AGENT_SESSION_DIRconfigures session storage from the environment. See docs/usage.md#environment-variables.
Added
- Added Cloudflare AI Gateway as a built-in provider with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_IDsetup, default model resolution,/logindisplay support, and provider documentation (#3856 by @mchenco). - Added Moonshot AI as a built-in provider with
MOONSHOT_API_KEYsetup, default model resolution, and/logindisplay support. - Added Mistral Medium 3.5 built-in model support via
@mariozechner/pi-ai(#4009 by @technocidal). - Added routed OpenAI-compatible response model metadata in assistant messages, so providers such as OpenRouter can expose the concrete model used (#3968 by @purrgrammer).
- Added
PI_CODING_AGENT_SESSION_DIRas an environment equivalent to--session-dir(#4027). - Added
message_endextension result support for replacing finalized messages, enabling extensions to override assistant usage cost (#3982). - Added top-level
namesupport topi.registerProvider()so extension-registered providers can show a friendly name in/login(#3956). - Added
ctx.ui.getEditorComponent()so extensions can wrap the currently configured custom editor factory (#3935). - Added a
thinking_level_selectextension event for observing thinking level changes (#3888).
Fixed
- Fixed WSL clipboard image paste by passing the PowerShell save path directly instead of through a custom environment variable (#2469).
- Fixed Google Vertex Gemini 3 tool call replay for unsigned tool calls (#4032).
- Fixed blocked
edittool results rendering the rejection reason twice after interactive extension confirmation (#3830). - Fixed extension-triggered thinking level changes refreshing the interactive editor border immediately (#3888).
- Fixed the coding-agent README See Also link to point at
@mariozechner/pi-agent-core(#4023). - Fixed
grepandfindtool argument injection for flag-like search patterns (#4018). - Fixed PowerShell shell command output on Windows by only spawning detached processes on Unix (#4013 by @picasso250).
- Fixed Bun package manager
node_modulesdiscovery whennpmCommandis configured to use Bun (#3998 by @thirtythreeforty). - Fixed edit and edit-preview access failures to report filesystem errors correctly (#3955 by @rwachtler).
- Fixed
ProcessTerminalsizing to useCOLUMNSandLINESbefore falling back to 80x24 (#4004). - Updated
@anthropic-ai/sdkto clear GHSA-p7fg-763f-g4gf audit findings (#3992). - Updated
@mariozechner/clipboardto an attested release so package managers with trust policies do not reject installs (#3946). - Fixed project context discovery to load
AGENTS.MDfiles in addition toAGENTS.md(#3949). - Fixed
/handoffto use compacted session context instead of pre-compaction raw messages (#3945). - Fixed DeepSeek V4 Flash
xhighthinking support so requests map to DeepSeek'smaxreasoning effort (#3944). - Fixed Anthropic streams that end before
message_stopto be treated as errors instead of successful partial responses (#3936). - Fixed generated OpenAI-compatible DeepSeek V4 reasoning compatibility outside the direct DeepSeek provider (#3940).
- Fixed idle follow-up submission to clear the editor like normal message submission (#3926).
- Fixed editor rendering artifacts for Thai Sara Am and Lao AM vowel characters (#3904).
- Fixed DeepSeek V4 Flash and V4 Pro pricing metadata to match current official rates (#3910).
- Updated the sandbox extension example lockfile to resolve the vulnerable
lodash-estransitive dependency (#3901). - Fixed DeepSeek prompt cache hits to be tracked from OpenAI-compatible usage responses (#3880).
Removed
v0.70.6
New Features
- Cloudflare Workers AI provider support with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_IDsetup. See docs/providers.md#api-keys. (#3851 by @mchenco) - Pi update checks now use
pi.devand identify Pi with api/<version>user agent. See docs/packages.md. (#3877 by @mitsuhiko)
Added
- Added Cloudflare Workers AI as a built-in provider with
CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_IDsetup, default model resolution,/loginsupport, and provider documentation (#3851 by @mchenco).
Changed
- Changed Pi version checks to identify Pi with a
pi/<version>user agent (#3877 by @mitsuhiko).
Fixed
- Fixed config selector scroll indicators to show item counts instead of line counts (#3820 by @aliou).
- Fixed exported HTML to escape embedded image data and session metadata, preventing crafted session content from injecting markup (#3819 by @justinpbarnett, #3883 by @justinpbarnett).
- Fixed Bun-based package manager startup by locating global
node_modulesrelative to Bun's install layout (#3861 by @thirtythreeforty). - Fixed Bedrock inference profile capability checks by normalizing profile ARNs to the underlying model name.
- Fixed file discovery to fall back to
fdfindwhenfdis unavailable. - Fixed
pi updateto skip self-update reinstalls when the installed version is already current (#3853). - Fixed Cloudflare Workers AI attribution headers to honor the install telemetry setting.
- Fixed
pi update --selfdetection and execution for Windows package-manager shim installs, including symlinked global package roots, and print the manual fallback command when self-update fails (#3857).
v0.70.5
Fixed
- Fixed HTML export preserving ANSI-renderer trailing padding as extra blank wrapped lines.
v0.70.4
Fixed
- Fixed packaged
pistartup failing because the session selector imported a source-only utility path.