Skip to content

Claude Code Usage

Comprehensive Claude Code Usage monitoring and analysis tools for tracking token consumption, costs, performance metrics, and usage optimization.

Overview

Claude Code Usage tools provide real-time monitoring, analysis, and optimization capabilities for Claude Code token consumption and API usage. These tools help developers track costs, monitor performance, analyze usage patterns, and optimize their Claude Code workflows through detailed metrics, alerts, and reporting features.

⚠️ Usage Notice: Usage monitoring tools require access to Claude Code session files and API logs. Ensure proper permissions and data privacy compliance when implementing monitoring solutions.

Core Tools

Claude Code Usage Monitor

# Install via npm
npm install -g claude-code-usage-monitor

# Install via pip
pip install claude-code-usage-monitor

# Clone from GitHub
git clone https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor.git
cd Claude-Code-Usage-Monitor
npm install
npm start

ccusage CLI Tool

# Install ccusage
npm install -g ccusage

# Basic usage analysis
ccusage analyze

# Analyze specific session
ccusage analyze --session session-id

# Generate report
ccusage report --format json

# Real-time monitoring
ccusage monitor --live

Installation and Setup

Usage Monitor Setup

# Start usage monitor
claude-usage-monitor --port 3000

# With configuration file
claude-usage-monitor --config config.json

# Docker deployment
docker run -p 3000:3000 -v ~/.claude:/data claude-usage-monitor

VS Code Extension

# Install from marketplace
code --install-extension suzuki0430.ccusage-vscode

# Manual installation
git clone https://github.com/suzuki0430/ccusage-vscode.git
cd ccusage-vscode
npm install
npm run compile
code --install-extension ccusage-vscode-*.vsix

Raycast Extension

# Install Raycast extension
raycast://extensions/nyatinte/ccusage

# Configure API access
raycast://preferences/extensions/ccusage

Monitoring Commands

Real-time Monitoring

CommandDescription
ccusage monitorStart real-time monitoring
ccusage dashboardOpen web dashboard
ccusage statusCheck current usage status
ccusage alertsView active alerts
ccusage liveLive usage stream
ccusage watchWatch specific metrics
ccusage tailTail usage logs

Analysis Commands

CommandDescription
ccusage analyzeAnalyze usage patterns
ccusage reportGenerate usage report
ccusage summaryUsage summary
ccusage trendsUsage trend analysis
ccusage compareCompare time periods
ccusage breakdownDetailed breakdown
ccusage optimizeOptimization suggestions

Configuration

Monitor Configuration

{
  "monitor": {
    "port": 3000,
    "host": "localhost",
    "updateInterval": 1000,
    "retentionDays": 30,
    "enableAlerts": true
  },
  "claude": {
    "sessionPath": "~/.claude/sessions",
    "logPath": "~/.claude/logs",
    "apiEndpoint": "https://api.anthropic.com",
    "trackModels": ["claude-3-sonnet", "claude-3-haiku", "claude-3-opus"]
  },
  "metrics": {
    "trackTokens": true,
    "trackCosts": true,
    "trackPerformance": true,
    "trackErrors": true,
    "granularity": "minute"
  },
  "alerts": {
    "dailyLimit": 10000,
    "costThreshold": 50.00,
    "errorRate": 0.05,
    "responseTime": 5000
  }
}

Cost Tracking

{
  "costTracking": {
    "enabled": true,
    "currency": "USD",
    "models": {
      "claude-3-opus": {
        "inputCost": 0.000015,
        "outputCost": 0.000075
      },
      "claude-3-sonnet": {
        "inputCost": 0.000003,
        "outputCost": 0.000015
      },
      "claude-3-haiku": {
        "inputCost": 0.00000025,
        "outputCost": 0.00000125
      }
    },
    "budgets": {
      "daily": 25.00,
      "weekly": 150.00,
      "monthly": 500.00
    }
  }
}

Dashboard Features

Web Dashboard

# Access dashboard
http://localhost:3000

# Dashboard sections
- Real-time metrics
- Usage graphs
- Cost analysis
- Session history
- Performance metrics
- Alert management
- Export options

Dashboard Components

ComponentDescription
Token CounterReal-time token usage
Cost TrackerCurrent and projected costs
Session BrowserBrowse session history
Performance GraphResponse time metrics
Error MonitorError rate tracking
Usage HeatmapUsage pattern visualization
Alert PanelActive alerts and notifications

Metrics Display

// Dashboard metrics configuration
const dashboardConfig = {
  widgets: [
    {
      type: "counter",
      metric: "tokens_today",
      title: "Today's Tokens",
      format: "number"
    },
    {
      type: "gauge",
      metric: "cost_today",
      title: "Today's Cost",
      format: "currency",
      max: 50
    },
    {
      type: "chart",
      metric: "tokens_hourly",
      title: "Hourly Usage",
      timeRange: "24h"
    },
    {
      type: "table",
      metric: "top_sessions",
      title: "Top Sessions",
      limit: 10
    }
  ],
  refreshInterval: 5000,
  theme: "dark"
};

Usage Analysis

Token Analysis

# Analyze token usage
ccusage tokens --period today
ccusage tokens --period week
ccusage tokens --period month

# Token breakdown by model
ccusage tokens --by-model

# Token efficiency analysis
ccusage tokens --efficiency

# Token usage trends
ccusage tokens --trends

Cost Analysis

# Cost breakdown
ccusage costs --breakdown

# Cost by time period
ccusage costs --period month

# Cost optimization suggestions
ccusage costs --optimize

# Budget tracking
ccusage costs --budget-status

# Cost projections
ccusage costs --forecast

Performance Analysis

# Response time analysis
ccusage performance --response-time

# Throughput analysis
ccusage performance --throughput

