groove-admin-claude-statusline — Claude Code skill: rich statusline
Installs a single-line statusline in Claude showing model, git context, token usage and rate limits. Useful when you want session state visible at a glance.
npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a claude-codeWhat groove-admin-claude-statusline does
The skill writes three scripts into ~/.claude/hooks/ and merges config into ~/.claude/settings.json. The statusline redraws on every Claude turn and shows the active model, the CWD folder and git branch with staged +N -N, context tokens used as a percentage, the current effort level, 5h and 7d rate-limit utilisation with reset time, plus the count of active /loop jobs and the soonest one to fire.
Install runs in steps: create ~/.claude/hooks/ if missing, copy statusline.sh, cron-state.sh and cron-state-clear.sh there, make them executable, then merge a statusLine entry and two hooks into settings — PostToolUse on CronCreate|CronDelete and SessionEnd. Existing keys in settings.json are preserved and duplicates are skipped. There is a --list mode to report current state and --uninstall to drop the statusLine entry and the hooks the skill added.
It needs jq, curl, python3 and git. The 5h/7d section relies on a Claude Pro/Max OAuth session; with no token found it is silently omitted. Scripts go to the user-global ~/.claude/hooks/, not the project-local .claude/, so restart Claude after install or neither the line nor the hooks will load.
What it helps with
- see the git branch and staged diff inside Claude
- track context usage as a percentage
- check when the 5h and 7d limits reset
- count active
/loopjobs and their next fire time - remove the statusline and hooks in one step
Example prompts for the agent
- Install the groove-admin-claude-statusline skill and set up the statusline
- Show the current statusline state: run the skill with
--list - Remove the statusline and hooks with
--uninstall
How to install groove-admin-claude-statusline
1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a claude-code2Manually: put the files in place
~/.claude/skills/groove-admin-claude-statusline/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/groove-admin-claude-statusline/
1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a codex2Manually: put the files in place
.agents/skills/groove-admin-claude-statusline/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a cursor2Manually: put the files in place
.cursor/skills/groove-admin-claude-statusline/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install andreadellacorte/groove groove-admin-claude-statusline2Manually: put the files in place
.github/skills/groove-admin-claude-statusline/SKILL.md1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a gemini-cli2Platform CLI
gemini skills install https://github.com/andreadellacorte/groove --path skills/groove-admin-claude-statuslineManually: put the files in place
.devin/skills/groove-admin-claude-statusline/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about groove-admin-claude-statusline
How do I install groove-admin-claude-statusline in Claude?
Run npx skills add andreadellacorte/groove --skill groove-admin-claude-statusline -a claude-code. Then restart Claude so the statusline and hooks take effect.
What does the statusline show?
The active model, CWD folder and git branch with staged diff, context tokens used, effort level, 5h and 7d rate-limit utilisation with reset time, and the count of active /loop jobs with the soonest fire time.
Why is the 5h/7d section missing?
That section needs a Claude Pro/Max OAuth session. If no token is found it is silently omitted, while the rest of the line keeps working.
Source text
SKILL.md · MIT
---
name: groove-admin-claude-statusline
description: "Install a rich Claude Code statusline into ~/.claude/hooks/ and ~/.claude/settings.json. Displays model, git context, token usage, effort level, 5h/7d usage limits, and active /loop count with next-fire time."
license: MIT
allowed-tools: Read Write Edit Glob Bash(mkdir:*) Bash(chmod:*) Bash(jq:*) Bash(python3:*) AskUserQuestion
metadata:
author: andreadellacorte
---
# groove-admin-claude-statusline
Install a rich single-line Claude Code statusline. Writes three scripts to `~/.claude/hooks/` and merges config into `~/.claude/settings.json`.
Use `--uninstall` to remove. Use `--list` to show current status.
## Outcome
`~/.claude/settings.json` has `statusLine` pointing to the statusline script, plus PostToolUse and SessionEnd hooks to track active `/loop` cron jobs. The statusline shows on every Claude Code turn.
## What the statusline shows
```
claude-sonnet-4-6 | myrepo@main (+3 -1) | 42k/200k (21%) | effort: high | 5h 12% @8:00pm | 7d 3% @mar 16, 9:00am | 2 loops | check deployment @4:10pm
```
| Section | Description |
|---|---|
| Model | Display name of the active model |
| Repo@branch | CWD folder name, git branch, staged diff `+N -N` |
| Tokens | Used / total context, % used |
| Effort | Current effort level (low / med / high) |
| 5h / 7d | Rate-limit utilisation with reset time (cached 60s) |
| Loops | Count of active `/loop` crons + soonest-firing prompt and time |
## Steps
### `--list`
Read `~/.claude/settings.json`. Report whether `statusLine` is set, and whether each hook script exists in `~/.claude/hooks/`. Exit.
### `--uninstall`
Remove `statusLine` from `~/.claude/settings.json`. Remove the three `CronCreate|CronDelete` / `SessionEnd` hook entries added by this skill. Do not remove hook scripts (leave for manual cleanup). Report changes. Exit.
### Default (install)
1. Create `~/.claude/hooks/` if absent.
2. Write the three scripts below to `~/.claude/hooks/`. Never overwrite without showing a diff and confirming.
3. Make all three scripts executable (`chmod +x`).
4. Read `~/.claude/settings.json` (default `{}`). Merge in the `statusLine` entry and the two hook entries below. Preserve all other keys. Do not create duplicate entries.
5. Write `~/.claude/settings.json`.
6. Report:
```
✓ statusline.sh → ~/.claude/hooks/statusline.sh
✓ cron-state.sh → ~/.claude/hooks/cron-state.sh
✓ cron-state-clear.sh → ~/.claude/hooks/cron-state-clear.sh
✓ ~/.claude/settings.json updated
Note: restart Claude Code for changes to take effect.
```
## Scripts
The three shell scripts live in `scripts/` per the [Agent Skills specification](https://agentskills.io/specification#scripts):
| Script | Installed to | Purpose |
|---|---|---|
| `scripts/statusline.sh` | `~/.claude/hooks/statusline.sh` | Main statusline renderer |
| `scripts/cron-state.sh` | `~/.claude/hooks/cron-state.sh` | Tracks `/loop` cron jobs in `/tmp/claude/loops.json` |
| `scripts/cron-state-clear.sh` | `~/.claude/hooks/cron-state-clear.sh` | Clears loop state on session end |
Copy each script from `scripts/` to `~/.claude/hooks/`. Never overwrite an existing script without showing a diff and confirming.
## `~/.claude/settings.json` entries
Merge these into the existing settings. Preserve all other keys. Do not create duplicates.
```json
{
"statusLine": {
"type": "command",
"command": "~/.claude/hooks/statusline.sh"
},
"hooks": {
"PostToolUse": [
{
"matcher": "CronCreate|CronDelete",
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/cron-state.sh",
"async": true
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "~/.claude/hooks/cron-state-clear.sh",
"async": true
}
]
}
]
}
}
```
## Constraints
- Write to `~/.claude/hooks/` (user-global), not `.claude/` (project-local)
- Never overwrite an existing script without showing a diff and confirming
- Never discard existing keys in `~/.claude/settings.json`
- Requires: `jq`, `curl`, `python3`, `git` (all standard on macOS/Linux)
- The 5h/7d usage section requires a Claude Pro/Max OAuth session; it silently omits if no token is found
- After install: restart Claude Code for the statusLine and hooks to take effect
© andreadellacorte · MIT · andreadellacorte/groove