headsup-labellisted
Install: claude install-skill wasulajr/headsup
# iTerm2 Per-Session Label
Sets one shared string as both the iTerm2 badge (top-right watermark) and the window/tab title for THIS iTerm2 session only. Other tabs / panes are unaffected. Local-only — does NOT commit/push (session IDs change across iTerm2 restarts, so committing would just accumulate dead files).
## Files involved
- **`~/.claude/hooks/headsup-status.d/<session-key>.conf`** — per-session conf, sourced by the hook script after the global conf. Holds `headsup_badge_text()` and `headsup_title_text()` definitions that return the chosen label.
- **`~/.claude/hooks/.state/<uuid>.badge`** — the badge sidecar that the waiting-notification script reads to label notifications. Normally `headsup-status.sh` refreshes it on every hook event, but this skill writes it directly so the notification picks up the new label without waiting for the next tool call.
- The directory `headsup-status.d/` is gitignored; nothing committed.
## Flow
**Prompt-first design.** Do NOT run any Bash commands before you have the label. Reading the current label or looking up the session key first would trigger a permission prompt before the user has even been asked what they want — that's worse UX than skipping the current-label read. If the user wants to know the current label they'll ask.
1. **Get the label.**
- If the user passed an argument when invoking the skill (e.g. `/headsup-label deploy debugging`), use that argument verbatim as the label. Skip to step 2.
- Otherwise, **ask t