pi-session-name0.1.7
pi extension that auto-generates a concise session title from the first user prompt and shows agent running/idle status in the terminal title.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-session-name
A pi extension that auto-generates a concise, meaningful session title from the first user prompt.
What it does
- Captures the first user input in a session and freezes it as the title source
- Passes it in a JSON
originalUserInputfield so the model can distinguish source text from instructions - Generates a concise task-label title in the user's language using the active pi model (not a conversational reply)
- Retries up to 3 times, always with only the original first input
- Never overwrites an already-set session name
- Updates the terminal title in real time:
· <session name> - <cwd>— while the agent is running✳ <session name> - <cwd>— while idle
Behavior details
The extension listens for input, agent_start, and agent_end events:
- On the first
inputevent, if the session already has a name → does nothing. - Otherwise, stores the first user input in memory and starts title generation.
- Tries up to 3 times to generate a title from only that first input.
- All subsequent user messages are ignored — a failed first request will not cause the extension to switch to a later prompt.
- On
agent_start/agent_end, the title prefix toggles between·(busy) and✳(idle).
Failure modes: if no model is selected, no API key is available, or all 3 attempts fail, the session simply stays unnamed — no error, no noise.
Generates titles through Pi's model registry, which normalizes the system prompt and resolves provider authentication before sending the request. Requires Pi 1.1.0 or newer.
Install
From npm (global)
pi install npm:pi-session-name
From a local checkout
pi install /absolute/path/to/pi-session-name
Try without installing
pi -e /absolute/path/to/pi-session-name
Use -l with pi install to install into the current project's .pi/settings.json instead of your global settings.
Development
# Clone
git clone https://github.com/ttttmr/pi-session-name.git
cd pi-session-name
# Install dependencies
npm install
# Run tests
npm test
# Test locally in pi
pi -e .
Publish
npm publish