by Nanako0129
🪸 Powerlevel10k-inspired statusline for Claude Code — paste one prompt and your AI interviews you, then installs it
# Add to your Claude Code skills
git clone https://github.com/Nanako0129/corallineGuides for using cli tools skills like coralline.
Last scanned: 6/15/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-15T10:24:02.886Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}coralline is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Nanako0129. 🪸 Powerlevel10k-inspired statusline for Claude Code — paste one prompt and your AI interviews you, then installs it. It has 516 GitHub stars.
Yes. coralline passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Nanako0129/coralline" and add it to your Claude Code skills directory (see the Installation section above).
coralline is primarily written in PowerShell. It is open-source under Nanako0129 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh coralline against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
A Powerlevel10k-inspired statusline for Claude Code with one installer entrypoint for humans and AI: run it directly, or ask Claude to run it and handle the setup for you.

╭ ~/side-project/coralline ⬢ coralline ⎇ main+! ◆ Fable 5 ψ high ⬡ ▰▰▰▱▱ 62% ↑1.2M ↓45.6k 5h ▰▰▱▱▱ 41% ↺2h44m 7d ▰▰▰▰▱ 79% ↺1d11h +321 −87 $1.23 ✎ Explanatory ⧖ 47m ⚑ 1 ⊙ 02:45 pm ╮
| Segment | Shows |
|---|---|
dir |
current directory, long paths collapsed to ~/a/…/z |
project |
repo name (⬢), stable across every worktree; hidden outside a git repo |
git |
branch, staged + / modified ! / untracked ?, ahead ⇡ behind ⇣ |
node |
active Node version (Nerd Font nf-dev-nodejs_small) from .nvmrc / .node-version (or node on PATH with VL_RUNTIME_PROBE=1); hidden when undetected; opt-in |
python |
active Python env (Nerd Font nf-dev-python) — $VIRTUAL_ENV / conda (skips base) / .python-version (or python3 on PATH with VL_RUNTIME_PROBE=1); hidden when undetected; opt-in |
model |
active Claude model |
effort |
reasoning effort level (ψ) — low / med / high / xhigh / max |
ctx |
context-window gauge, input/output/cache token counts |
limit5h / limit7d |
rate-limit gauges with reset countdown |
burn |
range-to-empty: projected time until the binding limit (5h or 7d) hits 100% at the recent burn rate (↗); opt-in by adding burn to VL_SEGMENTS |
lines |
lines added/removed this session |
cost |
session cost in USD |
style |
active output style |
duration |
session wall-clock duration |
stash |
git stash count |
clock |
time, 12h or 24h |
Gauges change color as they fill: green → yellow at 50% → red at 75% (thresholds configurable).
Claude Code shows an agent panel below the prompt while subagents run; each row
defaults to name · description · token count. coralline can theme the
subagent rows and add the per-task model, a context gauge, and elapsed time:
scout · Explore config sources ◆ gpt-5.6-luna ⬡ ▰▰▱▱▱ 21% 42.0k ⧖ 2m05s
executor · Apply R2 fixes ◆ Fable 5 ⬡ ▰▰▰▰▱ 77% 155.0k ⧖ 45s

