{"id":50903371,"url":"https://github.com/nanako0129/coralline","last_synced_at":"2026-06-17T06:01:23.580Z","repository":{"id":364530271,"uuid":"1267078448","full_name":"Nanako0129/coralline","owner":"Nanako0129","description":"🪸 Powerlevel10k-inspired statusline for Claude Code — paste one prompt and your AI interviews you, then installs it","archived":false,"fork":false,"pushed_at":"2026-06-16T03:17:31.000Z","size":2630,"stargazers_count":298,"open_issues_count":1,"forks_count":18,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-16T05:26:00.200Z","etag":null,"topics":["bash","claude","claude-code","nerd-fonts","powerlevel10k","statusline","terminal","vibe-coding"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nanako0129.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-12T07:44:56.000Z","updated_at":"2026-06-16T05:07:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Nanako0129/coralline","commit_stats":null,"previous_names":["nanako0129/coralline"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/Nanako0129/coralline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nanako0129%2Fcoralline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nanako0129%2Fcoralline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nanako0129%2Fcoralline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nanako0129%2Fcoralline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nanako0129","download_url":"https://codeload.github.com/Nanako0129/coralline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nanako0129%2Fcoralline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34435981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","claude","claude-code","nerd-fonts","powerlevel10k","statusline","terminal","vibe-coding"],"created_at":"2026-06-16T05:00:44.851Z","updated_at":"2026-06-17T06:01:23.575Z","avatar_url":"https://github.com/Nanako0129.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# coralline\n\n\u003e A [Powerlevel10k](https://github.com/romkatv/powerlevel10k)-inspired statusline for Claude\n\u003e Code that **installs itself through your AI** — paste one prompt, answer a few questions\n\u003e about colors and layout, done.\n\n[繁體中文說明](./README.zh-TW.md)\n\n![All six coralline themes rendered side by side](./assets/hero.png)\n\n## Install (the fun way)\n\nPaste this into Claude Code:\n\n```text\nPlease install coralline for me:\nfetch https://raw.githubusercontent.com/Nanako0129/coralline/main/INSTALL.md\nand follow the playbook in it.\n```\n\nClaude will ask you to pick a theme (with previews), choose which segments you want, decide\nbetween a one-line or two-line layout, then wire everything up and verify it. No manual\nconfig editing required.\n\n## What you get\n\n```text\n╭ ~/side-project/coralline  ⎇ main+!  ◆ Fable 5  ⬡ ▰▰▰▱▱ 62% ↑1.2M ↓45.6k  5h ▰▰▱▱▱ 41% ↺2h44m  $1.23  ⊙ 02:45 pm ╮\n```\n\n| Segment | Shows |\n|---|---|\n| `dir` | current directory, long paths collapsed to `~/a/…/z` |\n| `project` | repo name (`⬢`), stable across every worktree; hidden outside a git repo |\n| `git` | branch, staged `+` / modified `!` / untracked `?`, ahead `⇡` behind `⇣` |\n| `model` | active Claude model |\n| `ctx` | context-window gauge, input/output/cache token counts |\n| `limit5h` / `limit7d` | rate-limit gauges with reset countdown |\n| `cost` | session cost in USD |\n| `clock` | time, 12h or 24h |\n| `lines` | lines added/removed this session |\n| `style` | active output style |\n| `duration` | session wall-clock duration |\n| `stash` | git stash count |\n\nGauges change color as they fill: green → yellow at 50% → red at 75% (thresholds configurable).\n\n## Why it's fast\n\nThe statusline is just a local shell script: it makes no network or API calls and uses zero\ntokens. Claude Code pipes the session JSON to it on stdin and renders whatever it prints.\n\nIt runs every second (`refreshInterval: 1`), so the script is built to be cheap on CPU: one\n`jq` invocation extracts every field at once, and one `git status --porcelain=v2 --branch`\ncall provides branch, dirty state, and ahead/behind together. No `bc`, no per-field subprocess\nspam. Works on stock macOS bash 3.2 and any Linux bash.\n\n## Manual install\n\n```bash\ngit clone https://github.com/Nanako0129/coralline ~/.claude/coralline-src\nmkdir -p ~/.claude/coralline/themes\ncp ~/.claude/coralline-src/statusline.sh ~/.claude/coralline/\ncp ~/.claude/coralline-src/themes/claude-coral.conf ~/.claude/coralline/themes/\n```\n\nThen add to `~/.claude/settings.json`:\n\n```json\n{\n  \"statusLine\": {\n    \"type\": \"command\",\n    \"command\": \"bash ~/.claude/coralline/statusline.sh\",\n    \"refreshInterval\": 1\n  }\n}\n```\n\n\u003e **Note:** requires `jq` and a [Nerd Font](https://www.nerdfonts.com/) terminal.\n\u003e No Nerd Font? Set `VL_ASCII=1` in your config for a glyph-free rendering.\n\n### Platform support\n\n| Platform | Status |\n|---|---|\n| macOS | ✅ supported (works on the stock bash 3.2) |\n| Linux | ✅ supported |\n| Windows + Git Bash | ✅ supported — Claude Code runs the status line through Git Bash when it's installed |\n| Windows without Git Bash | ❌ not yet — Claude Code falls back to PowerShell, which can't run the bash script ([roadmap](https://github.com/Nanako0129/coralline/issues)) |\n\n\u003e **Windows note:** install [Git for Windows](https://git-scm.com/download/win) (which bundles\n\u003e Git Bash) and `jq`, and coralline runs natively. A native PowerShell port for the no-Git-Bash\n\u003e case is on the roadmap. The render path is built to stay cheap under Git Bash's emulated\n\u003e `fork()` — one `jq`, one `git`, and no per-field subprocess spawning.\n\n## Configuration\n\nEverything lives in `~/.claude/coralline.conf` (plain bash, sourced by the script):\n\n| Variable | Default | Meaning |\n|---|---|---|\n| `VL_STYLE` | `pill` | `pill`: powerline pills · `lean`: flat colored text, p10k-lean style |\n| `VL_LAYOUT` | `fixed` | `fixed`: one line per `VL_SEGMENTS*` var · `auto`: responsive |\n| `VL_MAX_LINES` | `3` | `auto` only — wrap into at most this many lines (`1` = never wrap) |\n| `VL_WRAP_MARGIN` | `4` | `auto` only — columns kept free on the right so segments never touch the edge |\n| `VL_SEGMENTS` | `dir git model ctx limit5h limit7d cost clock` | segments on line 1, in order (the full list in `auto` mode) |\n| `VL_SEGMENTS2` / `VL_SEGMENTS3` | _(empty)_ | `fixed` only — optional second/third line |\n| `VL_CLOCK` | `12h` | `12h` / `24h` / `off` |\n| `VL_CLOCK_SECONDS` | `1` | show seconds in the clock |\n| `VL_BAR_WIDTH` | `5` | gauge width in cells |\n| `VL_PATH_DEPTH` | `4` | collapse paths deeper than this |\n| `VL_NAME_MAX` | `0` | max chars for the `project` / `git` names before `…` truncation (`0` = off) |\n| `VL_COST_DECIMALS` | `2` | decimal places for the cost segment |\n| `VL_WARN_PCT` / `VL_HOT_PCT` | `50` / `75` | gauge color thresholds |\n| `VL_ASCII` | `0` | `1` disables Nerd Font glyphs |\n| `VL_BG_*` / `VL_FG_*` | theme | colors — `256`-color index or `\"R,G,B\"` |\n\n### Responsive layout\n\nWith `VL_LAYOUT=\"auto\"` the bar stays on a single line while it fits, and greedily wraps into\nup to `VL_MAX_LINES` rows when the window gets narrow. Once the line cap is reached, remaining\nsegments overflow on the last line. `VL_WRAP_MARGIN` keeps a few columns free on the right so\nwrapped lines never butt against the window edge — raise it if your terminal adds padding.\n\nWidth comes from `$COLUMNS`. Claude Code v2.1.153+ sets `COLUMNS` to the current terminal width\nbefore running the status line, so wrapping responds to window resizing out of the box. Outside\nClaude Code the script falls back to `stty size` on the controlling terminal; if neither is\navailable it stays on one line.\n\n```text\nwide window:    ~/dev/app  ⎇ main  ◆ Fable 5  ⬡ ▰▰▰▱▱ 62%  5h ▰▰▱▱▱ 41%  $1.23  ⊙ 14:45\n\nnarrow window:  ~/dev/app  ⎇ main  ◆ Fable 5\n                ⬡ ▰▰▰▱▱ 62%  5h ▰▰▱▱▱ 41%  $1.23  ⊙ 14:45\n```\n\nPrefer a layout that never moves? Keep `VL_LAYOUT=\"fixed\"` and pin rows with\n`VL_SEGMENTS` / `VL_SEGMENTS2` / `VL_SEGMENTS3`.\n\n### Lean style\n\nPrefer Powerlevel10k's *lean* look — no backgrounds, just colored text? Set\n`VL_STYLE=\"lean\"` and each segment's `VL_BG_*` color becomes its text accent instead:\n\n![Lean style compared with pill style](./assets/style-lean.png)\n\n| Variable | Default | Meaning |\n|---|---|---|\n| `VL_STYLE` | `pill` | set to `lean` for the flat look |\n| `VL_LEAN_SEP` | _(empty)_ | extra text between segments, e.g. `·` |\n| `VL_LEAN_FG` | _(empty)_ | force a text color; empty = inherit each segment's accent |\n\n\u003e **Tip:** already a p10k user? Tell the AI installer to import your `~/.p10k.zsh` — it will\n\u003e carry over your style, colors, and time format. See the\n\u003e [Powerlevel10k import step in INSTALL.md](./INSTALL.md#step-25--powerlevel10k-import-optional).\n\n## Themes\n\n| | |\n|---|---|\n| **`claude-coral`** — steel blue · mauve · Claude coral (default)\u003cbr\u003e![claude-coral theme preview](./assets/theme-claude-coral.png) | **`catppuccin-mocha`** — soft pastels on dark\u003cbr\u003e![catppuccin-mocha theme preview](./assets/theme-catppuccin-mocha.png) |\n| **`nord`** — arctic frost\u003cbr\u003e![nord theme preview](./assets/theme-nord.png) | **`gruvbox-dark`** — warm retro\u003cbr\u003e![gruvbox-dark theme preview](./assets/theme-gruvbox-dark.png) |\n| **`tokyo-night`** — neon on deep navy\u003cbr\u003e![tokyo-night theme preview](./assets/theme-tokyo-night.png) | **`mono`** — grayscale minimalism\u003cbr\u003e![mono theme preview](./assets/theme-mono.png) |\n| **`dracula`** — cyan · pink · purple on charcoal\u003cbr\u003e![dracula theme preview](./assets/theme-dracula.png) | |\n\nA theme is just a `.conf` file assigning `VL_BG_*` / `VL_FG_*` — copy one, change the colors,\nand source yours from `coralline.conf` instead. PRs with new themes are welcome.\n\n\u003e **Tip:** the preview images are generated from the real script by\n\u003e [`tools/render-screenshots.py`](./tools/render-screenshots.py) — after adding a theme, add it\n\u003e to the `THEMES` list there and re-run it to get a matching preview.\n\n## Acknowledgements\n\nThe visual language of coralline — segmented pills, powerline transitions, the `⇡⇣` git\nglyphs, gauges that shift color as they fill — is a loving tribute to\n[Powerlevel10k](https://github.com/romkatv/powerlevel10k) by\n[@romkatv](https://github.com/romkatv), which set the bar for what a fast, beautiful prompt\ncan be. Thanks also to the wider [powerline](https://github.com/powerline/powerline) lineage\nthat started it all, and to [Nerd Fonts](https://www.nerdfonts.com/) for the glyphs that make\nthe pill shapes possible.\n\nAs for the name: coralline algae build reefs one thin, colorful layer at a time —\nand **coral·line** is exactly what this is: a line, in Claude's coral.\n\n## License\n\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanako0129%2Fcoralline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnanako0129%2Fcoralline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanako0129%2Fcoralline/lists"}