Changelog

Release notes, project updates, and announcements from the Pi team.

Release notes

Pi 0.22.5

New version of pi. Download from npm or view release on GitHub.

Fixed

  • Fixed --session flag not saving sessions in print mode (-p). The session manager was never receiving events because no subscriber was attached.

Read more

Release notes

Pi 0.22.4

New version of pi. Download from npm or view release on GitHub.

Added

  • --list-models [search] CLI flag to list available models with optional fuzzy search. Shows provider, model ID, context window, max output, thinking support, and image support. Only lists models with configured API keys. (#203)

Read more

Release notes

Pi 0.22.3

New version of pi. Download from npm or view release on GitHub.

Added

  • Streaming bash output: Bash tool now streams output in real-time during execution. The TUI displays live progress with the last 5 lines visible (expandable with ctrl+o). (#44)

Changed

  • Tool output display: When collapsed, tool output now shows the last N lines instead of the first N lines, making streaming output more useful.

  • Updated @mariozechner/pi-ai with X-Initiator header support for GitHub Copilot, ensuring agent calls are not deducted from quota. (#200 by @kim0)

Read more

Release notes

Pi 0.22.2

New version of pi. Download from npm or view release on GitHub.

Changed

  • Updated @mariozechner/pi-ai with interleaved thinking enabled by default for Anthropic Claude 4 models.

Read more

Release notes

Pi 0.22.1

New version of pi. Download from npm or view release on GitHub.

Changes

Dedicated to Peter's shoulder (@steipete)

Changed

  • Updated @mariozechner/pi-ai with interleaved thinking support for Anthropic models.

Read more

Release notes

Pi 0.22.0

New version of pi. Download from npm or view release on GitHub.

Added

  • GitHub Copilot support: Use GitHub Copilot models via OAuth login (/login -> "GitHub Copilot"). Supports both github.com and GitHub Enterprise. Models are sourced from models.dev and include Claude, GPT, Gemini, Grok, and more. All models are automatically enabled after login. (#191 by @cau1k)

Read more

Release notes

Pi 0.21.0

New version of pi. Download from npm or view release on GitHub.

Added

  • Inline image rendering: Terminals supporting Kitty graphics protocol (Kitty, Ghostty, WezTerm) or iTerm2 inline images now render images inline in tool output. Aspect ratio is preserved by querying terminal cell dimensions on startup. Toggle with /show-images command or terminal.showImages setting. Falls back to text placeholder on unsupported terminals or when disabled. (#177 by @nicobailon)

  • Gemini 3 Pro thinking levels: Thinking level selector now works with Gemini 3 Pro models. Minimal/low map to Google's LOW, medium/high map to Google's HIGH. (#176 by @markusylisiurunen)

Read more

Release notes

Pi 0.20.1

New version of pi. Download from npm or view release on GitHub.

Added

  • Exported skills API: loadSkillsFromDir, formatSkillsForPrompt, and related types are now exported for use by other packages (e.g., mom).

Read more

Release notes

Pi 0.20.0

New version of pi. Download from npm or view release on GitHub.

Breaking Changes

  • Pi skills now use SKILL.md convention: Pi skills must now be named SKILL.md inside a directory, matching Codex CLI format. Previously any *.md file was treated as a skill. Migrate by renaming ~/.pi/agent/skills/foo.md to ~/.pi/agent/skills/foo/SKILL.md.

Added

  • Display loaded skills on startup in interactive mode

Read more

Release notes

Pi 0.19.1

New version of pi. Download from npm or view release on GitHub.

Fixed

  • Documentation: Added skills system documentation to README (setup, usage, CLI flags, settings)

Read more

Release notes

Pi 0.19.0

New version of pi. Download from npm or view release on GitHub.

Added

  • Skills system: Auto-discover and load instruction files on-demand. Supports Claude Code (~/.claude/skills/*/SKILL.md), Codex CLI (~/.codex/skills/), and Pi-native formats (~/.pi/agent/skills/, .pi/skills/). Skills are listed in system prompt with descriptions, agent loads them via read tool when needed. Supports {baseDir} placeholder. Disable with --no-skills or skills.enabled: false in settings. (#169)

  • Version flag: Added --version / -v flag to display the current version and exit. (#170)

Read more

Release notes

Pi 0.18.2

New version of pi. Download from npm or view release on GitHub.

Added

  • Auto-retry on transient errors: Automatically retries requests when providers return overloaded, rate limit, or server errors (429, 500, 502, 503, 504). Uses exponential backoff (2s, 4s, 8s). Shows retry status in TUI with option to cancel via Escape. Configurable in settings.json via retry.enabled, retry.maxRetries, retry.baseDelayMs. RPC mode emits auto_retry_start and auto_retry_end events. (#157)

  • HTML export line numbers: Read tool calls in HTML exports now display line number ranges (e.g., file.txt:10-20) when offset/limit parameters are used, matching the TUI display format. Line numbers appear in yellow color for better visibility. (#166)

Read more

Release notes

Pi 0.18.1

New version of pi. Download from npm or view release on GitHub.

Added

  • Mistral provider: Added support for Mistral AI models. Set MISTRAL_API_KEY environment variable to use.

Read more

Release notes

Pi 0.18.0

New version of pi. Download from npm or view release on GitHub.

Added

  • Hooks system: TypeScript modules that extend agent behavior by subscribing to lifecycle events. Hooks can intercept tool calls, prompt for confirmation, modify results, and inject messages from external sources. Auto-discovered from ~/.pi/agent/hooks/*.ts and .pi/hooks/*.ts. Thanks to @nicobailon for the collaboration on the design and implementation. (#145, supersedes #158)

  • pi.send() API: Hooks can inject messages into the agent session from external sources (file watchers, webhooks, CI systems). If streaming, messages are queued; otherwise a new agent loop starts immediately.

  • --hook <path> CLI flag: Load hook files directly for testing without modifying settings.

  • Hook events: session_start, session_switch, agent_start, agent_end, turn_start, turn_end, tool_call (can block), tool_result (can modify), branch.

  • Hook UI primitives: ctx.ui.select(), ctx.ui.confirm(), ctx.ui.input(), ctx.ui.notify() for interactive prompts from hooks.

  • Hooks documentation: Full API reference at docs/hooks.md, shipped with npm package.

Read more

Release notes

Pi 0.17.0

New version of pi. Download from npm or view release on GitHub.

Changed

  • Simplified compaction flow: Removed proactive compaction (aborting mid-turn when threshold approached). Compaction now triggers in two cases only: (1) overflow error from LLM, which compacts and auto-retries, or (2) threshold crossed after a successful turn, which compacts without retry.

  • Compaction retry uses Agent.continue(): Auto-retry after overflow now uses the new continue() API instead of re-sending the user message, preserving exact context state.

  • Merged turn prefix summary: When a turn is split during compaction, the turn prefix summary is now merged into the main history summary instead of being stored separately.

Added

  • isCompacting property on AgentSession: Check if auto-compaction is currently running.

  • Session compaction indicator: When resuming a compacted session, displays "Session compacted N times" status message.

Read more

Release notes

Pi 0.16.0

New version of pi. Download from npm or view release on GitHub.

Breaking Changes

  • New RPC protocol: The RPC mode (--mode rpc) has been completely redesigned with a new JSON protocol. The old protocol is no longer supported. See docs/rpc.md for the new protocol documentation and test/rpc-example.ts for a working example. Includes RpcClient TypeScript class for easy integration. (#91)

Changed

  • README restructured: Reorganized documentation from 30+ flat sections into 10 logical groups. Converted verbose subsections to scannable tables. Consolidated philosophy sections. Reduced size by ~60% while preserving all information.

Read more

Release notes

Pi 0.15.0

New version of pi. Download from npm or view release on GitHub.

Changed

  • Major code refactoring: Restructured codebase for better maintainability and separation of concerns. Moved files into organized directories (core/, modes/, utils/, cli/). Extracted AgentSession class as central session management abstraction. Split main.ts and tui-renderer.ts into focused modules. See DEVELOPMENT.md for the new code map. (#153)

Read more

Release notes

Pi 0.14.2

New version of pi. Download from npm or view release on GitHub.

Added

  • /debug command now includes agent messages as JSONL in the output

Read more

Release notes

Pi 0.14.1

New version of pi. Download from npm or view release on GitHub.

Fixed

  • Fix build errors with tsgo 7.0.0-dev.20251208.1 by properly importing ReasoningEffort type

Read more

Release notes

Pi 0.14.0

New version of pi. Download from npm or view release on GitHub.

Breaking Changes

  • Custom themes require new color tokens: Themes must now include thinkingXhigh and bashMode color tokens. The theme loader provides helpful error messages listing missing tokens. See built-in themes (dark.json, light.json) for reference values.

Added

  • OpenAI compatibility overrides in models.json: Custom models using openai-completions API can now specify a compat object to override provider quirks (supportsStore, supportsDeveloperRole, supportsReasoningEffort, maxTokensField). Useful for LiteLLM, custom proxies, and other non-standard endpoints. (#133, thanks @fink-andreas for the initial idea and PR)

  • xhigh thinking level: Added xhigh thinking level for OpenAI codex-max models. Cycle through thinking levels with Shift+Tab; xhigh appears only when using a codex-max model. (#143)

  • Collapse changelog setting: Add "collapseChangelog": true to ~/.pi/agent/settings.json to show a condensed "Updated to vX.Y.Z" message instead of the full changelog after updates. Use /changelog to view the full changelog. (#148)

  • Bash mode: Execute shell commands directly from the editor by prefixing with ! (e.g., !ls -la). Output streams in real-time, is added to the LLM context, and persists in session history. Supports multiline commands, cancellation (Escape), truncation for large outputs, and preview/expand toggle (Ctrl+O). Also available in RPC mode via {"type":"bash","command":"..."}. (#112, original implementation by @markusylisiurunen)

Read more