About setup-statusline
setup-statusline is a cleanup skill for Claude Code that removes the legacy shell-based status line setup and directs users to the c-mods plugin for the replacement.
Key features
- 01Removes legacy status line configuration
- 02Deletes marked reset hooks
- 03Removes obsolete scripts and baseline file
- 04Preserves unrelated settings.json entries
- 05Provides c-mods install and toggle commands
Use cases
- 01Replacing a shell-based Claude Code status line
- 02Removing old status line hooks and files
- 03Switching to the c-mods statusline plugin
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ c0nant/ c-skills --skill setup-statuslineAfter installing, type/setup-statuslinein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
RESUMO.mdTRADUCAO.pt-BR.mdagents/openai.yamlDetails
From the project READMESetup Status Line
The status line now lives in the c-mods plugin (statusline function): model, effort, context usage, session duration, rate limit and git branch, with no bash script, jq or baseline file. This skill no longer installs anything. It removes the old shell-based model from the machine and points to the plugin.
What gets removed
statusLinein~/.claude/settings.json, only when its command points tostatusline-command.sh.- Hook entries carrying the marker
claude-hook:statusline-resetunderSessionStart,SessionEndandUserPromptSubmit. ~/.claude/statusline-command.sh,~/.claude/statusline-reset-hook.shand~/.claude/statusline-baseline.json.
Everything else in settings.json stays untouched.
Prerequisites
jqinstalled (used only for this cleanup)
Steps
1. Clean the old setup
SETTINGS="$HOME/.claude/settings.json"
if [ -s "$SETTINGS" ] && jq -e . "$SETTINGS" >/dev/null 2>&1; then
jq '
(if ((.statusLine.command // "") | test("statusline-command\\.sh")) then del(.statusLine) else . end)
| reduce ("SessionStart","SessionEnd","UserPromptSubmit") as $ev (.;
if .hooks[$ev] then
.hooks[$ev] |= map(select((.hooks // []) | map(.command // "") | any(test("claude-hook:statusline-reset")) | not))
| if (.hooks[$ev] | length) == 0 then del(.hooks[$ev]) else . end
else . end)
| if (.hooks // null) == {} then del(.hooks) else . end
' "$SETTINGS" > "$SETTINGS.tmp" && mv "$SETTINGS.tmp" "$SETTINGS"
else
echo "settings.json missing or not valid JSON: nothing to clean"
fi
rm -f "$HOME/.claude/statusline-command.sh" \
"$HOME/.claude/statusline-reset-hook.sh" \
"$HOME/.claude/statusline-baseline.json"
2. Install the plugin
Tell the user to run, inside Claude Code:
/plugin install c-mods --marketplace C0nanT/c-mods
Already installed: claude plugin update c-mods, then /reload-plugins.
3. Toggle
/c-mods statusline off
/c-mods statusline on
The reset clock uses the machine's local timezone. If auto-detect is wrong, set STATUSLINE_TZ (IANA name, e.g. America/Sao_Paulo) in ~/.claude/settings.json env.