agentsclimarketplace

Headsup config

Skill wasulajr/headsup/skills/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.

Install
npx -y skills add wasulajr/headsup --skill headsup-config

Assembled 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

SectionWhat it setsBacking helper
newtabsNew Claude Tab (Cmd-Opt-C) launch mode~/.claude/hooks/headsup-newtab-args.sh
codextabsNew Codex Tab launch mode~/.claude/hooks/headsup-newtab-args.sh --codex
colorsidle / processing / waiting tab colors (global)the /headsup-colors procedure
labelthis tab's title + badge (per-session)~/.claude/hooks/headsup-set-label.sh
notifythe "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

  1. Parse the arguments. The first whitespace-delimited token is the section; everything after it is rest (may be empty). Map aliases to a canonical section above.

  2. 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.conf
    

    Also note the current per-session label is whatever /headsup-label last set (mention it is per-tab). List the sections so the user knows what they can change.

  3. newtabs <rest>: run the setter, passing rest through unchanged:

    ~/.claude/hooks/headsup-newtab-args.sh <rest>
    

    rest is one of off | acceptEdits | plan | full, -- <raw args>, or --show. Empty rest -> 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>
    

    rest is one of off | full-auto | yolo | never|on-request|on-failure|untrusted | approval <policy>, -- <raw args>, or --show (codex flags differ from claude's). Empty rest -> run with --codex --show.

  4. label <rest>: run the per-session label setter:

    ~/.claude/hooks/headsup-set-label.sh <rest>      # rest = the label text, or --clear
    

    Empty rest -> ask for the label text first (do not call with no args). Confirm in one line.

  5. notify <rest>: pass rest straight 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.

  6. 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.md and follow its Flow, treating rest as the user's color request (e.g. wait orange, process 8a3ffc). If rest is empty, ask which of idle/processing/waiting to change.

  7. 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: colors and notify are global (all tabs); label is per-session (this tab only); newtabs is global to the shortcut. This mirrors the focused skills.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.