Skip to main content

ClaudeWatch

Experimental / Alpha — This is a personal project I built for my own workflow. It works for me but is rough around the edges. macOS only. Contributions and feedback welcome, but expect breaking changes.

A macOS menubar app that shows your Claude Code rate limit usage and active sessions at a glance.

menubar example

What it shows

Menubar (always visible):

  • Rate limit usage with smart burn-rate color indicator
  • Countdown to 5-hour window reset
  • Claude system status alerts (from status.anthropic.com)

Dropdown (click to expand):

  • 5-hour and 7-day rate limit details
  • Active sessions grouped by project with T3 thread titles
  • Per-session details (model, context, cost, tokens)
  • Live Claude system status (clickable → status.anthropic.com)

Supported clients

  • Claude Code CLI — full status via statusline hook
  • Claude Code VSCode extension — session detection
  • T3 Code — thread titles and session grouping via T3's local database

Other Claude clients (claude.ai web, Claude desktop app) are not tracked — they don't go through Claude Code.

Limitations

  • macOS only — uses native menubar via PyObjC/rumps
  • Claude Max subscription — rate limit data comes from the OAuth usage API, which requires a Claude Max account
  • Experimental — built for personal use, lightly tested, expect bugs
  • ~55MB RAM — Python + PyObjC baseline; a Swift rewrite would be much lighter

Install

pip

pip install claudewatch

uv

uv tool install claudewatch

From source

git clone https://github.com/hendrickmelo/claudewatch.git
cd claudewatch
uv sync
uv run claudewatch

Setup

After installing, set up the statusline hook so Claude Code sends status data:

# Install the hook (auto-detects existing statusline)
claudewatch install

If you already have a custom statusline, chain it:

claudewatch install --chain ~/.claude/statusline.sh

Run

claudewatch

The app appears in your macOS menubar.

How it works

ClaudeWatch pulls data from multiple sources:

  1. OAuth usage API — polled every minute for account-wide rate limits (5-hour and 7-day)
  2. Statusline hook — writes per-session status files on each Claude Code interaction (context %, cost, lines changed)
  3. Transcript files — reads ~/.claude/projects/ JSONL files for session activity and token counts
  4. T3 SQLite database — reads ~/.t3/userdata/state.sqlite for thread titles and session mapping
  5. Status page — polls status.anthropic.com for incident alerts

Rate limits are account-wide, so data from any session reflects your total usage across all Claude Code clients.

Uninstall

claudewatch uninstall          # remove the statusline hook
pip uninstall claudewatch      # or: uv tool uninstall claudewatch

Requirements

  • macOS
  • Python 3.10+
  • Claude Code installed
  • jq (for the statusline hook)

Metadata

Release files for claudewatch 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for claudewatch 0.1.0
File Size Uploaded
claudewatch-0.1.0.tar.gz 14.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for claudewatch 0.1.0
File Interpreter ABI Platform
claudewatch-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.2 kB

Release files / claudewatch-0.1.0.tar.gz

Download URL claudewatch-0.1.0.tar.gz
Size 14.3 kB
Tags Source
SHA-256 checksum
How to use checksums
87dcce7c8a15fdf89fc0fa737a90872de64bf05b2526449350561c13d56321b5
BLAKE2b-256 checksum
How to use checksums
2c0ba7ca143e9e50cc9df3e31eeb11a93d03674f514e4601242a91037139aa08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / claudewatch-0.1.0-py3-none-any.whl

Download URL claudewatch-0.1.0-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a737e7ad388f9e0652ebd0e923038e23e8586cf537982aed9175cd2594bc7ab8
BLAKE2b-256 checksum
How to use checksums
5a395cd3435d732b86704a7f792eb77d5f30f85dd048da37eaa8c8a77ef2c66b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page