Skip to content

Releases: nicobailon/pi-interactive-shell

v0.13.0

23 Apr 19:26

Choose a tag to compare

Changed

  • Bundled runtime skills now live under skills/, with only the canonical pi-interactive-shell skill auto-registered. The Codex workflow skills remain packaged under examples/skills/ as opt-in copies alongside the example prompt templates.
  • Codex docs now include gpt-image-2 guidance across the optional codex-cli example skill plus the shared README and interactive-shell skill, covering natural-language prompting, $imagegen, and -i reference-image workflows.
  • Replaced the legacy @sinclair/typebox runtime dependency with typebox.
  • Upgraded zigpty from ^0.0.6 to ^0.1.6 to pick up newer PTY prebuilds, including the Linux x64 path affected by the reported SIGILL crash.
  • Added first-class Cursor spawn support (spawn.agent: "cursor" and /spawn cursor) mapped to the Cursor CLI agent executable by default, with default args set to --model composer-2-fast, fresh/worktree support, and Pi-only fork preserved.
  • Added an optional examples/skills/cursor-cli reference skill and updated spawn docs/tool help/tests so Cursor is treated as a peer to Pi/Codex/Claude in structured spawn flows.
  • Updated the optional codex-cli example skill to prefer gpt-5.5 for Codex CLI work.

Fixed

  • Migrated the interactive-shell tool schema from @sinclair/typebox to typebox 1.x so packaged installs follow Pi's current extension runtime contract.

Removed

  • Removed the legacy npm bin installer (scripts/install.js) and its package metadata. pi install npm:pi-interactive-shell is now the only supported installation path.

v0.12.0

12 Apr 03:57

Choose a tag to compare

[0.12.0] - 2026-04-12

Added

  • Inline threshold trigger support for regex monitors via threshold: { captureGroup, op, value } with lt, lte, gt, and gte operators.
  • First-class file-watch monitor strategy with monitor.fileWatch config (path, recursive, events) and compact event lines (EVENT path).
  • Monitor lifecycle notifications (interactive-shell-monitor-lifecycle) with explicit terminal reasons: stream-ended, script-failed, stopped, and timed-out.
  • New monitor query fields: monitorStatus, monitorSinceEventId, and monitorTriggerId.

Changed

  • Monitor mode now allows generated internal commands for file-watch, so users can start file watchers without providing a shell command.
  • Monitor validation is now stricter for strategy-specific config (fileWatch and poll usage) and threshold trigger requirements.
  • Monitor coordinator now tracks per-session monitor state (status, strategy, trigger ids, event count, last event metadata, terminal reason).
  • Background session UI/listing now renders monitor sessions with monitor-specific context (strategy/event count) instead of plain generic running/exited labels.

v0.11.1

12 Apr 00:52

Choose a tag to compare

Changed

  • Monitor event callback now guards against emitting after the monitor is disposed, preventing stale queued notifications from a dismissed session.
  • Poll-diff strategy now wraps the command in a recurring loop and diffs per-interval samples instead of accumulating full PTY output.
  • Monitor event history cleanup retries until referenced monitor/session/active entries are gone, preventing history leaks from one-shot timers firing too early.

Fixed

  • Fixed await on already-resolved detector command promise (removed unnecessary await on non-async return).

v0.11.0

11 Apr 20:35

Choose a tag to compare

Added

  • New mode: "monitor" for interactive_shell to run headless background commands and wake the agent only when output lines match monitorFilter.
  • New monitorFilter tool parameter supporting plain-text substring matching and /regex/flags matching.
  • Monitor event notifications now wake the agent with triggerTurn and include sessionId, matched text, and the matched line.
  • Regression coverage for monitor mode startup validation and ANSI-stripped line matching.
  • Regression coverage for suppressing repeated wakeups when the exact same cleaned matching line is emitted more than once in a single monitor session.

Changed

  • README, tool help, and the bundled examples/skills/interactive-shell/SKILL.md now document monitor mode usage, event-driven behavior, and monitor session lifecycle with existing background-session APIs.
  • Monitor mode now suppresses repeated wakeups for the exact same cleaned matching line within a single monitor session, while still waking on distinct matching lines.

Fixed

  • Slash-prefixed plain-text filters like /tmp/log are now treated as literal text instead of being misparsed as regex literals.
  • Invalid monitor regex errors now preserve the underlying parser message for easier debugging.

v0.10.8

09 Apr 06:55

Choose a tag to compare

Added

  • submit tool parameter for interactive_shell session input so the agent can type text and press Enter in one call, avoiding the common failure mode where commands are left sitting in editor-based TUIs like pi.
  • Regression tests covering submit: true for plain text input and bracketed paste input.