Claude Code v2.1.211 does not include its internal agentType role in the
subagentStatusLine payload, but local Agent tasks have a small metadata
sidecar next to the session transcript. coralline reads that local file without
starting another process, so roles such as scout and executor return. The
row keeps both identity and task label: an explicit per-task name is retained
alongside the role when both exist, followed by label or description. If the
sidecar is absent or unreadable, the payload fields still render normally.
The model comes directly from Claude Code's per-task model payload field;
coralline never infers it from the main-session model or the agent role. Known
Claude IDs are shortened (claude-haiku-4-5-… → Haiku 4.5), while unknown or
gateway IDs such as gpt-5.6-luna are shown verbatim.
Enable or disable the renderer directly:
bash ~/.claude/coralline/configure.sh --subagent-rows=on
bash ~/.claude/coralline/configure.sh --subagent-rows=off
The setup wizard offers the same toggle. Disabling removes only the
subagentStatusLine entry and preserves every other Claude setting.
On PowerShell-only Windows, rerun the native one-line installer below with
$subagentRows="on" or $subagentRows="off". Its default
$subagentRows="preserve" leaves any existing subagentStatusLine untouched.
Per-task model and contextWindowSize need Claude Code v2.1.205+. Missing
fields degrade one segment at a time: no model hides only the model segment;
tokenCount still renders as a bare count without contextWindowSize; and the
rest of the row remains themed. Refresh is panel-event-driven rather than a
fixed one-second poll, so elapsed time changes when Claude Code redraws the
panel.
Live payloads currently expose no per-task effort. coralline does not reuse
the main-session effort or guess from the role; effort can be added only if
Claude Code exposes it later. The panel's native main-session row remains
visible because it is outside the subagentStatusLine protocol; only the
subagent rows are replaced and themed.
VL_SUB_SEGMENTS (default "name model ctx elapsed") picks and orders the row
segments. These four are the complete set:
| Segment | Shows | Hidden when |
|---|---|---|
name |
task identity plus task label: explicit name and sidecar agentType compose when both exist, followed by payload label or description; type is the final fallback; colored by status via VL_FG_SUB_* — running: text color, completed: ok, failed: hot, missing/unknown: dim |
every source is empty or unavailable |
model |
◆ model from Claude Code's per-task payload; known Claude IDs are shortened and unknown/gateway IDs are shown verbatim |
model not resolved yet, or pre-v2.1.205 |
ctx |
⬡ context gauge + token count; bare count without contextWindowSize |
no tokenCount |
elapsed |
⧖ wall-clock since startTime, shown to the second (epoch s/ms or UTC ISO) |
startTime missing or unparseable |
The renderer shares your config file but reads only the knobs that shape a row:
VL_STYLE with its per-style knobs — the pill caps and separator (VL_CAP_L,
VL_CAP_R, VL_SEP) and the lean/classic family (VL_LEAN_SEP, VL_LEAN_BG,
VL_LEAN_CAP_L/VL_LEAN_CAP_R, VL_LEAN_FG, VL_BG_BAR) — VL_ASCII,
VL_NAME_MAX (recommended — panel labels are long, and overlong rows are
clipped from the right, hiding model/ctx first), the gauge knobs
(VL_BAR_WIDTH, VL_BAR_FILL, VL_BAR_EMPTY, VL_CTX_GLYPH, VL_WARN_PCT,
VL_HOT_PCT),
the shared palette (VL_FG_TEXT, VL_FG_DIM, VL_FG_OK, VL_FG_WARN,
VL_FG_HOT), the row colors VL_BG_SUB_NAME / VL_BG_SUB_MODEL /
VL_BG_SUB_CTX / VL_BG_SUB_ELAPSED (empty = fall back to VL_BG_DIR /
VL_BG_MODEL / VL_BG_CTX / VL_BG_DURATION), and the name pill's per-status
text colors VL_FG_SUB_TEXT / VL_FG_SUB_OK / VL_FG_SUB_HOT /
VL_FG_SUB_DIM (empty = fall back to VL_FG_TEXT / VL_FG_OK / VL_FG_HOT /
VL_FG_DIM). The main palette is tuned for the gauge segments' dark ground, so
the built-in defaults and every bundled theme give the name pill that same dark
ground via VL_BG_SUB_NAME and keep the theme's own light inks; without it the
completed, failed, and unknown tints drop as low as 1.0:1 on a light pill. The
targets are checked against both that pill and the uniform bar VL_STYLE="classic"
paints instead. Setting VL_BG_SUB_NAME="" restores the light pill.
Everything else —
VL_SEGMENTS*, layout (VL_LAYOUT, VL_MAX_LINES, VL_WRAP_MARGIN), clock,
cost, lines, float, limit-sync, burn, git, and the runtime segments — is
main-bar-only and ignored here. To theme panel rows independently of the main
bar, point the registration at its own config file. For example, the Bash
registration can use:
CORALLINE_CONFIG=~/.claude/coralline-subagent.conf bash ~/.claude/coralline/statusline.sh --subagent.
The native renderer honors the same CORALLINE_CONFIG environment variable.
On macOS, Linux, and Windows environments with Bash, the install routes use install.sh.
PowerShell-only Windows uses the recommended native install.ps1 route under
Windows without Git Bash. It needs only Windows PowerShell 5.1:
no Bash, Git, jq, WSL, or archive extractor.
Bash requirements:
jqand a Nerd Font terminal. No Nerd Font? SetVL_ASCII=1in your config for a glyph-free rendering. The native PowerShell renderer below does not requirejq.
Paste this into Claude Code:
Please install coralline for me:
fetch https://raw.githubusercontent.com/Nanako0129/coralline/main/INSTALL.md
and follow the playbook in it.
Claude checks the environment first. In a Bash environment it uses install.sh, interviews
you, and can open the visual wizard. On PowerShell-only Windows it uses install.ps1, which
installs the native renderer and themes but does not provide a wizard or create
coralline.conf.
If your Claude flags the playbook and wants to inspect things first, that is the right instinct, not an obstacle: see Trust and security.
Run the Bash installer in your terminal:
curl -fsSL https://raw.githubusercontent.com/Nanako0129/coralline/main/install.sh | bash
When run interactively it asks which version to install — the latest tagged release
(recommended) or main (latest development). To skip the prompt, pin one explicitly with
--ref, e.g. ... | bash -s -- --ref v0.9.1 or --ref main.
git clone https://github.com/Nanako0129/coralline ~/.claude/coralline-src
mkdir -p ~/.claude/coralline/themes
cp ~/.claude/coralline-src/statusline.sh ~/.claude/coralline/
cp ~/.claude/coralline-src/configure.sh ~/.claude/coralline/
cp ~/.claude/coralline-src/install.sh ~/.claude/coralline/
cp ~/.claude/coralline-src/themes/claude-coral.conf ~/.claude/coralline/themes/
Then add to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "bash ~/.claude/coralline/statusline.sh",
"refreshInterval": 1
}
}
Note: the commands above copy only the
claude-coraltheme. The Ask-Claude and one-line installers bundle every theme; after a manual install, copy the rest of~/.claude/coralline-src/themes/*.confinto~/.claude/coralline/themes/to switch themes.
statusline.sh needs a bash to run it, so a P