Skip to main content

Analytics dashboard for Claude Code sessions

Project description

Claude Code Tracer - Backend

FastAPI-based analytics API for Claude Code sessions. Reads session data from ~/.claude/projects/ and provides endpoints for viewing metrics, messages, tool usage, and subagent activity.

Installation

# Using pip
pip install claude-code-tracer

# Using uv
uv tool install claude-code-tracer

# Run the dashboard
cctracer

Project Structure

src/claude_code_tracer/
├── main.py              # FastAPI app entry point
├── routers/
│   ├── sessions.py      # Session and message endpoints
│   ├── metrics.py       # Aggregated metrics endpoints
│   └── subagents.py     # Subagent-specific endpoints
├── models/
│   ├── entries.py       # Base data models (TokenUsage, ToolUse)
│   └── responses.py     # API response models
└── services/
    ├── database.py      # DuckDB connection, file discovery
    ├── log_parser.py    # JSONL session parsing
    ├── metrics.py       # Cost calculation, pricing
    └── queries.py       # DuckDB SQL queries

API Endpoints

Projects

Endpoint Description
GET /api/projects List all projects with aggregated metrics
GET /api/projects/{hash}/sessions List sessions for a project
GET /api/projects/{hash}/metrics Aggregated metrics across all sessions
GET /api/projects/{hash}/tools Tool usage across all sessions

Sessions

Endpoint Description
GET /api/sessions/{hash}/{id} Session details
GET /api/sessions/{hash}/{id}/messages Paginated messages (supports filtering)
GET /api/sessions/{hash}/{id}/messages/filters Available filter options
GET /api/sessions/{hash}/{id}/messages/{uuid} Single message detail
GET /api/sessions/{hash}/{id}/messages/by-index/{idx} Message by index
GET /api/sessions/{hash}/{id}/metrics Session metrics
GET /api/sessions/{hash}/{id}/tools Tool usage stats
GET /api/sessions/{hash}/{id}/subagents Subagents spawned
GET /api/sessions/{hash}/{id}/skills Skills invoked
GET /api/sessions/{hash}/{id}/code-changes File changes
GET /api/sessions/{hash}/{id}/errors Error entries
GET /api/sessions/{hash}/{id}/commands User commands

Subagents

Endpoint Description
GET /api/subagents/{hash}/{agent_id} Subagent details
GET /api/subagents/{hash}/{agent_id}/tools Subagent tool usage
GET /api/subagents/{hash}/{session_id}/{agent_id} Subagent within session context
GET /api/subagents/{hash}/{session_id}/{agent_id}/messages Subagent messages

Metrics

Endpoint Description
GET /api/metrics/pricing Current model pricing (from LiteLLM)
GET /api/metrics/daily/{hash} Daily metrics for a project
GET /api/metrics/aggregate Global or per-project aggregates

Health

Endpoint Description
GET / API info
GET /health Health check

CLI Usage

cctracer                  # Start server, opens browser at http://localhost:8420
cctracer --port 9000      # Custom port
cctracer --no-browser     # Don't auto-open browser
cctracer --reload         # Enable auto-reload for development

Development Setup

# Install dependencies
uv sync --all-extras

# Run development server
uv run uvicorn claude_code_tracer.main:app --reload --port 8420

# Or use the CLI with reload
uv run cctracer --reload

# API docs at http://localhost:8420/docs

Environment Variables

Variable Default Description
CLAUDE_DIR ~/.claude Claude data directory

Development

# Linting and formatting
uv run ruff check .
uv run ruff format .

# Type checking
uv run mypy src/

# Run tests
uv run pytest

Tech Stack

  • FastAPI - Web framework
  • DuckDB - In-memory SQL for querying JSONL files
  • Pydantic - Data validation and serialization
  • orjson - Fast JSON parsing
  • httpx - HTTP client for fetching pricing data

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_code_tracer-0.1.2.tar.gz (319.4 kB view details)

Uploaded Source

Built Distribution

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

claude_code_tracer-0.1.2-py3-none-any.whl (331.2 kB view details)

Uploaded Python 3

File details

Details for the file claude_code_tracer-0.1.2.tar.gz.

File metadata

  • Download URL: claude_code_tracer-0.1.2.tar.gz
  • Upload date:
  • Size: 319.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for claude_code_tracer-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3f414ba30eb7859cfd7c43c1cb91d96e40cdf99a2a47006c06fc78d785331f20
MD5 7aa199299c2d13fc7877f5768c854588
BLAKE2b-256 9cac4ccecf3bbb6680ed0122a8615bcfa4458c9e840753dcd986eda522aced0e

See more details on using hashes here.

File details

Details for the file claude_code_tracer-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: claude_code_tracer-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 331.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for claude_code_tracer-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 47306bb955488c57d7cb55b92f563691ca675f3170591dad0ec3051880d7d307
MD5 e93bc50b58c9933dc51fbb0aaa0b4ac0
BLAKE2b-256 e8d1b1ad9fe7a9a38c0049e17736049aff01a0fd0ef14e7e5014317ed59d31f3

See more details on using hashes here.

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