Skip to main content

Claude Code usage dashboard across multiple devices

Project description

claude-multi-usage (cmu)

CLI dashboard for Claude Code usage tracking across multiple devices.

Parses local ~/.claude data and displays usage stats in your terminal — sessions, tokens, projects, models, and more. Supports multi-device sync via a central server.

Install

Homebrew (macOS)

brew tap hunknownn/tap
brew install claude-multi-usage

pipx

pipx install claude-multi-usage

Usage

cmu                    # Full dashboard
cmu today              # Today's usage
cmu projects           # Usage by project
cmu models             # Usage by model
cmu cost               # Monthly cost breakdown
cmu dashboard -d 30    # Last 30 days
cmu dashboard --all    # All devices (via sync server)

claude-multi-usage also works as a command alias.

Multi-Device Sync

Collect usage data from multiple machines into a central server.

Server Setup

Choose one of the following:

Docker (recommended)

docker run -d -p 8000:8000 -v cmu-data:/data ghcr.io/hunknownn/claude-multi-usage:latest

Kubernetes

kubectl create namespace cmu-server
kubectl apply -k https://github.com/hunknownn/claude-multi-usage/deploy/k8s/ -n cmu-server

To expose via Ingress (optional):

curl -O https://raw.githubusercontent.com/hunknownn/claude-multi-usage/main/deploy/k8s/ingress.example.yaml
# Edit the file — replace your-domain.example.com with your domain
kubectl apply -f ingress.example.yaml -n cmu-server

pip

pip install claude-multi-usage[server]
cmu server start --host 0.0.0.0 --port 8000

Client Setup

# Set server URL and email (once per device)
cmu config --server https://your-server.com
cmu config --email your@email.com

# Sync usage data
cmu sync

# View all your devices' usage (filtered by email)
cmu dashboard --all

Email is used to isolate data between users. Only devices with the same email can see each other's data. Local commands (cmu dashboard, cmu today, cmu cost, etc.) work without email.

Auto Sync

Add to ~/.zshrc to sync automatically when using Claude:

cc() {
    cmu sync --quiet &>/dev/null &
    command claude "$@"
    cmu sync --quiet &>/dev/null &
}

Dashboard Preview

── Claude Usage Dashboard  ──  my-macbook.local  ──  2026-03-07 ──

╭──────────── Summary ────────────╮  ╭────────── Model Usage ──────────╮
│  Hostname       my-macbook      │  │  Model           Output  Cache  │
│  Total Sessions 132             │  │  claude-opus-4-6  780K   519M   │
│  Total Messages 35,330          │  │  claude-sonnet    867K   424M   │
│  Output Tokens  1.6M            │  ╰─────────────────────────────────╯
│  Estimated Cost $1,548         │
╰─────────────────────────────────╯

╭──────────────── Daily Tokens (last 14 days) ─────────────────╮
│  02-23  ████░░░░░░░░░░░░░░░░   60.3K  (1233 msgs, 9 sess)   │
│  02-24  █░░░░░░░░░░░░░░░░░░░   24.8K  (909 msgs, 4 sess)    │
│  03-03  ███████░░░░░░░░░░░░░   96.6K  (633 msgs, 4 sess)    │
╰──────────────────────────────────────────────────────────────╯

╭──────────────── Hourly Sessions (all time) ──────────────────╮
│  00 01 02 .. 09 10 .. 16 17 18 19 20 21 22 23               │
│  ▒▒ ░░ ░░    ░░ ▒▒    ▓▓ ▒▒ ░░ ▒▒ ▓▓ ▓▓ ██ ▓▓               │
╰──────────────────────────────────────────────────────────────╯

╭──────────────── Top Projects ────────────────────────────────╮
│  1. apr-backend-assignment   45 sessions   2026-02-10       │
│  2. wemade-assignment        23 sessions   2026-03-04       │
│  3. url-jarvis               17 sessions   2026-03-07       │
╰──────────────────────────────────────────────────────────────╯

Cost Estimation

Calculates estimated API costs using LiteLLM's pricing DB (2,600+ models). Pricing is auto-fetched and cached locally for 24 hours.

  • Supports tiered pricing (200K+ token extended context)
  • Subagent (haiku) usage included
  • Deduplicates streaming message blocks
  • Falls back to last cached pricing when offline
╭──────────── Cost Breakdown (by month) ────────────╮
│  Month    Model                   Cost             │
│  2026-02  claude-opus-4-6      $236.27             │
│           claude-sonnet-4-5     $50.66             │
│           subtotal             $286.93             │
│                                                    │
│  2026-03  claude-opus-4-6       $30.21             │
│           subtotal              $30.21             │
│                                                    │
│  Total                         $317.14             │
╰────────────────────────────────────────────────────╯

How It Works

Reads local Claude Code data from ~/.claude/:

  • stats-cache.json — daily activity, model tokens, hourly counts
  • projects/**/*.jsonl — session files per project (including subagents)

No API keys required. Local data stays local unless you opt in to sync.

Roadmap

  • Multi-device sync via central server (#2)
  • Accurate cost estimation with incremental caching (#5)
  • Email-based user isolation for multi-device data (#8)
  • Web dashboard (#3)
  • Homebrew support

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_multi_usage-0.6.5.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_multi_usage-0.6.5-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file claude_multi_usage-0.6.5.tar.gz.

File metadata

  • Download URL: claude_multi_usage-0.6.5.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for claude_multi_usage-0.6.5.tar.gz
Algorithm Hash digest
SHA256 d5711bd7fd23db1da5bae2f645d7885ecc8819a86c5098020c4b6b7019e8d647
MD5 7d48e5a0328e1e670397d14a1f09daf6
BLAKE2b-256 6eec5d2a1ba237bdc1c336824af8d2e4be32b3fdaafa65cfb38c3616de45c8c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_multi_usage-0.6.5.tar.gz:

Publisher: release.yml on hunknownn/claude-multi-usage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file claude_multi_usage-0.6.5-py3-none-any.whl.

File metadata

File hashes

Hashes for claude_multi_usage-0.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a25477ac88f8952e5d36f50aa10fb62d1ef952e7cc2ae9ee047dc532e9ced42c
MD5 05b1dbdaaf706455bc327c6f0250fef2
BLAKE2b-256 7bf5e42b40c38be9aea5df127d477ee3facbc32e5c39d26f6716b40498d2b2e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_multi_usage-0.6.5-py3-none-any.whl:

Publisher: release.yml on hunknownn/claude-multi-usage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page