New Features
- Claude Opus 4.8 support - Adds Anthropic Claude Opus 4.8 metadata and updates Opus adaptive-thinking coverage.
- Selective tool disablement -
--exclude-tools/-xtdisables specific built-in, extension, or custom tools while leaving the rest available. See Tool Options. - Headless Codex subscription login -
/logincan 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
--exclude-tools/-xtto 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
streamingBehaviorto 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
readPipedStdinno longer includescreateAgentSessionRuntimework (#4829). - Fixed OpenRouter DeepSeek V4
xhighreasoning metadata to preserve OpenRouter's native effort instead of sending DeepSeek'smaxeffort (#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_shutdowncleanup and restore the terminal: signal-triggered shutdown now emitssession_shutdownbefore 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'spromptGuidelinesfor 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
allowEmptySignaturecompatibility 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-flashvariants (#5075). - Fixed follow-up messages queued by
agent_endextension handlers to drain before the agent becomes idle (#5115 by @DanielThomas). - Fixed extension input events to report
streamingBehavioronly 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
diffcode blocks and other highlight.js scopes to keep theme-aware syntax colors after thecli-highlightreplacement (#5092).