Skip to content

claude-access/github-tech-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

github-tech-scanner

Scans all active GitHub repositories accessible via a Personal Access Token (PAT) and produces a full inventory of every language and framework in use — with repo counts, byte-share percentages, and version info where available.

Works as both a standalone CLI script and a Claude Code skill.


Usage

Standalone

pip install -r requirements.txt

python scripts/scan_repos.py --token <YOUR_PAT> --verbose

Flags

Flag Default Description
--token, -t $GITHUB_TOKEN GitHub Personal Access Token
--org, -o (all accessible) Limit scan to a specific org (e.g. my-company)
--active-days, -d 365 Only include repos pushed within this many days
--show-repos off List which repos use each language/framework
--json off Emit raw JSON instead of the formatted report
--verbose, -v off Print progress to stderr while scanning

Examples

# Scan everything the token can access
python scripts/scan_repos.py --token ghp_xxx --verbose

# Scan a single org only
python scripts/scan_repos.py --token ghp_xxx --org my-company

# Last 6 months, show which repos use each technology
python scripts/scan_repos.py --token ghp_xxx --active-days 180 --show-repos

# JSON output for further processing
python scripts/scan_repos.py --token ghp_xxx --json | jq '.language_bytes'

What it detects

Languages

Uses GitHub's native /repos/{owner}/{repo}/languages endpoint — returns byte counts per language, which are aggregated into percentages across all active repos.

Frameworks (via manifest files)

File Ecosystems detected
package.json React, Vue, Angular, Next.js, Express, NestJS, Vite, Prisma, …
requirements.txt Django, Flask, FastAPI, PyTorch, LangChain, Anthropic SDK, …
pyproject.toml Same as above (PEP 621 and Poetry formats)
Gemfile Rails, Sinatra, Sidekiq, Devise, …
go.mod Gin, Echo, Fiber, GORM, Chi, …
pom.xml Spring Boot, Quarkus, Hibernate, Kafka, …
build.gradle Spring Boot, Ktor, Micronaut, …
composer.json Laravel, Symfony, Doctrine, …
Cargo.toml Actix Web, Axum, Tokio, Tauri, Leptos, …
pubspec.yaml Flutter, Riverpod, Firebase, …

Sample output

============================================================
  GitHub Tech Stack Report — @username
============================================================
  Repos scanned: 42 active (of 87 total, active = pushed within 365 days)

── Languages ────────────────────────────────────────────
  TypeScript             41.2%  ████████              (18 repos)
  Python                 28.5%  █████                 (12 repos)
  JavaScript             15.3%  ███                   (9 repos)

── Frameworks & Libraries ───────────────────────────────
  React                              (11 repos)  [18.1.0, 18.2.0]
  Django                             (6 repos)   [4.2.0]
  Express                            (5 repos)
============================================================

Token requirements

Goal Required scopes
Public repos only No scopes needed
Private repos repo (classic PAT) or Contents: read + Metadata: read (fine-grained PAT)
Org repos Same as above; token must be authorized for the org (SSO if applicable)
Create repos in an org repo + write:org (classic PAT)

Generate a token at: GitHub → Settings → Developer settings → Personal access tokens


As a Claude Code skill

This repo is structured as a Claude Code skill. To install it, place the directory under ~/.claude/skills/ and Claude Code will pick it up automatically.


License

MIT — see LICENSE.

Releases

No releases published

Packages

 
 
 

Contributors

Languages