Skip to content

Releases: earendil-works/pi

v0.74.2

21 May 22:27

Choose a tag to compare

Fixed

  • Fixed pi update on Node 20 to explain that newer Pi releases require Node >= 22.19.0 instead of reporting a successful no-op update (#4876).
  • Changed self-update package-manager commands to pass --ignore-scripts.

v0.75.4

20 May 15:29

Choose a tag to compare

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 update runs, 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.json to 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 willRetry to agent_end session 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-tui so initialization cannot run before frames are available.
  • Fixed OpenAI-compatible default output token requests inherited from @earendil-works/pi-ai to avoid reserving impossible context windows on servers such as vLLM (#4675).
  • Fixed OpenAI prompt cache keys inherited from @earendil-works/pi-ai to 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 .cmd shims (#4793).

v0.75.3

18 May 10:01

Choose a tag to compare

Fixed

  • Fixed undici 8 HTTP/2 destroyed-session races crashing the Node CLI by preserving the previous HTTP/1.1-only fetch dispatcher behavior (#4681).

v0.75.2

18 May 09:48

Choose a tag to compare

Fixed

  • Fixed Bun-compiled release binaries failing to start when Bun's built-in undici shim lacks npm undici's install export (#4661 by @dmasiero).
  • Fixed Xiaomi MiMo generated model metadata to replay assistant tool-call messages with reasoning_content for 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 --self detection 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 .cmd shim internals (#4665).

v0.75.1

18 May 00:03

Choose a tag to compare

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_TOKEN environment 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 reasoning fields back to reasoning_content for OpenCode Go only, inherited from @earendil-works/pi-ai (#4251).
  • Fixed Xiaomi MiMo model metadata to use the OpenAI-compatible endpoints and openai-completions API, 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

17 May 19:05

Choose a tag to compare

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-ai to 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

16 May 23:37

Choose a tag to compare

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 /login API-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, /login API-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 fd auto-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 --resume session 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 .agents package 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-ansi behavior 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

07 May 17:46

Choose a tag to compare

Changed

  • Updated repository links and package references for the move to earendil-works/pi-mono and @earendil-works/* package scopes.

v0.73.1

07 May 14:47

Choose a tag to compare

New Features

  • Self-update support for the npm scope migration: pi update --self now supports the upcoming package rename from @mariozechner/pi-coding-agent to @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.json parsing: models.json now 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 --self to 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 jiti 2.7 instead of the @mariozechner/jiti fork (#4244 by @pi0).
  • Changed models.json parsing to allow comments and trailing commas (#4162 by @julien-c).

Fixed

  • Fixed pi -p treating 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 /copy reporting success on Linux without writing the clipboard on Wayland-only compositors (Hyprland, Niri, ...) by skipping the X11-only native addon on Linux and routing through wl-copy/xclip/xsel instead (#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

04 May 18:34

Choose a tag to compare

New Features

  • Xiaomi MiMo API billing and regional Token Plan providers - xiaomi now uses API billing, with separate xiaomi-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 read output for Pi docs, context files, and skills is collapsed by default and shows selected line ranges.

Breaking Changes

  • Switched the built-in xiaomi provider from Token Plan AMS to Xiaomi's API billing endpoint, and renamed its /login display from "Xiaomi MiMo Token Plan" to "Xiaomi MiMo". XIAOMI_API_KEY now refers to the API billing key from platform.xiaomimimo.com. Users on Token Plan should switch to the appropriate xiaomi-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 to mimo-v2.5-pro (#4112 by @Phoen1xCode).

Changed

  • Changed read tool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, and SKILL.md contents 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 xhigh thinking 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 --print and JSON mode processes alive after the response by closing cached WebSocket sessions during session shutdown (#4103).
  • Fixed compact read tool 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.