@rotem-bar/pi-name-tmux
A pi extension to automatically name your tmux window based on pi's state
Package details
Install @rotem-bar/pi-name-tmux from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@rotem-bar/pi-name-tmux- Package
@rotem-bar/pi-name-tmux- Version
0.1.2- Published
- Sep 8, 2026
- Downloads
- 253/mo · 170/wk
- Author
- rotem-bar
- License
- MIT
- Types
- extension
- Size
- 7.2 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-name-tmux
A pi extension to automatically name your tmux window based on pi's state
- Adopts name from
/name - Generating indicator
- Distinct pending-question indicator (supports @juicesharp/rpiv-ask-user-question)
Install
pi install npm:pi-name-tmux
# or from git:
pi install git:github.com/<you>/pi-name-tmux
To try it locally during development:
pnpm install
pi -e /path/to/pi-name-tmux
Behavior
The extension only runs inside tmux ($TMUX + $TMUX_PANE) and targets the
window that contains the running pane.
| State | Window name |
|---|---|
| Waiting for input | ○ <name> |
| Generating | ● <name> |
| Ask-user prompt pending | ◔ <name> |
<name> resolution:
- Persisted session name (set via
/nameorpi.setSessionName()) — restored when a named session is loaded and adopted live viasession_info_changed - Otherwise the window's original name (captured before the first rename, with any existing status prefixes removed to prevent duplicate indicators)
- Otherwise the current directory's basename
On session shutdown (/new, /resume, /fork, quit) the original window
name is restored and tmux's automatic-rename window option is re-enabled.
Development
Requires Node.js ≥ 24 and pnpm.
pnpm install
pnpm lint # oxlint
pnpm format # oxfmt (in place); format:check for CI
pnpm typecheck # tsc --noEmit
pnpm test # node:test suite with a mocked tmux binary
Tests drive the extension through its full event lifecycle against a mocked tmux binary and assert the exact window-rename sequence.
CI
CI runs on Tangled Spindle, executed by the kubernetes
engine on evan.jarrett.net/loom:
.tangled/workflows/test.yml— lint, format check, typecheck, and tests on every push and pull request.tangled/workflows/publish.yml— publishes to npm when av*tag is pushed; requires anNPM_TOKENsecret registered for the repo on tangled