Getting Started #
Welcome to ccusage! This guide will help you get up and running with analyzing your coding (agent) CLI usage data.
Prerequisites #
- At least one supported coding CLI installed and used
- Bun 1.3+ recommended for direct execution
Quick Start #
The fastest way to try ccusage is to run it directly without installation:
::: code-group
bunx ccusage
nix run github:ccusage/ccusage -- daily
npx ccusage@latest
pnpm dlx ccusage
bunx -p https://pkg.pr.new/ccusage/ccusage@<pr-number> ccusage --offline
:::
This will show your daily usage report for all detected supported coding CLIs by default.
::: tip Runtime bunx caches the downloaded package, so repeated runs are faster after the first launch. :::
Use a data source namespace when you want the same report focused on one source:
ccusage claude daily
ccusage codex daily
ccusage opencode weekly
ccusage amp session
ccusage pi monthly
ccusage kilo daily
ccusage kimi daily
ccusage qwen daily
Your First Report #
When you run ccusage for the first time, you'll see a table showing detected coding CLI usage by date:
╭──────────────────────────────────────────╮
│ │
│ Coding (Agent) CLI Usage Report - Daily │
│ │
╰──────────────────────────────────────────╯
┌────────────┬────────┬────────────────┬────────┬────────┬────────────┐
│ Date │ Agent │ Models │ Input │ Output │ Cost (USD) │
├────────────┼────────┼────────────────┼────────┼────────┼────────────┤
│ 2026-05-16 │ Claude │ • sonnet-4-5 │ 1,234 │ 15,678 │ $12.34 │
│ 2026-05-16 │ Codex │ • gpt-5.5 │ 890 │ 12,345 │ $18.92 │
└────────────┴────────┴────────────────┴────────┴────────┴────────────┘
Understanding the Output #
Columns Explained #
- Date: The date when an agent was used
- Agent: The coding CLI that generated the usage
- Models: Which models were used
- Input: Number of input tokens sent to the agent/model
- Output: Number of output tokens received from the agent/model
- Cost (USD): Estimated cost based on model pricing
Cache Tokens #
If you have a wide terminal, you'll also see cache token columns:
- Cache Create: Tokens used to create cache entries
- Cache Read: Tokens read from cache (typically cheaper)
Next Steps #
Now that you have your first unified view, explore these features:
- All Sources (Default) - Understand the default unified behavior
- Weekly Usage - Track usage patterns by week
- Monthly Usage - See usage aggregated by month
- Session Usage - Analyze individual conversations
- Configuration - Customize ccusage behavior
- Claude Code - Claude Code-specific setup and features
Common Use Cases #
Monitor Daily Usage #
ccusage daily --since 2026-05-01 --until 2026-05-16
Focus on One Source #
ccusage codex daily
ccusage claude monthly
Use Source-Specific Options #
ccusage claude daily --mode display
ccusage codex daily --speed fast
ccusage opencode weekly
Analyze Sessions #
ccusage session
Export for Analysis #
ccusage monthly --json > usage-data.json
Claude Code Features #
See Claude Code for Claude-specific features such as blocks and statusline integration.
Colors #
ccusage automatically colors the output based on the terminal's capabilities. If you want to disable colors, you can use the --no-color flag. Or you can use the --color flag to force colors on.
Automatic Table Adjustment #
ccusage automatically adjusts its table layout based on terminal width:
- Wide terminals (≥100 characters): Full table with all columns including cache metrics, model names, and detailed breakdowns
- Narrow terminals (<100 characters): Compact view with essential columns only (Date, Models, Input, Output, Cost)
The layout adjusts automatically based on your terminal width - no configuration needed. If you're in compact mode and want to see the full data, simply expand your terminal window.
Troubleshooting #
No Data Found #
If ccusage shows no data, check:
- A supported coding CLI is installed and used - ccusage reads from local usage files
- Data directory exists - Common locations:
- Claude Code:
~/.config/claude/projects/or~/.claude/projects/ - Codex:
${CODEX_HOME:-~/.codex} - OpenCode:
${OPENCODE_DATA_DIR:-~/.local/share/opencode} - Amp:
${AMP_DATA_DIR:-~/.local/share/amp} - Droid:
${DROID_SESSIONS_DIR:-~/.factory/sessions} - Codebuff:
${CODEBUFF_DATA_DIR:-~/.config/manicode} - Hermes Agent:
${HERMES_HOME:-~/.hermes}/state.db - pi-agent:
${PI_AGENT_DIR:-~/.pi/agent/sessions} - Goose: standard Goose data roots or
GOOSE_PATH_ROOT - Kilo:
${KILO_DATA_DIR:-~/.local/share/kilo} - Kimi:
${KIMI_DATA_DIR:-~/.kimi}(also scans~/.kimi-code) - OpenClaw:
${OPENCLAW_DIR:-~/.openclaw}(also scans~/.clawdbot,~/.moltbot,~/.moldbot) - Qwen:
${QWEN_DATA_DIR:-~/.qwen} - GitHub Copilot CLI:
~/.copilot/otel/*.jsonlorCOPILOT_OTEL_FILE_EXPORTER_PATH - Grok Build CLI:
${GROK_HOME:-~/.grok}
- Claude Code:
Custom Data Directory #
If your agent data is in a custom location, set the matching environment variable:
export CLAUDE_CONFIG_DIR="/path/to/your/claude/data"
export CODEX_HOME="/path/to/codex"
export OPENCODE_DATA_DIR="/path/to/opencode"
export AMP_DATA_DIR="/path/to/amp"
export DROID_SESSIONS_DIR="/path/to/factory/sessions"
export CODEBUFF_DATA_DIR="/path/to/manicode"
export HERMES_HOME="/path/to/hermes"
export PI_AGENT_DIR="/path/to/pi/sessions"
export GOOSE_PATH_ROOT="/path/to/goose"
export OPENCLAW_DIR="/path/to/openclaw"
export KILO_DATA_DIR="/path/to/kilo"
export KIMI_DATA_DIR="/path/to/kimi"
export QWEN_DATA_DIR="/path/to/qwen"
export COPILOT_OTEL_FILE_EXPORTER_PATH="/path/to/copilot-otel.jsonl"
export GROK_HOME="/path/to/grok-home"
Each source-specific path variable can also contain comma-separated directories, except GROK_HOME, which takes a single root:
export CODEX_HOME="/path/to/codex,/archive/codex,/path/to/codex-exec-jsonl"
export OPENCODE_DATA_DIR="/path/to/opencode,/archive/opencode"
export AMP_DATA_DIR="/path/to/amp,/archive/amp"
export DROID_SESSIONS_DIR="/path/to/factory/sessions,/archive/factory/sessions"
export CODEBUFF_DATA_DIR="/path/to/manicode,/archive/manicode"
export HERMES_HOME="/path/to/hermes,/archive/hermes"
export PI_AGENT_DIR="/path/to/pi/sessions,/archive/pi/sessions"
export GOOSE_PATH_ROOT="/path/to/goose,/archive/goose"
export OPENCLAW_DIR="/path/to/openclaw,/archive/openclaw"
export KILO_DATA_DIR="/path/to/kilo,/archive/kilo"
export KIMI_DATA_DIR="/path/to/kimi,/archive/kimi"
export QWEN_DATA_DIR="/path/to/qwen,/archive/qwen"
Getting Help #
- Use
ccusage --helpfor command options - Visit our GitHub repository for issues
- Use JSON Output for programmatic usage