@rotem-bar/pi-name-tmux

A pi extension to automatically name your tmux window based on pi's state

Packages

Package details

extension

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

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:

  1. Persisted session name (set via /name or pi.setSessionName()) — restored when a named session is loaded and adopted live via session_info_changed
  2. Otherwise the window's original name (captured before the first rename, with any existing status prefixes removed to prevent duplicate indicators)
  3. 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 a v* tag is pushed; requires an NPM_TOKEN secret registered for the repo on tangled