{
  "markdown": "# claude-telemetry\n\n[![version](https://img.shields.io/github/v/release/jeongph/claude-telemetry?label=version&color=blue)](https://github.com/jeongph/claude-telemetry/releases)\n[![license](https://img.shields.io/github/license/jeongph/claude-telemetry?color=lightgrey)](LICENSE)\n\nCustomizable multi-line status line for [Claude Code](https://claude.com/claude-code).\n\n**\"The status line you can trust\"** — accurate, lightweight, never breaks.\n\n<p align=\"center\">\n  <img width=\"810\" height=\"616\" alt=\"image\" src=\"https://github.com/user-attachments/assets/3eb1c1a5-a8b0-48ef-8f26-d6b691374a33\" />\n</p>\n\n## Installation\n\n### Via marketplace (recommended)\n\n1. Add the [jeongph/claude-plugins](https://github.com/jeongph/claude-plugins) marketplace (one-time):\n\n```\n/plugin marketplace add jeongph/claude-plugins\n```\n\n2. Install:\n\n```\n/plugin install claude-telemetry@jeongph-claude-plugins\n```\n\n3. Run interactive setup:\n\n```\n/claude-telemetry:setup\n```\n\nThis downloads the Go binary, configures your preset, and sets up the status line.\n\n### Manual setup\n\n1. Download the binary for your platform from [Releases](https://github.com/jeongph/claude-telemetry/releases/latest):\n\n```bash\nmkdir -p ~/.claude/statusline/bin\ncurl -fsSL \"https://github.com/jeongph/claude-telemetry/releases/latest/download/claude-telemetry-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')\" \\\n  -o ~/.claude/statusline/bin/claude-telemetry\nchmod +x ~/.claude/statusline/bin/claude-telemetry\n```\n\n2. (Optional) Copy the example config:\n\n```bash\ncp claude-telemetry/config.example.json ~/.claude/statusline/config.json\n```\n\n3. Add to `~/.claude/settings.json`:\n\n```json\n\"statusLine\": {\n  \"type\": \"command\",\n  \"command\": \"bash /path/to/claude-telemetry/scripts/run.sh\"\n}\n```\n\n4. Restart Claude Code\n\n## Features\n\n- **Remaining % display** — all bars show remaining capacity (like a battery), not usage\n- **Preset modes** — compact (1 line), normal (2 lines), detailed (3 lines)\n- **Auto user detection** — OAuth users see rate limits, API key users see cost\n- **Git integration** — folder:branch, ↑push/↓pull, changes (+/-), untracked (?N), stash (≡N), worktrees (⎇N)\n- **Effort level** — live reasoning effort (low/medium/high/xhigh/max) shown beside the model name, reflects `/effort` changes (Claude Code ≥ 2.1.141)\n- **PR badge** — open PR number and review state for the current branch, no `gh` CLI needed (Claude Code ≥ 2.1.145)\n- **Session name** — session title shown as `[name]`, auto-truncated to 20 columns (off by default — Claude Code already shows the title in its UI; enable via `sections` or the detailed preset)\n- **User identity** — logged-in email + plan (`Max`/`Pro`/`Team`) on a dedicated line, read from `~/.claude.json` (not in the status line JSON). Off by default for privacy — enable via `sections.user`\n- **Rate limit countdown** — remaining time until reset with progress bar\n- **Dynamic color thresholds** — green/yellow/red based on remaining %, customizable via config\n- **Graceful degradation** — loading (···), partial failure (—), error messages instead of silent blank\n- **Progress bars** — ▰▱ visualization, color-coded green → yellow → red\n- **Adaptive width** — auto-drops lower priority sections on narrow terminals\n- **i18n** — English, Korean, Japanese, Chinese (auto-detected)\n- **Auto binary sync** — a SessionStart hook keeps the binary matched to the plugin version (pinned download + sha256 verification)\n- **Self-cleanup on uninstall** — if you uninstall the plugin, the status line removes its own settings entry and files within a minute (setup-managed installs only)\n- **NO_COLOR support** — respects `NO_COLOR` environment variable\n- **Go binary** — single binary, no runtime dependencies, sub-10ms rendering\n- **v1 fallback** — existing jq-based users keep working until they upgrade\n\n## Sections\n\n| Line | Section | Description |\n|------|---------|-------------|\n| 1 | Session | `[name]` session title (max 20 cols, detailed preset or opt-in) |\n| 1 | Model | Model name with effort level beside it (`Fable 5 · xhigh`), color-coded low→max (toggle via `effort` key) |\n| 1 | Elapsed | Session duration (Nh Nm format) |\n| 1 | Git | folder:branch ↑push ↓pull +add/-del ?untracked ≡stash ⎇worktrees |\n| 1 | PR | Open PR number + review state ✓/●/✗/◌ (shown only when a PR is open) |\n| 2 | Context | ◆ Remaining context window % with progress bar |\n| 2 | Remaining | ◆ 5h / 7d remaining % with reset countdown (OAuth, auto-detected) |\n| 2 | Cost | Session cost in USD (API key, auto-detected) |\n| 2 | Lines | Session lines added/removed |\n| 2 | API Duration | Time spent waiting for API responses |\n| 2 | Tokens | Tokens currently in the context window (in/out) |\n| 3 | Agent | Active agent name (shown only when active) |\n| 3 | Vim | Vim mode indicator (shown only when active) |\n| 3 | Thinking | ✦ extended thinking indicator (shown only when enabled) |\n| 4 | User | ◉ logged-in email + plan on a dedicated line (off by default, opt-in) |\n\nLine 3 appears only when agent, vim mode, or thinking indicator is active. Line 4 appears only when the `user` section is enabled.\n\n> **Note:** Since Claude Code 2.1.132, token counts reflect what is currently in the context window, not cumulative session totals.\n\n### Git status symbols\n\nThe Git section renders as `folder:branch` followed by status markers. Each marker appears **only when its count is non-zero**, so a clean repo shows just `folder:branch`.\n\n| Symbol | Meaning | Color |\n|--------|---------|-------|\n| `folder:branch` | Current directory and current branch | white `:` magenta |\n| `↑N` | N commits ahead of upstream (waiting to push) | yellow |\n| `↓N` | N commits behind upstream (waiting to pull) | cyan |\n| `+N/-N` | Lines added / deleted vs. HEAD (staged + unstaged) | green / red |\n| `?N` | N untracked files | yellow |\n| `≡N` | N stash entries | magenta |\n| `⎇N` | N linked worktrees (excludes the main worktree) | cyan |\n\n> Example: `lighthouse:main ↑1 +12/-3 ?2 ⎇1` means branch `main` is 1 commit ahead of upstream, has 12 added / 3 deleted lines, 2 untracked files, and 1 linked worktree.\n\n## Setup\n\nRun `/claude-telemetry:setup` in Claude Code for interactive configuration — it detects your language, downloads the binary, and walks you through preset selection.\n\nTo adjust the display later — preset, which sections show, and how detailed the bars are — run `/claude-telemetry:config` (an interactive wizard, no JSON editing needed).\n\nOr edit `~/.claude/statusline/config.json` directly:\n\n```json\n{\n  \"preset\": \"normal\",\n  \"language\": \"en\",\n  \"colors\": true,\n  \"bar_width\": 5,\n  \"separator\": \" │ \",\n  \"user_type\": \"auto\",\n  \"sections\": {},\n  \"thresholds\": {\n    \"context_warn\": 50,\n    \"context_danger\": 20,\n    \"cost_warn\": 1.0,\n    \"cost_danger\": 5.0\n  }\n}\n```\n\n### Presets\n\n| Preset | Lines | Sections |\n|--------|-------|----------|\n| `compact` | 1 | Model · Effort, Context, Remaining/Cost |\n| `normal` | 2 | Model · Effort, Elapsed, Git, PR, Context, Remaining/Cost, Agent, Vim |\n| `detailed` | 3 | All sections enabled |\n\n### Bar width\n\n`bar_width` controls the progress bars on Context and Remaining:\n\n| Value | Rendering |\n|-------|-----------|\n| `0` | `◆ Context 54%` — numbers only, no bar |\n| `5` | `◆ Context ▰▰▰▱▱ 54%` — default |\n| `10` | `◆ Context ▰▰▰▰▰▱▱▱▱▱ 54%` — most detailed |\n\nAllowed range is `0` or `3`–`10` (`1`–`2` are widened to `3`).\n\n### Section overrides\n\nUse `sections` to override preset defaults:\n\n```json\n{\n  \"preset\": \"normal\",\n  \"sections\": {\n    \"tokens\": true,\n    \"lines\": true\n  }\n}\n```\n\n### User section (email + plan)\n\nThe `user` section shows your logged-in email and plan on a dedicated line (e.g. `◉ you@example.com · Max`). It is **off by default** — enable it explicitly:\n\n```json\n{\n  \"sections\": {\n    \"user\": true\n  }\n}\n```\n\n- **Source:** this info is not part of the status line JSON. It is read from `~/.claude.json` (`oauthAccount`), an internal Claude Code file, and parsed defensively — if the file or fields are missing, the section is silently skipped.\n- **Privacy:** the status line is visible in screenshots and screen shares. Keep it off unless you want your email on screen at all times.\n- **Plan labels:** `claude_max` → `Max`, `claude_pro` → `Pro`, `claude_team` → `Team`, `claude_enterprise` → `Enterprise`. Unknown plans are omitted (email only).\n\n### Thresholds\n\nColor changes at these remaining percentages (customizable):\n\n| Remaining | Color |\n|-----------|-------|\n| > 50% | Green |\n| 21–50% | Yellow |\n| ≤ 20% | Red |\n\n### Project-level config\n\nCreate `.claude-statusline.json` in your project root to override global settings per project:\n\n```json\n{\n  \"preset\": \"detailed\"\n}\n```\n\n## Removal\n\n```\n/claude-telemetry:remove\n```\n\nIf you uninstall the plugin without running remove first, the status line detects the missing plugin and cleans itself up automatically within about a minute (settings entry removed from the next session). This applies to installs managed by `/claude-telemetry:setup`; manual installs are never touched.\n\n## Upgrading\n\n- **Plugin users (v2.4.0+):** update the plugin (`/plugin` → Update), then restart Claude Code. The SessionStart hook syncs the binary to the plugin version automatically.\n- **Plugin users (older):** run `/claude-telemetry:setup` once after updating the plugin — it downloads the matching binary and migrates your settings to the version-independent launcher path.\n- **Manual installs:** re-run the curl command from Manual setup; the binary is all that matters.\n\n## Upgrading from v1\n\nv2 is backward-compatible. Existing v1 config files work as-is. Run `/claude-telemetry:setup` to download the Go binary — your existing settings are preserved.\n\nIf you don't run setup, the v1 jq-based rendering continues to work via the built-in fallback.\n\n## Requirements\n\n- Claude Code\n- `git` (optional, for branch/changes display)\n- Claude Code ≥ 2.1.141 for Effort, ≥ 2.1.145 for PR badge (older versions simply hide these sections)\n\n## License\n\nMIT\n",
  "bytes": 10003,
  "sha": "8572946a0bb208661cc167fcf6dcd994572b6b1bb23404308beaa60ebe6a3db9",
  "repo_slug": "jeongph/claude-telemetry",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_jeongph_claude_telemetry_claude_telemetr_a69ee037/readme"
}