From claude-warehouse
Generate a fun, shareable summary of your Claude Code usage stats — like Spotify Wrapped but for AI-assisted development. Use when the user asks for their stats, summary, wrapped, or wants a fun overview of their Claude Code activity.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-warehouse:wrappedThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate a fun, visual summary of the user's Claude Code activity. Think Spotify Wrapped energy.
Generate a fun, visual summary of the user's Claude Code activity. Think Spotify Wrapped energy.
Run ALL queries below, then present as an engaging, shareable summary.
When the user specifies a date range, add WHERE clauses. Use these join paths:
sessions.session_id ←→ messages.session_id
sessions.session_id ←→ tool_calls.session_id
messages.uuid ←→ tool_calls.message_uuid (NOT message_id)
Key column differences between tables:
created_at (TIMESTAMP), modified_attimestamp (TIMESTAMP) — NO created_at columntimestamp (TIMESTAMP) — NO created_at columntool_name exists in BOTH messages and tool_calls — always qualify with table aliasTo filter tool_calls or messages by date, JOIN through sessions:
-- tool_calls filtered by date:
SELECT tc.tool_name, COUNT(*) uses
FROM tool_calls tc
JOIN sessions s ON tc.session_id = s.session_id
WHERE s.created_at >= '...' AND s.created_at < '...'
GROUP BY 1 ORDER BY 2 DESC
-- messages filtered by date:
SELECT model, COUNT(*) messages
FROM messages m
JOIN sessions s ON m.session_id = s.session_id
WHERE model IS NOT NULL AND s.created_at >= '...' AND s.created_at < '...'
GROUP BY 1 ORDER BY 2 DESC
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT COUNT(*) total_sessions, SUM(message_count) total_messages, SUM(total_input_tokens + total_output_tokens) total_tokens, COUNT(DISTINCT project_name) total_projects, MIN(created_at)::DATE first_session, MAX(created_at)::DATE latest_session FROM sessions"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT project_name, COUNT(*) sessions, SUM(message_count) messages FROM sessions GROUP BY 1 ORDER BY 2 DESC LIMIT 5"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT tool_name, COUNT(*) uses FROM tool_calls GROUP BY 1 ORDER BY 2 DESC LIMIT 10"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT project_name, created_at::DATE, message_count, total_input_tokens + total_output_tokens as tokens, LEFT(first_prompt, 100) prompt FROM sessions ORDER BY message_count DESC LIMIT 1"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT project_name, created_at::DATE, message_count, ROUND(total_input_tokens * 3.0 / 1e6 + total_output_tokens * 15.0 / 1e6, 2) as est_cost_usd, LEFT(first_prompt, 100) prompt FROM sessions ORDER BY (total_input_tokens + total_output_tokens) DESC LIMIT 1"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT created_at::DATE as day, COUNT(*) sessions, SUM(message_count) messages FROM sessions GROUP BY 1 ORDER BY 2 DESC LIMIT 1"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT model, COUNT(*) messages FROM messages WHERE model IS NOT NULL GROUP BY 1 ORDER BY 2 DESC LIMIT 5"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "WITH days AS (SELECT DISTINCT created_at::DATE as d FROM sessions), streaks AS (SELECT d, d - ROW_NUMBER() OVER (ORDER BY d) * INTERVAL '1 day' as grp FROM days) SELECT COUNT(*) as streak_days, MIN(d)::DATE as from_date, MAX(d)::DATE as to_date FROM streaks GROUP BY grp ORDER BY streak_days DESC LIMIT 1"
${CLAUDE_PLUGIN_ROOT}/scripts/query.py sql "SELECT EXTRACT(HOUR FROM created_at) as hour, COUNT(*) sessions FROM sessions GROUP BY 1 ORDER BY 2 DESC LIMIT 3"
Present as a fun, engaging summary with personality. Use section headers like:
Keep it concise, punchy, fun. Something they'd screenshot and share.
npx claudepluginhub sderosiaux/claude-plugins --plugin claude-warehouseAnalyzes Claude Code session patterns, categories, trends, benchmarks, and usage for behavioral insights and recommendations. Activates on 'patterns', 'insights', 'how am I doing' queries.
Generates usage analytics dashboard from Claude Code sessions with epistemic protocol coverage metrics, friction analysis, growth timelines, and improvement recommendations.
Generates an HTML report of Claude Code usage stats from history files, including project activity, prompt counts, and git commit data.