Releases: earendil-works/pi
Releases · earendil-works/pi
v0.74.2
v0.75.4
New Features
- Hardened npm install and release path - Pi now ships the CLI with a generated shrinkwrap for transitive dependencies, blocks accidental lockfile changes, verifies dependency pinning and lifecycle-script allowlists in checks, disables lifecycle scripts for self-update and local release installs where supported, and smoke-tests isolated npm and Bun installs before release. See Supply-chain hardening.
Added
- Added interactive update notes after
pi updateruns, so users can see the installed version's changelog before continuing (#4724 by @mitsuhiko). - Exported image resize utilities from the package root for SDK consumers (#4775 by @xl0).
Changed
- Changed source syntax to avoid TypeScript constructs that require JavaScript emit, keeping core sources compatible with Node.js strip-only TypeScript checks.
- Removed web UI workspace references from the CLI package and dropped the package-level development watch script.
- Published npm installs now include an
npm-shrinkwrap.jsonto lock transitive dependencies for the CLI package. - Improved terminal theme detection for light/dark and truecolor handling.
- Changed self-update package-manager commands to disable lifecycle scripts during reinstall.
Fixed
- Fixed the system prompt to tell models to resolve pi docs and examples under the absolute package paths before reading topic-specific relative references (#4752).
- Fixed extension
ctx.abort()during tool-call preflight to stop later confirmations and restore queued interactive input like Escape (#4276). - Fixed AgentSession retry, compaction, and event settlement to use the awaited agent lifecycle instead of a separate event queue, and added
willRetrytoagent_endsession events. - Fixed forked session runtime state to keep the active session id aligned with the fork target (#4799 by @Perlence).
- Fixed the subagent extension's parallel mode to return useful per-task output and failed-task diagnostics to the parent model instead of 100-character previews (#4710).
- Fixed Windows local bash execution to hide helper console windows when launched from background SDK processes (#4699).
- Fixed managed npm extension folders to set cloud-sync ignore metadata where supported (#4763).
- Fixed HTTP idle timeout configuration so long-running provider streams can avoid premature idle disconnects (#4759 by @mitsuhiko).
- Fixed default system prompt boundaries to use explicit XML tags for clearer file separation (#4709 by @herrnel).
- Fixed HTML share/export sidebar clicks for shared tool entries to scroll to the rendered tool call (#4664 by @yzhg1983).
- Fixed theme palettes to set explicit text colors and avoid terminal-default color drift.
- Fixed truecolor detection to align terminal image rendering and interactive theme decisions.
- Fixed loader indicator startup inherited from
@earendil-works/pi-tuiso initialization cannot run before frames are available. - Fixed OpenAI-compatible default output token requests inherited from
@earendil-works/pi-aito avoid reserving impossible context windows on servers such as vLLM (#4675). - Fixed OpenAI prompt cache keys inherited from
@earendil-works/pi-aito stay within the 64-character provider limit (#4720). - Fixed Windows npm-family package commands for fnm-managed Node.js installs that expose both extensionless Unix scripts and
.cmdshims (#4793).
v0.75.3
v0.75.2
Fixed
- Fixed Bun-compiled release binaries failing to start when Bun's built-in undici shim lacks npm undici's
installexport (#4661 by @dmasiero). - Fixed Xiaomi MiMo generated model metadata to replay assistant tool-call messages with
reasoning_contentfor thinking-mode multi-turn requests, inherited from@earendil-works/pi-ai(#4678). - Fixed Windows external editor handoff so vim/nvim can receive input after opening from the TUI (#4612).
- Fixed Windows npm self-updates to move loaded native dependency packages out of the active install before reinstalling pi (#4157).
- Fixed
pi update --selfdetection for pnpm v11 global installs whose package path resolves through the pnpm store (#4647). - Fixed Windows pnpm self-updates to resolve pnpm command shims and run through pnpm instead of requiring manual updates (#4157).
- Fixed Windows npm-family command execution to use cross-spawn instead of parsing
.cmdshim internals (#4665).
v0.75.1
Fixed
- Fixed config selectors to scale their visible row count to terminal height (#4243 by @samjonester).
- Fixed Anthropic-compatible API-key requests to ignore unrelated
ANTHROPIC_AUTH_TOKENenvironment values, avoiding invalid bearer credentials for providers such as Xiaomi MiMo inherited from@earendil-works/pi-ai(#4342). - Fixed Amazon Bedrock message conversion to skip unknown content blocks instead of failing the stream, inherited from
@earendil-works/pi-ai(#4223). - Fixed Azure OpenAI Responses and OpenAI Responses error formatting to prefix HTTP status codes onto
errorMessage, so transient 5xx and 429 errors are correctly matched by the agent-level auto-retry classifier inherited from@earendil-works/pi-ai(#4232). - Fixed OpenCode Go Kimi reasoning replay by normalizing streamed
reasoningfields back toreasoning_contentfor OpenCode Go only, inherited from@earendil-works/pi-ai(#4251). - Fixed Xiaomi MiMo model metadata to use the OpenAI-compatible endpoints and
openai-completionsAPI, restoring multi-turn thinking/tool-call sessions inherited from@earendil-works/pi-ai(#4505). - Fixed JSON parse failures for compressed fetch responses under Node 26.0 by installing undici fetch globals alongside pi's global dispatcher (#4650, #4652, #4653).
- Fixed npm-family package commands on Windows to avoid shell argument splitting when install prefixes contain spaces (#4623).
Removed
- Removed non-working OpenAI Codex fast model variants inherited from
@earendil-works/pi-ai.
v0.75.0
Breaking Changes
- Raised the minimum supported Node.js version to 22.19.0.
Fixed
- Fixed compaction summary calls to use custom agent stream functions, preserving proxy-backed LLM routing (#4484).
- Fixed system prompt and context file boundaries to use explicit XML tags instead of Markdown headings, reducing inconsistent boundary ingestion by models (#4541 by @herrnel).
- Fixed OpenAI Codex generated model metadata to use the current upstream model list inherited from
@earendil-works/pi-ai(#4603 by @mattiacerutti). - Fixed GitHub Copilot GPT model thinking metadata inherited from
@earendil-works/pi-aito map unsupported minimal thinking to low (#4622 by @mattiacerutti). - Fixed user-scoped npm pi packages to install under
~/.pi/agent/npm/instead of npm's global package root, avoiding permission errors with system-managed Node installs (#4587). - Fixed Mistral requests failing after the global fetch proxy/timeout workaround by removing the custom fetch override and using undici 8 dispatcher support instead (#4619).
- Fixed default output token requests for models whose advertised output limit is effectively their full context window, avoiding impossible provider requests inherited from
@earendil-works/pi-ai(#4614).
v0.74.1
New Features
- Image generation support - Added image generation APIs, generated image model metadata, and built-in OpenRouter image generation support inherited from
@earendil-works/pi-ai. - Together AI provider - Added Together AI as a built-in provider with
/loginAPI-key auth, default model resolution, and setup docs. See README.md#providers--models and docs/providers.md. - Windows ARM64 standalone binaries - Added standalone release artifacts for Windows ARM64.
- Improved terminal and markdown rendering - Added markdown list indentation, task-list checkbox rendering, large markdown robustness, and inline image placement fixes inherited from
@earendil-works/pi-tui.
Added
- Added image generation support from
@earendil-works/pi-ai, including image generation APIs, image model metadata, and built-in OpenRouter image generation support (#3887 by @cristinaponcela). - Added Together AI to built-in provider setup,
/loginAPI-key auth, and default model resolution (#3624 by @Nutlope). - Added Windows ARM64 standalone binary release artifacts (#4458 by @brianmichel).
Fixed
- Fixed Node 26 OpenAI-compatible streams timing out after five idle minutes by routing global fetch through pi's undici dispatcher (#4519).
- Fixed pnpm global package installs by resolving the global package root from pnpm's layout.
- Fixed macOS clipboard access errors under sandboxed pasteboard denial so they do not abort the process (#4492).
- Fixed the scoped model startup hint to show the configured model-cycle keybinding (#4508).
- Fixed resource path display to disambiguate package/resource names that collide across package locations.
- Fixed
fdauto-download on macOS x86_64 by pinning the last release that ships an Intel macOS binary (#4559). - Fixed skill diagnostics to stop warning when a skill name differs from its parent directory (#4534).
- Fixed prompt template argument parsing to split unquoted multiline input on newlines (#4553).
- Fixed
--resumesession listing to cap in-flight session metadata loads and avoid OOM on large session histories (#4583). - Fixed interactive error messages to render with trailing spacing so reload errors do not run into resource listings (#4510).
- Fixed
.agentspackage provenance metadata to survive package-manager scans. - Fixed nested code fences in the Termux setup documentation so the example AGENTS.md renders correctly (#4503).
- Fixed tool output expansion while extension confirmation dialogs are focused (#4429).
- Fixed auto-retry for Anthropic streams that end before
message_stop(#4433). - Fixed compaction summary calls to clamp requested output tokens to model limits.
- Fixed uncaught interactive-mode exceptions to restore the terminal before exiting (#4426 by @ofa1).
- Fixed ANSI stripping to match
strip-ansibehavior after dependency removal. - Fixed UUIDv7 sequence generation shared by session IDs after dependency removal.
- Fixed OpenRouter cached-token usage accounting, Fireworks caching compatibility, and OpenAI Codex WebSocket proxy handling inherited from
@earendil-works/pi-ai. - Fixed markdown list wrapping, task-list checkboxes, large markdown rendering, WezTerm Kitty keyboard escape handling, and short-viewport inline image placement inherited from
@earendil-works/pi-tui. - Fixed theme sharing across package scopes so extensions do not crash with
Theme not initialized(#4333). - Fixed keybinding hints to show Option instead of Alt on macOS (#4289).
- Fixed the interactive update notification to render the changelog as an OSC 8 hyperlink when the terminal supports hyperlinks (#4280).
v0.74.0
Changed
- Updated repository links and package references for the move to
earendil-works/pi-monoand@earendil-works/*package scopes.
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.