# Error rate analysis
ccusage performance --errors

# Performance trends
ccusage performance --trends

# Bottleneck identification
ccusage performance --bottlenecks

Reporting

Report Generation

# Generate daily report
ccusage report --period today --format pdf

# Weekly summary
ccusage report --period week --format html

# Monthly analysis
ccusage report --period month --format json

# Custom date range
ccusage report --from 2025-07-01 --to 2025-07-15

# Detailed breakdown
ccusage report --detailed --include-sessions

Report Formats

FormatDescription
JSONMachine-readable data
CSVSpreadsheet compatible
HTMLWeb-viewable report
PDFPrintable document
MarkdownDocumentation format
ExcelAdvanced spreadsheet

Automated Reporting

{
  "automation": {
    "reports": [
      {
        "name": "daily_summary",
        "schedule": "0 9 * * *",
        "format": "email",
        "recipients": ["team@company.com"],
        "template": "daily_template"
      },
      {
        "name": "weekly_analysis",
        "schedule": "0 9 * * 1",
        "format": "pdf",
        "storage": "s3://reports-bucket/weekly/",
        "template": "weekly_template"
      }
    ]
  }
}

Alerting System

Alert Configuration

{
  "alerts": {
    "rules": [
      {
        "name": "high_token_usage",
        "condition": "tokens_per_hour > 5000",
        "severity": "warning",
        "actions": ["email", "slack"]
      },
      {
        "name": "budget_exceeded",
        "condition": "daily_cost > budget.daily * 0.9",
        "severity": "critical",
        "actions": ["email", "sms", "webhook"]
      },
      {
        "name": "high_error_rate",
        "condition": "error_rate > 0.05",
        "severity": "warning",
        "actions": ["slack"]
      }
    ],
    "channels": {
      "email": {
        "smtp": "smtp.gmail.com",
        "from": "alerts@company.com",
        "to": ["admin@company.com"]
      },
      "slack": {
        "webhook": "https://hooks.slack.com/...",
        "channel": "#claude-alerts"
      },
      "webhook": {
        "url": "https://api.company.com/alerts",
        "method": "POST"
      }
    }
  }
}

Alert Types

AlertTriggerAction
Token LimitDaily token thresholdEmail notification
Cost ThresholdBudget percentageSlack alert
Error RateHigh error percentageWebhook call
PerformanceSlow response timeDashboard highlight
Session LimitMax sessions reachedAuto-cleanup

Optimization Features

Usage Optimization

# Analyze optimization opportunities
ccusage optimize --analyze

# Token efficiency suggestions
ccusage optimize --tokens

# Cost reduction recommendations
ccusage optimize --costs

# Performance improvements
ccusage optimize --performance

# Model selection optimization
ccusage optimize --models

Optimization Strategies

{
  "optimization": {
    "strategies": [
      {
        "name": "model_selection",
        "description": "Choose optimal model for task",
        "rules": [
          {
            "condition": "task_complexity < 0.3",
            "recommendation": "claude-3-haiku"
          },
          {
            "condition": "task_complexity >= 0.7",
            "recommendation": "claude-3-opus"
          }
        ]
      },
      {
        "name": "context_optimization",
        "description": "Optimize context window usage",
        "techniques": [
          "context_compression",
          "selective_history",
          "smart_truncation"
        ]
      }
    ]
  }
}

Integration Examples

CI/CD Integration

# GitHub Actions workflow
name: Claude Usage Monitoring
on:
  schedule:
    - cron: '0 */6 * * *'
jobs:
  monitor:
    runs-on: ubuntu-latest
    steps:
      - name: Check Usage
        run: |
          ccusage analyze --format json > usage.json
          ccusage costs --budget-check
      - name: Upload Report
        uses: actions/upload-artifact@v2
        with:
          name: usage-report
          path: usage.json

Slack Integration

// Slack bot for usage monitoring
const { App } = require('@slack/bolt');

const app = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET
});

app.command('/claude-usage', async ({ command, ack, respond }) => {
  await ack();
  
  const usage = await getClaudeUsage();
  await respond({
    text: `Claude Usage Today:
    Tokens: ${usage.tokens}
    Cost: $${usage.cost}
    Sessions: ${usage.sessions}`
  });
});

Prometheus Integration

# Prometheus configuration
global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'claude-usage'
    static_configs:
      - targets: ['localhost:3000']
    metrics_path: '/metrics'
    scrape_interval: 30s

API Reference

REST API Endpoints

# Get current usage
GET /api/usage/current

# Get usage history
GET /api/usage/history?period=7d

# Get cost breakdown
GET /api/costs/breakdown

# Get performance metrics
GET /api/performance/metrics

# Get alerts
GET /api/alerts

# Export data
GET /api/export?format=json&period=month

WebSocket API

// Real-time usage updates
const ws = new WebSocket('ws://localhost:3000/ws');

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  switch(data.type) {
    case 'usage_update':
      updateUsageDisplay(data.usage);
      break;
    case 'alert':
      showAlert(data.alert);
      break;
    case 'cost_update':
      updateCostDisplay(data.cost);
      break;
  }
};

Troubleshooting

Common Issues

# Monitor not starting
- Check port availability
- Verify session file permissions
- Check configuration file syntax
- Review log files

# Missing data
- Verify Claude Code session path
- Check file permissions
- Ensure proper API access
- Review data retention settings

# Performance issues
- Reduce monitoring frequency
- Optimize database queries
- Clear old data
- Check system resources

Debug Commands

# Enable debug mode
DEBUG=ccusage:* ccusage monitor

# Verbose logging
ccusage --verbose analyze

# Test configuration
ccusage config --test

# Validate data sources
ccusage validate --sources

Resources