News
Release notes

Pi 0.77.0

New Features

  • Startup session naming - --name / -n sets the session display name at startup for interactive, print, JSON, and RPC modes.
  • Claude Opus 4.8 support - Adds Anthropic Claude Opus 4.8 metadata and updates Opus adaptive-thinking coverage.
  • Selective tool disablement - --exclude-tools / -xt disables specific built-in, extension, or custom tools while leaving the rest available. See Tool Options.
  • Headless Codex subscription login - /login can use device-code auth for ChatGPT Plus/Pro Codex subscriptions. See Subscriptions and OpenAI Codex.
  • Streaming-aware extension input - extensions can distinguish idle prompts, mid-stream steers, and queued follow-ups with InputEvent.streamingBehavior. See Input Events.

Added

  • Added --name / -n to set the session display name at startup (#5153).
  • Added --exclude-tools / -xt to disable specific built-in, extension, or custom tools while leaving the rest available (#5109).
  • Added OpenAI Codex subscription device-code login as a selectable headless alternative while keeping browser login as the default (#4911 by @vegarsti).
  • Added streamingBehavior to extension input events so extensions can distinguish idle prompts from mid-stream steers and queued follow-ups (#5107 by @DanielThomas).
  • Added Claude Opus 4.8 model metadata for Anthropic and updated Opus adaptive-thinking coverage to use it.

Fixed

  • Fixed startup timing output so readPipedStdin no longer includes createAgentSessionRuntime work (#4829).
  • Fixed OpenRouter DeepSeek V4 xhigh reasoning metadata to preserve OpenRouter's native effort instead of sending DeepSeek's max effort (#4801).
  • Fixed custom session directories so current-folder resume/continue lookups stay scoped to the active cwd while all-session listings cover the custom directory.
  • Fixed SIGTERM/SIGHUP exits to run extension session_shutdown cleanup and restore the terminal: signal-triggered shutdown now emits session_shutdown before any terminal writes, and SIGHUP no longer hard-exits, so extension resources (e.g. sockets) are released even when the terminal is gone (#5080).
  • Fixed keyboard protocol negotiation to ignore mismatched or delayed terminal responses, avoiding false Kitty keyboard protocol detection (#5091 by @mitsuhiko).
  • Fixed Windows startup crashes under MSYS2 ucrt64 Node.js by updating the native clipboard addon to napi-rs 3.x (#5028).
  • Fixed API key and header config resolution to treat plain strings as literals, support $ENV_VAR / ${ENV_VAR} interpolation and $! bang escaping, and require explicit env syntax for config files, avoiding Windows case-insensitive env matches corrupting literal keys (#5095).
  • Fixed session disposal to abort in-flight agent, compaction, branch summary, retry, and bash work (#5029 by @TerminallyChilI).
  • Fixed pi.getAllTools() to expose each tool's promptGuidelines for extensions that need per-tool guideline attribution (#4879).
  • Fixed OpenAI Codex Responses replay after switching from Anthropic extended-thinking sessions by generating unique fallback message item IDs for converted thinking/text blocks (#5148).
  • Fixed Anthropic-compatible replay for providers that return empty thinking signatures by adding an opt-in allowEmptySignature compatibility flag (#4464).
  • Fixed OpenAI and OpenRouter GPT-5.5 Pro thinking level metadata to expose only supported medium, high, and xhigh efforts.
  • Fixed OpenCode Go Kimi K2.6 thinking-off requests to send thinking: "none" (#5078).
  • Fixed Xiaomi Token Plan model metadata to omit unsupported mimo-v2-flash variants (#5075).
  • Fixed follow-up messages queued by agent_end extension handlers to drain before the agent becomes idle (#5115 by @DanielThomas).
  • Fixed extension input events to report streamingBehavior only for prompts actually queued during streaming (#5107 by @DanielThomas).
  • Fixed system prompt tool-selection guidance to avoid preferring unavailable file exploration tools (#5132).
  • Fixed fenced diff code blocks and other highlight.js scopes to keep theme-aware syntax colors after the cli-highlight replacement (#5092).