pi-ghostty
v1.0.0
Published
Ghostty terminal integration for Pi — dynamic title bar, progress indicators, and error states
Maintainers
Readme
pi-ghostty
A Pi extension that brings Ghostty's native terminal features to life while you work. See at a glance what Pi is doing — which model is active, what tool is running, and whether things succeeded or failed.
Features
Dynamic window title — Shows your project directory and current model at a glance. Session name is included when set:
π my-project · claude-sonnet-4
π my-project · my-session · claude-sonnet-4Animated spinner — A braille spinner animates in the title bar while the agent is working, so you know Pi is thinking even when the tab is in the background:
⠹ π my-project · claude-sonnet-4Tool tracking — When a tool executes, the title swaps the model name for the active tool so you can see exactly what Pi is doing:
⠹ π my-project · bash
⠹ π my-project · read
⠹ π my-project · editNative progress bar — Uses Ghostty's built-in OSC 9;4 progress indicator:
- 🔵 Indeterminate pulse while the agent is thinking or running tools
- 🟢 Green completion flash (100%) when the agent finishes
Requirements
Install
pi install npm:pi-ghosttyOr try it without installing:
pi -e npm:pi-ghosttyYou can also install from git:
pi install git:github.com/HazAT/pi-ghosttyHow it works
The extension hooks into Pi's lifecycle events and writes OSC escape sequences directly to /dev/tty, bypassing Pi's TUI to avoid any rendering interference.
| Pi Event | Title | Progress Bar |
|----------|-------|-------------|
| session_start | Set initial title | — |
| model_select | Update model name | — |
| agent_start | Start spinner | Indeterminate pulse |
| tool_execution_start | Show tool name | — |
| agent_end | Stop spinner | Green 100% → clear |
| session_shutdown | — | Clear |
License
MIT
