Package ~/.claude/statusline.sh (actually Python 3, stdlib only) as a Claude Code plugin distributable from a public GitHub repo.
CC plugins can ship a statusline, but not via plugin.json. Mechanism: ship a settings.json at plugin root with a statusLine block. CC merges plugin settings when the plugin is enabled (user ~/.claude/settings.json wins on conflict). Install flow: /plugin marketplace add vjt/my-cc-statusline then /plugin install my-cc-statusline@vjt/my-cc-statusline. Refs:
- https://code.claude.com/docs/en/plugins.md
- https://code.claude.com/docs/en/plugins-reference.md
- https://code.claude.com/docs/en/statusline
Public, GPL-3.0 (consistent with hugo-sindrome-theme).
my-cc-statusline/
├── .claude-plugin/
│ └── plugin.json
├── settings.json
├── statusline.py # renamed from .sh — Python 3
├── README.md
├── LICENSE # GPL-3.0
└── .gitignore
{
"name": "my-cc-statusline",
"version": "1.0.0",
"description": "Colored, reflow-aware Claude Code statusline: cwd, git, model, context bar, cost, duration, version.",
"author": { "name": "Marcello Barnaba", "url": "https://sindro.me" },
"homepage": "https://github.com/vjt/my-cc-statusline",
"repository": "https://github.com/vjt/my-cc-statusline",
"license": "GPL-3.0"
}{
"statusLine": {
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/statusline.py",
"padding": 0
}
}(If ${CLAUDE_PLUGIN_ROOT} isn't a recognised expansion, fall back to ./statusline.py — verify in research step before commit.)
Rename from .sh. Same content as ~/.claude/statusline.sh. Add shebang #!/usr/bin/env python3 (already there) and chmod +x.
- One-line pitch + screenshot.
- Features list (cwd shortening, git status glyphs, context bar with color thresholds, cost, duration, think%, CC version).
- Install:
/plugin marketplace add vjt/my-cc-statusline /plugin install my-cc-statusline@vjt/my-cc-statusline - Manual install fallback (clone + symlink + edit
~/.claude/settings.json). - Config:
CC_CHROMEenv (default 20) for tuning frame width. - Credits / license.
GPL-3.0 boilerplate.
__pycache__/, *.pyc.
- Repo namespace:
vjt/my-cc-statuslineconfirmed? - License: GPL-3.0 ok, or MIT/BSD per other CC plugins convention?
- Author block: name + sindro.me — strip if you want it anonymous-ish?
- Plugin name:
my-cc-statuslinekeeps the CLI flagmy-even after install. Alternative:cc-statuslineorvjt-statusline. Which? - Screenshot in README: I can describe but not produce one. Add yourself or skip?
gh repo create vjt/my-cc-statusline --public --license=gpl-3.0 --description "..."- Local clone, drop files, commit, push.
- Sanity:
git cloneinto a tmp dir, runclaude --print '/plugin marketplace add ./tmp/my-cc-statusline'style verification (or just visual walk-through). - Ping
#bofhwith link.