iterm-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/iterm-status.d/<session-key>.conf`** — per-session conf, sourced by the hook script after the global conf. Holds `iterm_badge_text()` and `iterm_title_text()` definitions that return the chosen label.
- The directory `iterm-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. `/iterm-label deploy debugging`), use that argument verbatim as the label. Skip to step 2.
- Otherwise, **ask the user** what they want to call this tab. One question, one string (title and badge share it). Do this with `AskUserQuestion` or plain text — but before any tool calls.
2. **Run a single Bash command** that does everything: resolves the session key from `ITERM_SESSION_ID` (looked up from the parent `claude` TUI proces