Environment Variables
ccusage supports several environment variables for configuration and customization. Environment variables provide a way to configure ccusage without modifying command-line arguments or configuration files.
Agent Data Directories
ccusage detects supported data source files from conventional locations by default. Set these variables when your data lives somewhere else. Directory variables can be one directory or a comma-separated list of directories; the Copilot variable points at one explicit JSONL export file:
| Variable | Agent | Default |
|---|---|---|
CLAUDE_CONFIG_DIR | Claude Code | ~/.config/claude and ~/.claude |
CODEX_HOME | Codex | ~/.codex |
OPENCODE_DATA_DIR | OpenCode | ~/.local/share/opencode |
AMP_DATA_DIR | Amp | ~/.local/share/amp |
PI_AGENT_DIR | pi-agent | ~/.pi/agent/sessions |
COPILOT_OTEL_FILE_EXPORTER_PATH | Copilot CLI | Explicit .jsonl file |
GEMINI_DATA_DIR | Gemini CLI | ~/.gemini/tmp |
Example:
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 PI_AGENT_DIR="/path/to/pi/sessions,/archive/pi/sessions"
export COPILOT_OTEL_FILE_EXPORTER_PATH="/path/to/copilot-otel.jsonl"
export GEMINI_DATA_DIR="/path/to/gemini/tmp,/archive/gemini/tmp"
ccusage dailyEmpty entries, directories that do not exist, and missing explicit files are skipped. Duplicate paths are read once.
CLAUDE_CONFIG_DIR
Specifies where ccusage should look for Claude Code data. See Claude Code for default paths, multiple-directory behavior, and Claude-specific examples.
LOG_LEVEL
Controls the verbosity of log output.
Log Levels
| Level | Value | Description | Use Case |
|---|---|---|---|
| Silent | 0 | Errors only | Scripts, piping output |
| Warn | 1 | Warnings and errors | CI/CD environments |
| Log | 2 | Normal logs | General use |
| Info | 3 | Informational logs (default) | Standard operation |
| Debug | 4 | Debug information | Troubleshooting |
| Trace | 5 | All operations | Deep debugging |
Usage Examples
# Silent mode - only show results
LOG_LEVEL=0 ccusage daily
# Warning level - for CI/CD
LOG_LEVEL=1 ccusage monthly
# Debug mode - troubleshooting
LOG_LEVEL=4 ccusage session
# Trace everything - deep debugging
LOG_LEVEL=5 ccusage blocksPractical Applications
Clean Output for Scripts
# Get clean JSON output without logs
LOG_LEVEL=0 ccusage daily --json | jq '.summary.totalCost'CI/CD Pipeline
# Show only warnings and errors in CI
LOG_LEVEL=1 ccusage daily --instancesDebugging Issues
# Maximum verbosity for troubleshooting
LOG_LEVEL=5 ccusage daily --debugPiping Output
# Silent logs when piping to other commands
LOG_LEVEL=0 ccusage monthly --json | python analyze.pyAdditional Environment Variables
CCUSAGE_OFFLINE
Force offline mode by default:
export CCUSAGE_OFFLINE=1
ccusage daily # Runs in offline modeNO_COLOR
Disable colored output (standard CLI convention):
export NO_COLOR=1
ccusage daily # No color formattingFORCE_COLOR
Force colored output even when piping:
export FORCE_COLOR=1
ccusage daily | less -R # Preserves colorsSetting Environment Variables
Temporary (Current Session)
# Set for single command
LOG_LEVEL=0 ccusage daily
# Set for current shell session
export CODEX_HOME="/path/to/codex,/archive/codex"
ccusage dailyPermanent (Shell Profile)
Add to your shell configuration file:
Bash (~/.bashrc)
export CODEX_HOME="$HOME/.codex"
export LOG_LEVEL=3Zsh (~/.zshrc)
export CODEX_HOME="$HOME/.codex"
export LOG_LEVEL=3Fish (~/.config/fish/config.fish)
set -x CODEX_HOME "$HOME/.codex"
set -x LOG_LEVEL 3PowerShell (Profile.ps1)
$env:CODEX_HOME = "$env:USERPROFILE\.codex"
$env:LOG_LEVEL = "3"Precedence
Environment variables have lower precedence than command-line arguments but higher than configuration files:
- Command-line arguments (highest priority)
- Environment variables
- Configuration files
- Built-in defaults (lowest priority)
Example:
# Environment variable sets offline mode
export CCUSAGE_OFFLINE=1
# But command-line argument overrides it
ccusage daily --no-offline # Runs in online modeDebugging
To see which environment variables are being used:
# Show all environment variables
env | grep -E "CLAUDE|CODEX|OPENCODE|AMP|PI_AGENT|COPILOT|GEMINI|CCUSAGE|LOG_LEVEL"
# Debug mode shows environment variable usage
LOG_LEVEL=4 ccusage daily --debugRelated Documentation
- Command-Line Options - CLI arguments and flags
- Configuration Files - JSON configuration files
- Configuration Overview - Complete configuration guide