Changed

  • PTY backend switched from node-pty to zigpty in pty-session.ts, keeping the existing PtyTerminalSession behavior and higher-level interactive_shell API unchanged.
  • Input docs now explicitly state that raw input only types text and does not submit it.
  • README, SKILL.md, and tool help now prefer submit: true or inputKeys: ["enter"] over relying on \n for command submission.
  • The registered interactive_shell prompt snippet now nudges agents to use submit=true when sending slash commands or prompts to an existing session.
  • Structured input now emits bracketed paste content before trailing key presses, so combinations like paste-plus-Enter submit in the expected order.

Removed

  • Removed the node-pty macOS spawn-helper permission workaround from runtime and install scripts (spawn-helper.ts, scripts/fix-spawn-helper.cjs, and the postinstall hook).

v0.10.7

04 Apr 18:54

Choose a tag to compare

[0.10.7] - 2026-04-04

Added

  • Prompt-bearing monitored spawn for /spawn, so users can launch delegated hands-free or dispatch sessions like /spawn claude "review the diffs" --dispatch without dropping down to raw tool calls.
  • Native startup prompt support on structured interactive_shell spawn params via spawn.prompt for Pi, Codex, and Claude.

Changed

  • /spawn now parses quoted positional prompt text plus --hands-free or --dispatch, while plain /spawn remains an interactive overlay launch.
  • README and tool docs now spell out that /spawn and structured spawn share the same resolver semantics, and that Ctrl+G only applies after taking over a genuinely monitored session.
  • README now includes a dedicated prompt-bearing /spawn subsection so the interactive vs monitored split is easier to find.

v0.10.6

04 Apr 18:01

Choose a tag to compare

Added

  • Multi-agent spawn support for pi, Codex CLI, and Claude Code. /spawn can now launch the configured default agent, accept explicit agent overrides like /spawn codex, and support --worktree for spawning into a separate git worktree.
  • First-class spawn params on the interactive_shell tool so the agent can use the same spawn abstraction directly instead of building raw command strings by hand.
  • Regression coverage for dispatch background recovery when a backgrounded session cannot be looked up after overlay teardown.

Changed

  • Spawn config now lives under a nested spawn object with defaultAgent, shortcut, commands, defaultArgs, worktree, and worktreeBaseDir.
  • The spawn shortcut now launches the configured default spawn agent instead of always launching Pi.
  • Pi-only fork validation is shared between /spawn and the interactive_shell tool, so fork now fails fast with a clear error for Codex and Claude.
  • README and tool schema examples now document structured spawn usage, multi-agent /spawn commands, and worktree settings.

Fixed

  • Pi fork now validates the persisted source session before creating a worktree, so failed fork attempts no longer leave stray worktrees behind.
  • Dispatch background recovery now releases the source session and disposes stale monitor state if the expected background session entry is missing after handoff.
  • Generated worktree paths now include enough uniqueness to avoid collisions during rapid repeated spawns.

v0.10.5

04 Apr 04:49

Choose a tag to compare

Added

  • spawnShortcut config setting for the fresh-session overlay shortcut. Defaults to alt+shift+p and is pinned at startup like focusShortcut, so changes apply on reload or restart.

Changed

  • Fresh-session shortcut registration now reads from config at startup instead of a hardcoded constant, so custom spawnShortcut values are applied consistently.
  • Docs and config parity tests now cover spawnShortcut defaults and README alignment.

Fixed

  • Overlay row/header rendering now clamps metadata and row content at narrow widths, preventing visual overflow when focus badge + PID metadata are wider than the available space.

v0.10.4

04 Apr 04:16

Choose a tag to compare

Fixed

  • Focus shortcut handling now uses a terminal input listener while the overlay is open, so the configured focusShortcut toggles focus/unfocus reliably even when editor-level shortcuts would not fire. The default shortcut is now alt+shift+f instead of `alt+`` for better terminal compatibility on macOS and to avoid Pi keybinding conflicts.
  • Overlay shortcut interception now ignores raw key release and key repeat events, which prevents the focus toggle from firing twice on Kitty-enabled terminals and cancelling itself out.
  • Overlay focus state is now more obvious visually: the shell shows a persistent SHELL FOCUSED or EDITOR FOCUSED badge and switches to a stronger border treatment when focused.
  • alt+/ side chat is blocked while pi-interactive-shell is open and shows a warning instead of opening on top of the shell overlay.

v0.10.3

04 Apr 02:13

Choose a tag to compare

[0.10.3] - 2026-04-04

Changed

  • Added a promptSnippet for interactive_shell so Pi 0.59+ includes the tool in the default prompt tool list and keeps delegation guidance explicit (dispatch preferred by default).