Changelog
Release notes and changes from the Pi changelog.
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-skillsorskills.enabled: falsein settings. (#169)Version flag: Added
--version/-vflag to display the current version and exit. (#170)
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.jsonviaretry.enabled,retry.maxRetries,retry.baseDelayMs. RPC mode emitsauto_retry_startandauto_retry_endevents. (#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)
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/*.tsand.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.
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 newcontinue()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
isCompactingproperty on AgentSession: Check if auto-compaction is currently running.Session compaction indicator: When resuming a compacted session, displays "Session compacted N times" status message.
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. Seedocs/rpc.mdfor the new protocol documentation andtest/rpc-example.tsfor a working example. IncludesRpcClientTypeScript 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.
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/). ExtractedAgentSessionclass as central session management abstraction. Splitmain.tsandtui-renderer.tsinto focused modules. SeeDEVELOPMENT.mdfor the new code map. (#153)
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
thinkingXhighandbashModecolor 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-completionsAPI can now specify acompatobject 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
xhighthinking level for OpenAI codex-max models. Cycle through thinking levels with Shift+Tab;xhighappears only when using a codex-max model. (#143)Collapse changelog setting: Add
"collapseChangelog": trueto~/.pi/agent/settings.jsonto show a condensed "Updated to vX.Y.Z" message instead of the full changelog after updates. Use/changelogto 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)
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)
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
shellPathin 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"}.
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.
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.2Minstead of10184k). Context display shortened from61.3% of 200kto61.3%/200k.
Added
- Fuzzy search models and sessions: Implemented a simple fuzzy search for models and sessions (e.g.,
codexmaxnow findsgpt-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)
/resumeCommand: Switch to a different session mid-conversation. Opens an interactive selector showing all available sessions. Equivalent to the--resumeCLI flag but can be used without restarting the agent. (#117 by @hewliyang)
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
authHeaderoption in models.json: Custom providers can set"authHeader": trueto automatically addAuthorization: Bearer <apiKey>header. Useful for providers that require explicit auth headers. (#81)--append-system-promptFlag: Append additional text or file contents to the system prompt. Supports both inline text and file paths. Complements--system-promptfor layering custom instructions without replacing the base system prompt. (#114 by @markusylisiurunen)- Thinking Block Toggle: Added
Ctrl+Tshortcut 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)