Skip to content

Releases: earendil-works/pi

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.

v0.72.1

02 May 13:00

Choose a tag to compare

Release v0.72.1

v0.72.0

01 May 23:57

Choose a tag to compare

New Features

Breaking Changes

  • Replaced compat.reasoningEffortMap in models.json and pi.registerProvider() model definitions with model-level thinkingLevelMap (#3208). Migration: move old mappings from compat.reasoningEffortMap to thinkingLevelMap. Use string values for provider-specific thinking values and null for unsupported pi levels that should be hidden and skipped by cycling. See docs/models.md#thinking-level-map and docs/custom-provider.md.

Added

  • Added Xiaomi MiMo Token Plan provider support with XIAOMI_API_KEY, default model resolution, /login display support, and provider documentation (#4005 by @Phoen1xCode).
  • Added model-level thinkingLevelMap support in models.json and pi.registerProvider(), allowing models to expose only the thinking levels they actually support (#3208).
  • Added shouldStopAfterTurn agent loop callback for post-turn stop control, inherited from @mariozechner/pi-agent-core. See packages/agent/README.md.

Fixed

  • Fixed pi.registerProvider() to honor per-model baseUrl overrides (#4063).
  • Fixed self-update detection so pi correctly identifies when a newer version is available and applies updates (#3942, #3980, #3922).

v0.71.1

01 May 11:14

Choose a tag to compare

Added

  • Added websocket-cached to 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

30 Apr 23:05

Choose a tag to compare

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

Added

  • Added Cloudflare AI Gateway as a built-in provider with CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID/CLOUDFLARE_GATEWAY_ID setup, default model resolution, /login display support, and provider documentation (#3856 by @mchenco).
  • Added Moonshot AI as a built-in provider with MOONSHOT_API_KEY setup, default model resolution, and /login display 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_DIR as an environment equivalent to --session-dir (#4027).
  • Added message_end extension result support for replacing finalized messages, enabling extensions to override assistant usage cost (#3982).
  • Added top-level name support to pi.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_select extension 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 edit tool 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 grep and find tool 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_modules discovery when npmCommand is configured to use Bun (#3998 by @thirtythreeforty).
  • Fixed edit and edit-preview access failures to report filesystem errors correctly (#3955 by @rwachtler).
  • Fixed ProcessTerminal sizing to use COLUMNS and LINES before falling back to 80x24 (#4004).
  • Updated @anthropic-ai/sdk to clear GHSA-p7fg-763f-g4gf audit findings (#3992).
  • Updated @mariozechner/clipboard to an attested release so package managers with trust policies do not reject installs (#3946).
  • Fixed project context discovery to load AGENTS.MD files in addition to AGENTS.md (#3949).
  • Fixed /handoff to use compacted session context instead of pre-compaction raw messages (#3945).
  • Fixed DeepSeek V4 Flash xhigh thinking support so requests map to DeepSeek's max reasoning effort (#3944).
  • Fixed Anthropic streams that end before message_stop to 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-es transitive dependency (#3901).
  • Fixed DeepSeek prompt cache hits to be tracked from OpenAI-compatible usage responses (#3880).

Removed

  • Removed the discontinued Qwen CLI OAuth custom provider extension example (#3832 by @4h9fbZ).
  • Removed Google Gemini CLI and Google Antigravity built-in login, default model, documentation, and example extension support.

v0.70.6

28 Apr 17:36

Choose a tag to compare

New Features

Added

  • Added Cloudflare Workers AI as a built-in provider with CLOUDFLARE_API_KEY/CLOUDFLARE_ACCOUNT_ID setup, default model resolution, /login support, 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_modules relative 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 fdfind when fd is unavailable.
  • Fixed pi update to 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 --self detection 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

27 Apr 19:53

Choose a tag to compare

Fixed

  • Fixed HTML export preserving ANSI-renderer trailing padding as extra blank wrapped lines.

v0.70.4

27 Apr 19:47

Choose a tag to compare

Fixed

  • Fixed packaged pi startup failing because the session selector imported a source-only utility path.