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.3.tar.gz (319.5 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.3-py3-none-any.whl (331.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: claude_code_tracer-0.1.3.tar.gz
  • Upload date:
  • Size: 319.5 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.3.tar.gz
Algorithm Hash digest
SHA256 1400a5dbcc0cb2bf30e8794698059cbedada921f9b79ee85fd94793fca3477c1
MD5 a561f520cf42c5ffa12dafd36617e363
BLAKE2b-256 3ceaf3100e0881629ca45be4953cd9c6dd6962663cfd689c0e64c9b181a79d42

See more details on using hashes here.

File details

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

File metadata

  • Download URL: claude_code_tracer-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e2df02342ececfeee92892000415dc2fc12969e59ef4992b7fb536bfe862e8a8
MD5 1e4540c7f546caa174b27443e2895227
BLAKE2b-256 04c5378b44916425f2834c88fab075afffadc5810ae993bccf9d9bc27453fecb

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