A personal Claude Code skill that generates a manager-ready, month-by-month report of:
- Engagement — Claude Code token usage from local session logs, account-wide across every repo you've used it in.
- Shipped output — your merged PRs across all repos, with a headline merge rate.
- Commit cadence — per-repo commit counts, active days, day-of-week mix, and ticket-touch count.
Designed for the question: "How much have I been using AI coding tools, and what have I shipped?"
Clone (or copy) this folder into your Claude Code skills directory:
git clone <this-repo-url> ~/.claude/skills/ai-coding-usage-report
chmod +x ~/.claude/skills/ai-coding-usage-report/usage_report.shThat's it — Claude Code auto-loads skills in ~/.claude/skills/ on the next session start.
To verify, start a new Claude Code session and ask:
generate my AI coding usage report
The skill should activate. Alternatively, run the script directly without involving Claude:
bash ~/.claude/skills/ai-coding-usage-report/usage_report.shAll run locally — this skill cannot be used from a cloud sandbox.
| Tool | Why |
|---|---|
jq |
Parsing session JSONL and gh JSON output |
gh |
Listing your PRs across all repos |
git |
Commit cadence per repo |
Authenticate gh before first use:
gh auth status # check
gh auth login # if neededbash usage_report.sh [START_DATE] [TICKET_PREFIX] [REPO_DIR ...]| Arg | Default | Notes |
|---|---|---|
START_DATE |
Jan 1 of current year | ISO YYYY-MM-DD. Filters engagement, PRs, and commits. |
TICKET_PREFIX |
(empty) | e.g. PRO — counts unique PRO-123 style refs in commit messages. Pass "" to skip. |
REPO_DIR ... |
(none) | Paths to local git repos for commit-cadence detail. Non-git paths are skipped with a warning. Engagement and PR figures stay account-wide either way. |
YTD, no commit detail:
bash usage_report.shYTD, with two repos for commit cadence and PRO ticket counting:
bash usage_report.sh 2026-01-01 PRO ~/code/eco-klara ~/code/other-repoLast 90 days, all repos under ~/Documents/GitHub/:
bash usage_report.sh "$(date -v-90d +%Y-%m-%d)" PRO ~/Documents/GitHub/*/Covered:
- Claude Code (terminal) usage — every session under
~/.claude/projects/. - Your authored PRs across all GitHub repos
ghcan see. - Commits and ticket references in any local repos you pass.
Not covered:
- Claude.ai chat or Cowork usage. Those aren't written to local disk — pull them from the Anthropic Console / usage dashboard and combine if you need a full picture.
- Dollar costs. The script reports tokens only. If you want cost figures, run the report, then multiply by your current per-million pricing.
- Older session logs get rotated. Claude Code doesn't retain every session forever. The report surfaces the actual
mtimerange of log files on disk so you can see what's covered. If you need full-year tokens, the Anthropic Console is the source of truth. - PR counts use
gh search prs --author=@me. Only PRs visible to yourghauth context are counted. PRs in reposghcan't see (e.g. an org you've left) won't appear. - Conductor and worktree clones each appear as their own line in the per-repo engagement table — they're the same upstream repo viewed from different paths. Mentally roll them up to the parent if you want a deduplicated view.
- Commit cadence may show months earlier than
START_DATE.git log --sincefilters by committer date but the report displays author date — after a rebase, the two diverge. Treat the totals as accurate and the per-month bucketing as approximate.
| File | Purpose |
|---|---|
SKILL.md |
Frontmatter manifest that Claude Code loads. Describes when to trigger the skill and how to present its output. |
usage_report.sh |
The script that does the work. Safe to run standalone. |
README.md |
This file — for humans installing the skill. |
MIT. Use it, fork it, ship it.