A GitHub Action that scans repositories in your GitHub organization (or profile) and generates visual ASCII bar charts showing Claude Code adoption statistics. Great for organizations that are looking to drive Claude Code adoption and want a first-line visibility into where it is being used. Inspired by waka-readme.
π Claude Code Adoption (100 repos scanned)
Has CLAUDE.md 25 repos βββββββββββββββββββββββββ 25.00 %
Has .claude/ Dir 18 repos βββββββββββββββββββββββββ 18.00 %
Has Skills 8 repos βββββββββββββββββββββββββ 8.00 %
Has Agents 5 repos βββββββββββββββββββββββββ 5.00 %
Has Hooks 4 repos βββββββββββββββββββββββββ 4.00 %
Has GitHub Actions 6 repos βββββββββββββββββββββββββ 6.00 %
β‘ Top Skills (of 8 repos)
review 5 repos
commit 3 repos
deploy 2 repos
π΅οΈ Top Agents (of 5 repos)
code-reviewer 3 repos
test-writer 2 repos
πͺ Top Hooks (of 4 repos)
PreToolUse 3 repos
PostToolUse 2 repos
π€ Top GitHub Actions (of 6 repos)
claude-code-action 5 repos
claude-code (ref) 3 repos
Per-repo breakdown
| Repo | CLAUDE.md | .claude/ | MCP | Skills | Actions | Hooks | Agents | Memory |
|---|---|---|---|---|---|---|---|---|
| api-service | β | β | β | β | β | β | β | |
| frontend-app | β | β | β | |||||
| infra-tools | β | β |
Add these comments wherever you want the stats to appear:
<!--START_SECTION:claude-stats-->
<!--END_SECTION:claude-stats-->Create .github/workflows/claude-stats.yml:
name: Claude Code Stats
on:
schedule:
- cron: "0 0 * * *" # Daily at midnight
workflow_dispatch: # Manual trigger
jobs:
update-stats:
runs-on: ubuntu-latest
steps:
- uses: netwrix/claude-org-stats@main
with:
GH_TOKEN: ${{ secrets.ORG_READ_TOKEN }}
ORG_NAME: your-org
REPOSITORY: ${{ github.repository }}
SHOW_SECTIONS: "adoption,mcp,skills,actions,hooks,agents,details"Create a Personal Access Token (classic) with repo and read:org scopes, or a fine-grained token with read access to organization repos. Add it as a repository secret named ORG_READ_TOKEN.
For each repository in the organization:
| Feature | What's scanned |
|---|---|
| CLAUDE.md | CLAUDE.md files at root or nested in directories |
| .claude/ directory | Presence of .claude/ configuration directory |
| MCP servers | Server names from .mcp.json and .claude/settings.json |
| Skills | Files in .claude/commands/ and .claude/skills/ directories |
| Claude GitHub Actions | References to Claude actions in .github/workflows/*.yml |
| Hooks | Hook definitions in .claude/settings.json |
| Agents | Agent files in .claude/agents/ directory |
| Memory | MEMORY.md files |
| Input | Default | Description |
|---|---|---|
GH_TOKEN |
required | GitHub token with org:read scope |
ORG_NAME |
required | GitHub organization to scan |
REPOSITORY |
"" |
Repository to update (owner/repo format) |
SHOW_SECTIONS |
adoption,skills,agents,hooks,actions |
Sections to render (see below) |
BLOCKS |
ββ |
Bar chart characters |
BAR_LENGTH |
25 |
Bar width in characters |
BAR_SECTIONS |
adoption,skills,agents,hooks,actions |
Sections that show progress bars (others show counts only) |
MAX_ITEMS |
10 |
Max items in ranked lists |
EXCLUDE_ARCHIVED |
true |
Skip archived repos |
EXCLUDE_FORKS |
true |
Skip forked repos |
EXCLUDE_REPOS |
"" |
Comma-separated repo names to skip |
SECTION_NAME |
claude-stats |
Comment marker name |
TARGET_PATH |
README.md |
File to update |
TARGET_BRANCH |
"" |
Branch to commit to (default: repo default) |
COMMIT_MESSAGE |
Update Claude Code adoption stats |
Commit message |
# Default
BLOCKS: "ββ"
# Gradient
BLOCKS: "ββββ"
# Braille
BLOCKS: "β£β£β£€β£¦β£Άβ£·β£Ώ"pip install -e ".[dev]"
# Run tests
python -m pytest tests/ -v
# Run against a real org
export INPUT_GH_TOKEN="ghp_..."
export INPUT_ORG_NAME="your-org"
export INPUT_REPOSITORY="your-org/your-repo"
python -m src.mainMIT
Claude Code Org Stats is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.