Headsup config
Glanceable Claude Code and Codex state in your terminal tabs: white=idle, blue=working, orange=waiting. Multi-terminal (iTerm2, WezTerm, AI Power Term), a live status bar with Anthropic usage limits, /sfl and /nil window save-and-restore, and twelve companion skills. macOS only.
npx -y skills add wasulajr/headsup --skill headsup-configAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Unified settings hub for headsup (Claude Code's iTerm2 status hooks). One command with a section as the first word, then that section's args. Sections: newtabs (New Claude Tab / Cmd-Opt-C launch mode), colors (idle/processing/waiting tab colors), label (this tab's title + badge), notify (the 'Claude is waiting' macOS notification). Use when the user types /headsup-config, or asks to configure/change headsup settings and names one of those areas, e.g. /headsup-config newtabs off, /headsup-config colors wait orange, /headsup-config label deploy work, /headsup-config notify 10. With no section it shows every current setting.
SKILL.md
4.8 KB, as published. Nobody here has run it
/headsup-config: headsup settings hub
One entry point for every headsup setting. The first word of the arguments selects a section; the rest is that section's own arguments, passed straight through to the same backing helper the dedicated skill uses. The focused skills (/headsup-colors, /headsup-label, /headsup-notifications) still exist and auto-trigger on natural phrasing; this is the unified manual entry point, and it is the ONLY skill for the New Claude Tab launch mode (there is no separate /headsup-newtab-args).
Sections
| Section | What it sets | Backing helper |
|---|---|---|
newtabs | New Claude Tab (Cmd-Opt-C) launch mode | ~/.claude/hooks/headsup-newtab-args.sh |
codextabs | New Codex Tab launch mode | ~/.claude/hooks/headsup-newtab-args.sh --codex |
colors | idle / processing / waiting tab colors (global) | the /headsup-colors procedure |
label | this tab's title + badge (per-session) | ~/.claude/hooks/headsup-set-label.sh |
notify | the "Claude is waiting" macOS notification | ~/.claude/hooks/headsup-notifications.sh |
Accepted section aliases: newtab/autorun -> newtabs; codex/codextab -> codextabs; color -> colors; title/badge -> label; notifications -> notify.
What to do when invoked
-
Parse the arguments. The first whitespace-delimited token is the
section; everything after it isrest(may be empty). Map aliases to a canonical section above. -
No section, or
show/status/help: show every current setting, then stop. Run these (read-only) and summarize the output:~/.claude/hooks/headsup-newtab-args.sh --show ~/.claude/hooks/headsup-newtab-args.sh --codex --show ~/.claude/hooks/headsup-notifications.sh # prints current notify state grep -E '^(IDLE|PROCESS|WAIT)_COLOR=' ~/.claude/hooks/headsup-status.confAlso note the current per-session label is whatever
/headsup-labellast set (mention it is per-tab). List the sections so the user knows what they can change. -
newtabs <rest>: run the setter, passingrestthrough unchanged:~/.claude/hooks/headsup-newtab-args.sh <rest>restis one ofoff | acceptEdits | plan | full,-- <raw args>, or--show. Emptyrest-> run with--show. Confirm the printed value in one line; it takes effect on the next Cmd-Opt-C.codextabs <rest>: same setter, but for the New Codex Tab. Prepend--codex:~/.claude/hooks/headsup-newtab-args.sh --codex <rest>restis one ofoff | full-auto | yolo | never|on-request|on-failure|untrusted | approval <policy>,-- <raw args>, or--show(codex flags differ from claude's). Emptyrest-> run with--codex --show. -
label <rest>: run the per-session label setter:~/.claude/hooks/headsup-set-label.sh <rest> # rest = the label text, or --clearEmpty
rest-> ask for the label text first (do not call with no args). Confirm in one line. -
notify <rest>: passreststraight through (the helper parses it:on/off/<minutes>/test/sound <name>):~/.claude/hooks/headsup-notifications.sh <rest>Empty
rest-> run with no args to show current state. One short confirmation. -
colors <rest>: color names need translation and the change is applied live + persisted, so follow the existing procedure rather than a single helper: read~/.claude/skills/headsup-colors/SKILL.mdand follow its Flow, treatingrestas the user's color request (e.g.wait orange,process 8a3ffc). Ifrestis empty, ask which of idle/processing/waiting to change. -
Unknown section: list the four sections and ask which one they meant. Do not guess-run a helper.
Notes
- The backing helpers each print their resulting state; keep your own confirmation to one line and do not duplicate their output.
- Permissions: the helpers are individually allowlisted (setup.sh adds the rules). If a section prompts for permission on first use, that is expected until the rule is present.
- Scope:
colorsandnotifyare global (all tabs);labelis per-session (this tab only);newtabsis global to the shortcut. This mirrors the focused skills.