A pi extension that gives every session a short, human-readable name so pi --resume shows a real description instead of the raw first message (which often starts with <system-reminder> context blobs and is useless for finding anything).
- Automatic naming — after the first agent run settles, asks the model for a concise one-line title (up to ~14 words / 100 chars) summarizing the session, stored via
pi.setSessionName(). - Stays current — refreshes the title every 8 user messages, so long-lived sessions stay findable as the topic evolves.
- Backfills old sessions — resuming an old unnamed session names it from existing history, gradually fixing your backlog as you open sessions.
- Never clobbers manual names — names set via
/name,pi --name, or RPC are detected and respected, both in-process and across restarts (via a persisted ownership marker). - Graceful fallback — if the model call fails, falls back to a cleaned + truncated version of the first user message.
- Cheap mode — use a smaller model for title generation via
PI_AUTONAME_MODEL.
# from npm (shows up on the pi package gallery)
pi install npm:@optomatica/pi-auto-session-name
# from git
pi install git:github.com/Optomatica/pi-auto-session-nameOr try it without installing:
pi -e npm:@optomatica/pi-auto-session-nameThe extension works automatically — just start (or resume) a session and it gets named.
Commands:
/autoname— regenerate the title now/autoname <text>— set a custom title (stops auto-renaming for this session)
| Env var | Default | Description |
|---|---|---|
PI_AUTONAME_MODEL |
active model | provider/model-id to use a specific (e.g. cheaper) model for title generation |
PI_AUTONAME_DEBUG |
unset | set to 1 to log debug output to stderr |
MIT © Optomatica