analyze-usage
SKILL.md
AI Coding Usage
Unified usage analyzer for Claude Code and Cursor. Loads logs into DuckDB for SQL analysis.
Quick Start
# Run the script (loads data on first run, incremental updates after)
scripts/analyze-usage
# Show database schema and example queries
scripts/analyze-usage --schema
# Query your data
scripts/analyze-usage query "SELECT * FROM tool_summary"
Commands
| Command | Description |
|---|---|
| (default) | Auto-detect changes, incremental update, show summary |
update |
Explicit incremental update |
reload |
Force reload all data (with backup) |
query "SQL" |
Execute SQL query |
search "query" |
Search conversation content |
shell |
Interactive DuckDB shell |
--schema |
Database schema with example queries |
--help |
Full help documentation |
Search
# ILIKE search on conversation content (default)
scripts/analyze-usage search "memory"
# BM25 full-text search (covers content + thinking)
scripts/analyze-usage search "memory" --fts
# Search reasoning traces
scripts/analyze-usage search "memory" --thinking
# Search both content and thinking
scripts/analyze-usage search "memory" --all
# Filter by role, repo, time
scripts/analyze-usage search "refactor" --user --repo bertram-chat --since 7d
# Limit results
scripts/analyze-usage search "deploy" -n 20
Common Queries
-- Most used tools
SELECT * FROM tool_summary;
-- Daily usage (last 2 weeks)
SELECT * FROM daily_summary ORDER BY date DESC LIMIT 14;
-- Skill popularity
SELECT regexp_extract(context, '"skill":"([^"]+)"', 1) as skill, COUNT(*) as uses
FROM claude_tools WHERE tool_name = 'Skill'
GROUP BY skill ORDER BY uses DESC;
-- Peak coding hours
SELECT hour_of_day, SUM(interactions) as total
FROM peak_hours GROUP BY hour_of_day ORDER BY total DESC LIMIT 5;
-- Activity by repository (aggregates worktrees)
SELECT repo_name, SUM(interactions) as total, SUM(worktrees) as branches
FROM repo_activity GROUP BY repo_name ORDER BY total DESC LIMIT 10;
-- Turn durations
SELECT * FROM turn_durations ORDER BY duration_ms DESC LIMIT 10;
-- Session overview with summaries
SELECT session_id, repo_name, summary FROM session_overview
WHERE summary IS NOT NULL ORDER BY started_at DESC LIMIT 10;
-- API errors
SELECT * FROM api_errors ORDER BY timestamp DESC LIMIT 10;
-- PR links
SELECT * FROM pr_links;
-- Cost by repo
SELECT repo_name, ROUND(SUM(cost_usd), 2) as cost
FROM usage_with_cost
WHERE CAST(timestamp AS TIMESTAMP) >= CURRENT_DATE - INTERVAL 7 DAY
GROUP BY repo_name ORDER BY cost DESC;
-- Full cost summary by repo and model
SELECT * FROM cost_summary ORDER BY cost_usd DESC;
Cost Calculation
The script tracks tokens and calculates API costs automatically:
Token columns in claude_tools:
input_tokens,output_tokens- Direct tokenscache_write_tokens,cache_read_tokens- Prompt caching tokensmodel- Model used (opus/sonnet/haiku)
Cost views:
model_pricing- API rates per million tokens (update when prices change)usage_with_cost- Each row has pre-calculatedcost_usdcost_summary- Pre-aggregated by repo/model
Key Tables/Views
Core Tables
claude_tools- Tool invocations (with model, tokens, repo/branch, source_file)claude_sessions- Session metadatamessages- Conversation content (user text, assistant text + thinking)system_events- System records (turn_duration, api_error, stop_hook_summary)queue_operations- User inputs queued during assistant responsepr_links- Session-to-PR mappings_sessions_index- Session metadata from sessions-index.json (summary, first_prompt)_loaded_files- File mtime tracking for incremental loading
Views
turn_durations- Response timing from system eventsapi_errors- API error eventssession_overview- Sessions joined with index metadatainteractions- Unified view (Claude + Cursor)conversation_search- Messages with content/thinking previewssession_messages- Per-session aggregation with topicrecent_conversations- Last 50 sessionsconversation_pairs- User/assistant turns joined on parent_uuidmessage_stats- Daily message volume by harness/rolerepo_activity- Repository-level summary (aggregates worktrees)project_activity- Project-level with worktree infousage_with_cost- Tool invocations with pre-calculatedcost_usdcost_summary- Pre-aggregated costs by repo/modelmodel_pricing- API rates (editable)
Run --schema for complete documentation.
Weekly Installs
1
Repository
fairchild/dotclaudeGitHub Stars
1
First Seen
6 days ago
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1