News

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

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.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

Release notes

Pi 0.13.2

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

Changed

  • Tool output truncation: All tools now enforce consistent truncation limits with actionable notices for the LLM. (#134)
    • Limits: 2000 lines OR 50KB (whichever hits first), never partial lines
    • read: Shows [Showing lines X-Y of Z. Use offset=N to continue]. If first line exceeds 50KB, suggests bash command
    • bash: Tail truncation with temp file. Shows [Showing lines X-Y of Z. Full output: /tmp/...]
    • grep: Pre-truncates match lines to 500 chars. Shows match limit and line truncation notices
    • find/ls: Shows result/entry limit notices
    • TUI displays truncation warnings in yellow at bottom of tool output (visible even when collapsed)

Read more

Release notes

Pi 0.13.1

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

Added

  • Flexible Windows shell configuration: The bash tool now supports multiple shell sources beyond Git Bash. Resolution order: (1) custom shellPath in settings.json, (2) Git Bash in standard locations, (3) any bash.exe on PATH. This enables Cygwin, MSYS2, and other bash environments. Configure with ~/.pi/agent/settings.json: {"shellPath": "C:\\cygwin64\\bin\\bash.exe"}.

Read more

Release notes

Pi 0.12.15

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

Fixed

  • Editor crash with emojis/CJK characters: Fixed crash when pasting or typing text containing wide characters (emojis like ✅, CJK characters) that caused line width to exceed terminal width. The editor now uses grapheme-aware text wrapping with proper visible width calculation.

Read more

Release notes

Pi 0.12.14

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

Added

  • Double-Escape Branch Shortcut: Press Escape twice with an empty editor to quickly open the /branch selector for conversation branching.

Read more

Release notes

Pi 0.12.13

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

Changed

  • Faster startup: Version check now runs in parallel with TUI initialization instead of blocking startup for up to 1 second. Update notifications appear in chat when the check completes.

Read more

Release notes

Pi 0.12.12

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

Changed

  • Footer display: Token counts now use M suffix for millions (e.g., 10.2M instead of 10184k). Context display shortened from 61.3% of 200k to 61.3%/200k.

Added

  • Fuzzy search models and sessions: Implemented a simple fuzzy search for models and sessions (e.g., codexmax now finds gpt-5.1-codex-max). (#122 by @markusylisiurunen)
  • Prompt History Navigation: Browse previously submitted prompts using Up/Down arrow keys when the editor is empty. Press Up to cycle through older prompts, Down to return to newer ones or clear the editor. Similar to shell history and Claude Code's prompt history feature. History is session-scoped and stores up to 100 entries. (#121 by @nicobailon)
  • /resume Command: Switch to a different session mid-conversation. Opens an interactive selector showing all available sessions. Equivalent to the --resume CLI flag but can be used without restarting the agent. (#117 by @hewliyang)

Read more

Release notes

Pi 0.12.11

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

Changed

  • Compaction UI: Simplified collapsed compaction indicator to show warning-colored text with token count instead of styled banner. Removed redundant success message after compaction. (#108)

Added

  • authHeader option in models.json: Custom providers can set "authHeader": true to automatically add Authorization: Bearer <apiKey> header. Useful for providers that require explicit auth headers. (#81)
  • --append-system-prompt Flag: Append additional text or file contents to the system prompt. Supports both inline text and file paths. Complements --system-prompt for layering custom instructions without replacing the base system prompt. (#114 by @markusylisiurunen)
  • Thinking Block Toggle: Added Ctrl+T shortcut to toggle visibility of LLM thinking blocks. When toggled off, shows a static "Thinking..." label instead of full content. Useful for reducing visual clutter during long conversations. (#113 by @markusylisiurunen)

Read more

Release notes

Pi 0.12.7

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

Added

  • Context Compaction: Long sessions can now be compacted to reduce context usage while preserving recent conversation history. (#92, docs)
    • /compact [instructions]: Manually compact context with optional custom instructions for the summary
    • /autocompact: Toggle automatic compaction when context exceeds threshold
    • Compaction summarizes older messages while keeping recent messages (default 20k tokens) verbatim
    • Auto-compaction triggers when context reaches contextWindow - reserveTokens (default 16k reserve)
    • Compacted sessions show a collapsible summary in the TUI (toggle with o key)
    • HTML exports include compaction summaries as collapsible sections
    • RPC mode supports {"type":"compact"} command and auto-compaction (emits compaction events)
  • Branch Source Tracking: Branched sessions now store branchedFrom in the session header, containing the path to the original session file. Useful for tracing session lineage.

Read more

Release notes

Pi 0.12.5

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

Added

  • Forking/Rebranding Support: All branding (app name, config directory, environment variable names) is now configurable via piConfig in package.json. Forks can change piConfig.name and piConfig.configDir to rebrand the CLI without code changes. Affects CLI banner, help text, config paths, and error messages. (#95)

Read more

Release notes

Pi 0.12.4

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

Added

  • RPC Termination Safeguard: When running as an RPC worker (stdin pipe detected), the CLI now exits immediately if the parent process terminates unexpectedly. Prevents orphaned RPC workers from persisting indefinitely and consuming system resources.

Read more

Release notes

Pi 0.12.3

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

Fixed

  • Rate limit handling: Anthropic rate limit errors now trigger automatic retry with exponential backoff (base 10s, max 5 retries). Previously these errors would abort the request immediately.
  • Usage tracking during retries: Retried requests now correctly accumulate token usage from all attempts, not just the final successful one. Fixes artificially low token counts when requests were retried.

Read more