pi-tmux-spinner
Animated tmux window-name spinner for the pi coding agent
Package details
Install pi-tmux-spinner from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-tmux-spinner- Package
pi-tmux-spinner- Version
1.0.0- Published
- May 23, 2026
- Downloads
- not available
- Author
- adamschlesinger
- License
- MIT
- Types
- extension
- Size
- 12 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./extensions"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-tmux-spinner
A pi coding agent extension that animates the tmux window name while the agent is working, then restores it cleanly when done.
Demo
While pi is processing, your tmux window title cycles through a configurable animation:
· pi spinner extension
✢ pi spinner extension
✳ pi spinner extension
When the agent finishes, the window name is restored cleanly.
Install
pi install git:github.com/adamschlesinger/pi-tmux-spinner
Or from npm (if published):
pi install npm:pi-tmux-spinner
Requirements
- pi coding agent
- tmux (the extension silently skips if
$TMUX/$TMUX_PANEare not set)
Configuration
Use the /tmux-spinner command to configure at runtime. Settings persist to ~/.pi/agent/tmux-spinner.json.
/tmux-spinner Show current config
/tmux-spinner list List all styles with previews
/tmux-spinner style <name> Set animation style
/tmux-spinner speed <value> Set speed: slow | normal | fast
/tmux-spinner enable Enable the spinner
/tmux-spinner disable Disable the spinner
Styles
| Name | Preview |
|---|---|
default |
· ✢ ✳ ✶ ✻ ✽ |
braille |
⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ |
dots |
⣾ ⣽ ⣻ ⢿ ⡿ ⣟ ⣯ ⣷ |
classic |
- \ | / |
arrows |
← ↖ ↑ ↗ → ↘ ↓ ↙ |
pipe |
┤ ┘ ┴ └ ├ ┌ ┬ ┐ |
star |
✶ ✸ ✹ ✺ ✹ ✸ |
moon |
🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 |
pulse |
· • ● • |
Speeds
| Name | Interval |
|---|---|
slow |
300ms |
normal |
150ms (default) |
fast |
80ms |
How it works
The extension hooks into pi lifecycle events:
| Event | Action |
|---|---|
agent_start |
Begin cycling spinner frames in the tmux window name |
agent_end |
Stop cycling, strip prefix, restore the clean name |
session_shutdown |
Stop on Ctrl-C / reload (no zombie processes) |
Each tick re-reads the current window name before writing, so pi's own
tmux_rename_window tool calls are always respected — the spinner just
wraps whatever name is currently set.
Compatibility with pi-tmux-rename
Works alongside pi-tmux-rename. Topic renames are picked up automatically on the next spinner tick.
License
MIT