Function bodies 3 total
meter function · python · L22-L52 (31 LOC)statusline.py
def meter(usage, label, width=12, ctx_mode=False):
"""Usage meter: starts at 0%, fills up as usage increases."""
if not isinstance(usage, (int, float)):
return f"{CAT_DEFAULT} {label}:---"
if ctx_mode:
if usage < 30:
color = GREEN
cat = CAT_HAPPY
elif usage < 50:
color = YELLOW
cat = CAT_NORMAL
else:
color = RED
cat = CAT_SAD
else:
if usage < 50:
color = GREEN
cat = CAT_HAPPY
elif usage < 80:
color = YELLOW
cat = CAT_NORMAL
else:
color = RED
cat = CAT_SAD
clamped = max(0, min(usage, 100))
filled = int(clamped / 100 * width)
bar = "\u2588" * filled + "\u2591" * (width - filled)
return f"{cat} {color}{label}:{usage:.0f}% {bar}{RESET}"countdown function · python · L55-L69 (15 LOC)statusline.py
def countdown(resets_at):
"""Calculate time remaining until rate limit reset."""
if not isinstance(resets_at, (int, float)):
return ""
try:
diff = resets_at - time.time()
if diff <= 0:
return ""
h = int(diff // 3600)
m = int((diff % 3600) // 60)
if h > 0:
return f"{h}h{m:02d}m"
return f"{m}m"
except Exception:
return ""main function · python · L72-L143 (72 LOC)statusline.py
def main():
try:
data = json.load(sys.stdin)
except (json.JSONDecodeError, ValueError):
print("cat-claude-statusline: waiting for data...")
return
# --- Extract fields safely (per-field protection) ---
def safe_dict(val):
return val if isinstance(val, dict) else {}
ctx = safe_dict(data.get("context_window"))
used = ctx.get("used_percentage")
rl = safe_dict(data.get("rate_limits"))
five_h = safe_dict(rl.get("five_hour"))
seven_d = safe_dict(rl.get("seven_day"))
five_h_used = five_h.get("used_percentage")
seven_d_used = seven_d.get("used_percentage")
five_h_resets = five_h.get("resets_at")
seven_d_resets = seven_d.get("resets_at")
model = safe_dict(data.get("model"))
model_name = model.get("display_name") if isinstance(model.get("display_name"), str) else ""
cost_data = safe_dict(data.get("cost"))
total_cost = cost_data.get("total_cost_usd")
workspace = safe_dict(data.get("worksp