News
Release notes, project updates, and announcements from the Pi team.
Pi 0.27.7
New version of pi. Download from npm or view release on GitHub.
Fixed
- Thinking tag leakage: Fixed Claude mimicking literal
</thinking>tags in responses. Unsigned thinking blocks (from aborted streams) are now converted to plain text without<thinking>tags. The TUI still displays them as thinking blocks. (#302 by @nicobailon)
Pi 0.27.6
New version of pi. Download from npm or view release on GitHub.
Added
Compaction hook improvements: The
before_compactsession event now includes:previousSummary: Summary from the last compaction (if any), so hooks can preserve accumulated contextmessagesToKeep: Messages that will be kept after the summary (recent turns), in addition tomessagesToSummarizeresolveApiKey: Function to resolve API keys for any model (checks settings, OAuth, env vars)- Removed
apiKeystring in favor ofresolveApiKeyfor more flexibility
SessionManager API cleanup:
- Renamed
loadSessionFromEntries()tobuildSessionContext()(builds LLM context from entries, handling compaction) - Renamed
loadEntries()togetEntries()(returns defensive copy of all session entries) - Added
buildSessionContext()method to SessionManager
- Renamed
Pi 0.27.5
New version of pi. Download from npm or view release on GitHub.
Added
- HTML export syntax highlighting: Code blocks in markdown and tool outputs (read, write) now have syntax highlighting using highlight.js with theme-aware colors matching the TUI.
- HTML export improvements: Render markdown server-side using marked (tables, headings, code blocks, etc.), honor user's chosen theme (light/dark), add image rendering for user messages, and style code blocks with TUI-like language markers. (@scutifer)
Pi 0.27.2
New version of pi. Download from npm or view release on GitHub.
Added
- Skip conversation restore on branch: Hooks can return
{ skipConversationRestore: true }frombefore_branchto create the branched session file without restoring conversation messages. Useful for checkpoint hooks that restore files separately. (#286 by @nicobarray)
Pi 0.27.0
New version of pi. Download from npm or view release on GitHub.
Breaking
- Session hooks API redesign: Merged
branchevent intosessionevent.BranchEvent,BranchEventResulttypes andpi.on("branch", ...)removed. Usepi.on("session", ...)withreason: "before_branch" | "branch"instead.AgentSession.branch()returns{ cancelled }instead of{ skipped }.AgentSession.reset()andswitchSession()now returnboolean(false if cancelled by hook). RPC commandsreset,switch_session, andbranchnow includecancelledin response data. (#278)
Added
- Session lifecycle hooks: Added
before_*variants (before_switch,before_clear,before_branch) that fire before actions and can be cancelled with{ cancel: true }. Addedshutdownreason for graceful exit handling. (#278)
Pi 0.26.1
New version of pi. Download from npm or view release on GitHub.
Fixed
- SDK tools respect cwd: Core tools (bash, read, edit, write, grep, find, ls) now properly use the
cwdoption fromcreateAgentSession(). Added tool factory functions (createBashTool,createReadTool, etc.) for SDK users who specify customcwdwith explicit tools. (#279)
Pi 0.26.0
New version of pi. Download from npm or view release on GitHub.
Added
SDK for programmatic usage: New
createAgentSession()factory with full control over model, tools, hooks, skills, session persistence, and settings. Philosophy: "omit to discover, provide to override". Includes 12 examples and comprehensive documentation. (#272)Project-specific settings: Settings now load from both
~/.pi/agent/settings.json(global) and<cwd>/.pi/settings.json(project). Project settings override global with deep merge for nested objects. Project settings are read-only (for version control). (#276)SettingsManager static factories:
SettingsManager.create(cwd?, agentDir?)for file-based settings,SettingsManager.inMemory(settings?)for testing. AddedapplyOverrides()for programmatic overrides.SessionManager static factories:
SessionManager.create(),SessionManager.open(),SessionManager.continueRecent(),SessionManager.inMemory(),SessionManager.list()for flexible session management.
Pi 0.25.4
New version of pi. Download from npm or view release on GitHub.
Fixed
- Syntax highlighting stderr spam: Fixed cli-highlight logging errors to stderr when markdown contains malformed code fences (e.g., missing newlines around closing backticks). Now validates language identifiers before highlighting and falls back silently to plain text. (#274)
Pi 0.25.3
New version of pi. Download from npm or view release on GitHub.
Added
Gemini 3 preview models: Added
gemini-3-pro-previewandgemini-3-flash-previewto the google-gemini-cli provider. (#264 by @LukeFost)External editor support: Press
Ctrl+Gto edit your message in an external editor. Uses$VISUALor$EDITORenvironment variable. On successful save, the message is replaced; on cancel, the original is kept. (#266 by @aliou)Process suspension: Press
Ctrl+Zto suspend pi and return to the shell. Resume withfgas usual. (#267 by @aliou)Configurable skills directories: Added granular control over skill sources with
enableCodexUser,enableClaudeUser,enableClaudeProject,enablePiUser,enablePiProjecttoggles, pluscustomDirectoriesandignoredSkillssettings. (#269 by @nicobailon)Skills CLI filtering: Added
--skills <patterns>flag for filtering skills with glob patterns. Also addedincludeSkillssetting and glob pattern support forignoredSkills. (#268)
Pi 0.25.1
New version of pi. Download from npm or view release on GitHub.
Fixed
Gemini image reading broken: Fixed the
readtool returning images causing flaky/broken responses with Gemini models. Images in tool results are now properly formatted per the Gemini API spec.Tab completion for absolute paths: Fixed tab completion producing
//tmpinstead of/tmp/. Also fixed symlinks to directories (like/tmp) not getting a trailing slash, which prevented continuing to tab through subdirectories.
Pi 0.25.0
New version of pi. Download from npm or view release on GitHub.
Added
Interruptible tool execution: Queuing a message while tools are executing now interrupts the current tool batch. Remaining tools are skipped with an error result, and your queued message is processed immediately. Useful for redirecting the agent mid-task. (#259 by @steipete)
Google Gemini CLI OAuth provider: Access Gemini 2.0/2.5 models for free via Google Cloud Code Assist. Login with
/loginand select "Google Gemini CLI". Uses your Google account with rate limits.Google Antigravity OAuth provider: Access Gemini 3, Claude (sonnet/opus thinking models), and GPT-OSS models for free via Google's Antigravity sandbox. Login with
/loginand select "Antigravity". Uses your Google account with rate limits.
Changed
- Model selector respects --models scope: The
/modelcommand now only shows models specified via--modelsflag when that flag is used, instead of showing all available models. This prevents accidentally selecting models from unintended providers. (#255)
Pi 0.24.2
New version of pi. Download from npm or view release on GitHub.
Fixed
- More Kitty keyboard protocol fixes: Fixed Backspace, Enter, Home, End, and Delete keys not working with Caps Lock enabled. The initial fix in 0.24.1 missed several key handlers that were still using raw byte detection. Now all key handlers use the helper functions that properly mask out lock key bits. (#243)