Skip to content

Releases: agamarora/utils

v0.2.3

30 Mar 14:54

Choose a tag to compare

v0.2.2

30 Mar 13:59

Choose a tag to compare

What's changed in v0.2.2

Bug fix

  • Proxy fallback now works when the OAuth API fails. Previously, if the API hit a 429, token expiry, or network error, the dashboard froze at the last API-fetched usage percentage — even though the embedded proxy was capturing fresh rate-limit data from every request. The proxy is now used as a live fallback the moment the API becomes unavailable.

Housekeeping

  • Cargo.toml versions synced to match git release tags (was 0.1.0, now 0.2.2)
  • Fixed JSONL filename typo in README
  • Removed stale Python-era DESIGN.md and ROADMAP.md

Full Changelog: v0.2.1...v0.2.2

v0.2.1

30 Mar 11:40

Choose a tag to compare

What's changed in v0.2.1 — Claude panel UX overhaul

Improvements

  • Merged Claude panel — network speeds and status indicators (P●/C●) now live inside the Claude Usage panel instead of a separate Network panel. One panel for everything Claude-related
  • ETA to cap — shows estimated time until you hit your usage limit based on pace tracking (e.g., "ETA ~2h 15m to cap")
  • Pace indicator — rising/steady/falling arrows show your usage trend at a glance
  • Fixed 0% flash — the dashboard no longer briefly shows 0% utilization on startup before real data loads

Full Changelog: v0.2.0...v0.2.1

v0.2.0

30 Mar 11:12

Choose a tag to compare

What's changed in v0.2.0 — Rust rewrite

Complete rewrite from Python to Rust. Same dashboard, 10x faster startup, lower memory usage, single binary with no runtime dependencies.

Highlights

  • Full Rust rewrite — replaced Python/Rich/psutil stack with Rust/ratatui/sysinfo. Single self-contained binary, no Python needed
  • Embedded reverse proxy — sits between Claude Code and the Anthropic API, captures rate-limit headers in real time. No polling, no scraping
  • --doctor interactive setup — enable/disable proxy, check health, configure settings, then launch dashboard
  • 5 safety layers for the proxy — crash recovery, watchdog, lockfile, signal handlers, settings.json backup. If the proxy crashes, Claude Code falls back to the direct API
  • WMI/LHM temperature support — auto-detects LibreHardwareMonitor for real CPU frequency and temps
  • GitHub Actions CI — automated release workflow builds and publishes exe on tag push

Dashboard panels

  • Claude usage: 5h/7d utilization bars with reset timers and pace indicator
  • CPU sparkline with real frequency (via LHM)
  • GPU utilization, VRAM, temperature (NVIDIA NVML + LHM fallback)
  • Memory (RAM + swap)
  • Disk I/O with active % (Windows PDH API)
  • Network speeds (current, average, peak)
  • Temperatures
  • Top processes by CPU and RAM

Under the hood

  • 2-crate workspace: luna-common (shared types) + luna-monitor (dashboard + proxy)
  • 63 tests passing
  • OAuth token refresh with exponential backoff (30s → 60s → 120s → 300s)
  • Disk cache for usage data survives proxy restarts
  • Atomic settings.json writes (temp file + rename)

Full Changelog: v0.1.0...v0.2.0

luna-monitor v0.1.0

29 Mar 13:55

Choose a tag to compare

luna-monitor — Claude Code Developer Dashboard

Your system + Claude Code usage in one terminal. The dashboard every Claude Code developer needs running in their second tab.

Install

pip (requires Python 3.10+):

pip install luna-monitor

Standalone (no Python needed):
Download luna-monitor.exe below and run it.

From source:

git clone https://github.com/agamarora/utils.git
cd utils/luna-monitor
pip install --user -e .
luna-monitor

What's included

  • Live Claude Code session (5h) and weekly (7d) usage bars via embedded reverse proxy
  • Usage burndown waveform with time-to-limit prediction
  • CPU waveform, memory, GPU, disk, network, temperatures
  • --doctor interactive setup wizard
  • 5 safety layers: crash recovery, watchdog, lockfile, signal handlers, settings.json backup
  • 327 tests passing