{"id":47735691,"url":"https://github.com/bmmmm/claudii","last_synced_at":"2026-06-12T00:01:23.974Z","repository":{"id":347471498,"uuid":"1194159561","full_name":"bmmmm/claudii","owner":"bmmmm","description":"Shell prompt layer for Claude Code — session costs, context %, rate limits and model health. Zero daemons, pure bash+jq.","archived":false,"fork":false,"pushed_at":"2026-06-10T16:23:43.000Z","size":1597,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T18:11:34.516Z","etag":null,"topics":["anthropic","claude","claude-code","cli","cost-tracking","developer-tools","homebrew","oh-my-zsh","shell","statusline","terminal","zsh","zsh-plugin"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmmmm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"bmabma"}},"created_at":"2026-03-28T01:48:17.000Z","updated_at":"2026-06-10T16:23:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bmmmm/claudii","commit_stats":null,"previous_names":["bmmmm/claudii"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/bmmmm/claudii","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmmmm%2Fclaudii","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmmmm%2Fclaudii/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmmmm%2Fclaudii/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmmmm%2Fclaudii/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmmmm","download_url":"https://codeload.github.com/bmmmm/claudii/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmmmm%2Fclaudii/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34222709,"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-11T02:00:06.485Z","response_time":57,"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":["anthropic","claude","claude-code","cli","cost-tracking","developer-tools","homebrew","oh-my-zsh","shell","statusline","terminal","zsh","zsh-plugin"],"created_at":"2026-04-02T22:34:35.669Z","updated_at":"2026-06-12T00:01:23.969Z","avatar_url":"https://github.com/bmmmm.png","language":"Shell","funding_links":["https://ko-fi.com/bmabma"],"categories":[],"sub_categories":[],"readme":"# claudii\n\n**Claude Code session intelligence in your shell — costs, prompt-cache hit rate, rate limits, model health, and effort-mode awareness. With the standalone [`cc-insomnii`](https://github.com/bmmmm/cc-insomnii) plugin, a bedtime nudge that escalates into a synthwave shame display past 1am.**\n\nPure bash + jq. No Python, no Node, no daemons. Read-only — claudii never modifies your sessions or makes API calls on your behalf. Compatible with oh-my-zsh, zinit, and manual source.\n\n![CC-Statusline](screenshot-sessionline.png)\n\n## Install\n\n```bash\nbrew tap bmmmm/tap \u0026\u0026 brew install claudii\n```\n\nAdd to `~/.zshrc`:\n```bash\nsource \"$(brew --prefix)/opt/claudii/libexec/claudii.plugin.zsh\"\n```\n\nEnable the in-session status line (writes one key to `~/.claude/settings.json`):\n```bash\nclaudii on\n# restart Claude Code\n```\n\nOptional: install [`cc-insomnii`](https://github.com/bmmmm/cc-insomnii) for the\nanimated bedtime-shaming `clock` segment (5+ escalation modes, 460+ shame\nmessages, char-decay, matrix-rain-drip). claudii auto-detects it and\ndelegates the clock rendering — no settings.json change needed:\n```bash\ngit clone https://github.com/bmmmm/cc-insomnii ~/cc-insomnii \u0026\u0026 bash ~/cc-insomnii/install.sh\nclaudii doctor | grep insomnii   # confirms detection\n# add 'clock' to your layout if it isn't already\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eManual install (without Homebrew)\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/bmmmm/claudii ~/claudii\nbash ~/claudii/install.sh\n```\n\u003c/details\u003e\n\n## What you get\n\nThree display layers, all read-only:\n\n### 1. CC-Statusline — inside Claude Code\nDense metrics on every turn via the native `statusLine` hook:\n\n```\nOpus xhigh ▲  ████████░░  ⚡73%\n5h:28%  7d:12%  eta:4h  +47/-12\napi:23m  12.4k↑ 4.2k↓  23m  feature-branch  ⌂ gateii\nOpus ✓  Sonnet ✓  Haiku ✓  │  @orchestrate\n⚡ commit-msg Qwen3.5-9B 2s\n```\n\nThe model segment shows the active **effort mode** — the high-end modes (`xhigh`,\n`ultracode`, `max`) are highlighted, `▲` marks active thinking. `ultracode` is Claude\nCode's menu mode (= `xhigh` effort plus standing consent to launch multi-agent\nworkflows); claudii renders it whether Claude Code reports `ultracode` or the\nunderlying `xhigh`.\n\nLayout, segments, and conditionals (`vpn`, `omlx`, `proxy`, `worktree` only render when relevant) are documented in `man claudii`. Multi-line layouts need Claude Code ≥ 2.1.141 — earlier versions dropped or corrupted statusline rows longer than the terminal width (fixed upstream). The `clock` segment is provided by the standalone [`cc-insomnii`](https://github.com/bmmmm/cc-insomnii) plugin (when installed) — it escalates from a quiet `☾ 22:14` to a per-character rainbow + rotating glyph + rotating shame string past 1h overdue, with `breathing-pulse`, `char-decay`, `matrix-rain-drip`, and `glyph-swarm` modes once you cross +3h. Without cc-insomnii the `clock` segment renders nothing — pure CC-Statusline still works fine for everything else.\n\n### 2. Session Dashboard — above your shell prompt\nAppears automatically after `claudii` commands when sessions are active:\n\n```\n  opus-4-8     73%  $25.63  5h:28% ↺42m\n  sonnet-4-6   42%   $1.20\n```\n\n### 3. ClaudeStatus — RPROMPT\nModel health in your right prompt, refreshed every 5 minutes. Never blocks your prompt.\n\n![ClaudeStatus](screenshot-claudestatus.png)\n\n`✓` ok · `~` degraded · `↓` down · `?` unreachable · `[…]` loading\n\n## Commands\n\n```bash\nclaudii                          # overview: sessions, account, agents, services\nclaudii on / off                 # enable/disable all display layers\nclaudii status                   # live model health check\nclaudii sessions / se            # active sessions: context, cost, rate\nclaudii sessions-inactive / si   # ended sessions + GC hint\nclaudii gc / g                   # garbage-collect ended sessions\nclaudii pin / unpin \u003cid\u003e         # protect a session from garbage collection\nclaudii cost / c                 # per-model cost breakdown\nclaudii cache                    # prompt-cache hit rate + $ saved, per model \u0026 day\nclaudii trends / t               # weekly/daily cost history\nclaudii skills-cost              # per-skill / per-plugin cost (--plugins · --json · --days N)\nclaudii explain                  # explain claudii's layers and architecture\nclaudii doctor / d               # installation health check\nclaudii update                   # self-update (Homebrew or git checkout)\nclaudii changelog                # what changed between versions\nclaudii config get/set \u003ckey\u003e     # read/write config\nclaudii agents                   # list configured agent aliases\nclaudii omlx [status|connect|test|disconnect]\n                                 # local-LLM (oMLX/gateii) sessionline integration\nclaudii vpnii [set \u003cname\u003e|clear|show]\n                                 # WireGuard tunnel marker for the VPN segment\n                                 # (call from wg-quick PostUp/PreDown)\nclaudii vibemap [grid|strip|status|clear|path]\n                                 # opt-in activity heatmap (default off)\n```\n\nMost data commands support `--json` and `--tsv` for scripting. Full reference: `man claudii`\n\n## Aliases\n\nLaunch aliases register dynamically from config — add/remove without editing shell files.\nEach pairs a model with an [effort level](https://platform.claude.com/docs/en/build-with-claude/effort)\n(`low` → `medium` → `high` → `xhigh` → `max`); `high` is the default that balances quality\nand token spend, `xhigh`/`max` for the heaviest work:\n\n```bash\ncl       # Sonnet, high effort — general default\nclo      # Opus, high effort — complex tasks, server work\nclm      # Opus, xhigh effort — hardest problems, maximum reasoning\nclq      # Sonnet, medium effort — search mode\nclh      # alias table + live model health\n```\n\nAuto-fallback: if a model is down, claudii picks a healthy one automatically.\n\nAgent aliases launch Claude with a specific skill as the system prompt and a model/effort\ntier matched to the workload (read-only Haiku for search, Sonnet for scoped features, Opus\nfor cross-file reasoning and orchestration):\n\n```bash\nclaudii agents                              # list configured agents + their tier\nclaudii config set agents.myagent.skill orchestrate\nclaudii config set agents.myagent.model opus\nclaudii config set agents.myagent.effort high\n```\n\n## Config\n\n`~/.config/claudii/config.json` — created from defaults on first run.\n\n| Key | Default | What it does |\n|-----|---------|--------------|\n| `statusline.bedtime` | `23:00` | Bedtime threshold for the `clock` segment (HH:MM, local time) |\n| `statusline.rate_display` | `used` | Rate-limit mode: `used` or `remaining` (counts down) |\n| `statusline.lines` | _see `config/defaults.json`_ | cc-statusline layout — array of arrays of segment names |\n| `vibemap.enabled` | `false` | Opt-in: log each render to `~/.cache/claudii/vibemap.tsv`. Local-only, no prompt content. |\n| `fallback.enabled` | `true` | Auto-switch alias to a healthy model on outage |\n| `session-dashboard.enabled` | `off` | Show session dashboard above the prompt after `claudii` commands |\n\nAll keys: `claudii config set \u003cTab\u003e` (zsh completion) or `man claudii`.\n\n## License\n\n[GPL-3.0](LICENSE) · [ko-fi](https://ko-fi.com/bmabma)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eHow it works\u003c/summary\u003e\n\n**Shell prompt (ClaudeStatus):** A background subshell fetches `status.claude.com` — components API first, then RSS feed — once every 5 minutes, writes a plain-text cache file, then exits. No persistent process, no network calls in `precmd`.\n\n**Inside Claude Code (CC-Statusline):** The native `statusLine` hook calls `claudii-cc-statusline` on each turn and passes session JSON via stdin. Nothing runs between turns.\n\n**Cost \u0026 cache data:** Read straight from Claude Code's local session JSONL — `claudii cost`, `cache`, `trends`, and `skills-cost` aggregate it with jq. No telemetry, nothing leaves your machine.\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmmmm%2Fclaudii","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmmmm%2Fclaudii","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmmmm%2Fclaudii/lists"}