skills/tommyxchow/ai/statusline-install

statusline-install

SKILL.md

Statusline Specification

Create a statusline with this exact format:

Model │ ↑Tokens ↓Tokens $Cost │ Duration +Lines -Lines │ Context%

Example output:

Opus │ ↑15k ↓4k $1.23 │ 5m (2m) +156 -23 │ 42%

Data Sources

Field JSON Path
Model .model.display_name
Total duration .cost.total_duration_ms
API duration .cost.total_api_duration_ms
Input tokens .context_window.total_input_tokens
Output tokens .context_window.total_output_tokens
Cost .cost.total_cost_usd
Lines added .cost.total_lines_added
Lines removed .cost.total_lines_removed
Context % .context_window.used_percentage

Formatting Rules

Duration: Show as Xs, Xm, or Xh Ym — total time followed by API time in parentheses (always shown)

  • 5m (2m) = 5 min total, 2 min waiting for API
  • 1h 15m (45m) = 1 hour 15 min total, 45 min waiting for API
  • Empty state: 0s (0s)

Tokens:

  • Raw number if < 1,000 → 850
  • Lowercase k for thousands → 15k
  • Lowercase m with 1 decimal for millions → 1.2m

Cost:

  • 4 decimal places if < $0.01 → $0.0012
  • 2 decimal places if ≥ $0.01 → $0.12

Lines changed: Green for +added, Red for -removed

Model name: Reset/default terminal color (wrap with ${RESET})

Separators: Dim box-drawing character (U+2502)

General styling: Duration, tokens, and cost should be dim

Context % Color Thresholds

Auto-compact triggers at ~78%, so thresholds are calibrated accordingly:

Range Color Meaning
0-49% Green Plenty of room
50-64% Yellow Getting used
65-74% Orange Approaching auto-compact
75%+ Red Near auto-compact trigger

ANSI Color Definitions (Bash)

Define colors using $'...' syntax so escape sequences are interpreted. Use 24-bit true color format \033[38;2;R;G;Bm for precise colors:

DIM=$'\033[38;2;153;153;153m'      # #999999
GREEN=$'\033[38;2;55;166;96m'      # #37A660
YELLOW=$'\033[33m'
ORANGE=$'\033[38;5;208m'
RED=$'\033[38;2;187;106;122m'      # #BB6A7A
RESET=$'\033[0m'

Always wrap colored output with ${COLOR}text${RESET}.

Null Handling

Default to 0 for numeric fields when null/missing:

  • Tokens: 0
  • Cost: $0.0000
  • Duration: 0s (0s)
  • Lines: +0 / -0
  • Context: 0%

Only show -- for non-numeric fields like model name if truly unavailable.

Platform Notes

  • macOS/Linux: Use bash with the ANSI definitions above
  • Windows: Use PowerShell 7+ (pwsh). Use backtick syntax instead:
$Dim = "`e[38;2;153;153;153m"      # #999999
$Green = "`e[38;2;55;166;96m"      # #37A660
$Yellow = "`e[33m"
$Orange = "`e[38;5;208m"
$Red = "`e[38;2;187;106;122m"      # #BB6A7A
$Reset = "`e[0m"

Install to ~/.claude/ and update ~/.claude/settings.json with the statusLine configuration.

Weekly Installs
5
Repository
tommyxchow/ai
First Seen
Jan 24, 2026
Installed on
opencode4
gemini-cli4
codebuddy4
claude-code4
github-copilot4
codex4