Generate beautiful developer profile report cards from GitHub — right in your terminal.
Features · Install · Usage · Examples · Three.js Export · Contributing
GitPulse scans any GitHub profile and generates a full developer report card with:
- 📊 Stats overview — repos, stars, forks, followers in a clean 2-column layout
- 💻 Language breakdown — colored bars with percentages and a summary strip
- ⭐ Top repositories — ranked by impact (stars × 3 + forks × 2 + watchers)
- 📈 Contribution heatmap — last 90 days of activity, GitHub-style
- ⏰ Commit patterns — when you code, by day and hour (sparkline charts)
- 🔥 Coding streaks — current and longest streaks
- 🎯 Hire-ability score — a 0-100 score with letter grade and breakdown
- ⚔️ Compare mode — side-by-side comparison of two developers
- 🌐 Three.js export — export profile data as a 3D scene graph
██████╗ ██╗████████╗██████╗ ██╗ ██╗██╗ ███████╗███████╗
██╔════╝ ██║╚══██╔══╝██╔══██╗██║ ██║██║ ██╔════╝██╔════╝
██║ ███╗██║ ██║ ██████╔╝██║ ██║██║ ███████╗█████╗
██║ ██║██║ ██║ ██╔═══╝ ██║ ██║██║ ╚════██║██╔══╝
╚██████╔╝██║ ██║ ██║ ╚██████╔╝███████╗███████║███████╗
╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝╚══════╝
⚡ Developer Profile Report Card ⚡
👤 Profile
────────────────────────────────────────────────────────────────
Linus Torvalds (@torvalds)
📍 Portland, OR
Member for 14 years │ https://github.com/torvalds
📊 Statistics
────────────────────────────────────────────────────────────────
■ Repositories: 7 (7 original) ■ Stars Earned: 200.4K
■ Forks Earned: 56.1K ■ Followers: 231.8K
■ Following: 0 ■ Public Gists: 0
💻 Languages
────────────────────────────────────────────────────────────────
C ██████████████████████████████ 71.4% (5 repos)
C++ ██████████████░░░░░░░░░░░░░░░░ 14.3% (1 repos)
Perl ██████████████░░░░░░░░░░░░░░░░ 14.3% (1 repos)
██████████████████████████████████████████████████
● C ● C++ ● Perl
🎯 Hire-ability Score
────────────────────────────────────────────────────────────────
Grade: A- (84/100)
Repo Quality █████████████░░ 21.3/25
Consistency ████████░░░░░░░ 10.2/20
Language Diversity ████░░░░░░░░░░░ 4.8/15
README Quality ██████████████░ 14.1/15
Recent Activity █████████████░░ 20.5/25
────────────────────────────────────────────────────────────────
Generated by gitpulse v1.0.0 • github.com/br9704/gitpulse
| Feature | Description |
|---|---|
| 📍 Profile Scan | Fetches user data, repos (up to 200), and recent events |
| 📊 Rich Stats | Stars, forks, followers, repo count in formatted layout |
| 💻 Language Bars | Color-coded bars matching GitHub's linguist colors |
| 📈 Heatmap | 90-day contribution grid with 5 intensity levels |
| ⏰ Commit Patterns | Sparkline charts showing when you code most |
| 🎯 Hire-ability Score | Composite score (0-100) across 5 dimensions |
| ⚔️ Compare Mode | Head-to-head developer comparison |
| 📋 Minimal Mode | Compact one-liner output |
| 🌐 Three.js Export | Export as 3D scene graph (nodes + connections) |
| 💾 Smart Caching | 30-minute cache, auto-eviction at 50 profiles |
| 🔑 Token Support | Use a GitHub PAT for higher rate limits |
# Install globally
npm install -g gitpulse
# Or run with npx
npx gitpulse torvalds# Basic scan
gitpulse <username>
# Compare two developers
gitpulse <username> --compare <other-username>
# Minimal compact output
gitpulse <username> --minimal
# JSON output (clean, curated data)
gitpulse <username> --json
# Three.js scene export
gitpulse <username> --export
# Use a GitHub token for higher rate limits
gitpulse <username> --token ghp_xxxxxxxxxxxx
# Bypass cache
gitpulse <username> --no-cache
# Clear all cached profiles
gitpulse --clear-cache| Flag | Short | Description |
|---|---|---|
--token <token> |
-t |
GitHub personal access token |
--json |
-j |
Output raw JSON data |
--minimal |
-m |
Compact minimal output |
--export |
-e |
Export Three.js scene data |
--compare <user> |
-c |
Compare with another user |
--no-cache |
Bypass cache and fetch fresh | |
--clear-cache |
Clear cached data |
$ gitpulse br9704Outputs a full report card with profile, stats, languages, top repos, heatmap, commit patterns, streak, and hire-ability score.
$ gitpulse torvalds --compare gvanrossum⚔️ Comparison
────────────────────────────────────────────────────────────────
torvalds vs gvanrossum
────────────────────────────────────────────────────────────────
torvalds │ gvanrossum
──────────────── ────────────│────────────
Repositories 7 │ 31
Stars 200.4K │ 3.2K
Followers 231.8K │ 47.1K
Score 84 │ 72
Score Breakdown:
Repo Quality 21 █████████░░ │ ████████░░░ 18
Consistency 10 ████████░░░ │ ██████░░░░░ 8
🏆 torvalds wins with grade A- vs B
$ gitpulse torvalds --minimal⚡ Linus Torvalds (@torvalds)
📁 7 repos │ ⭐ 200.4K stars │ 🍴 56.1K forks │ 👥 231.8K followers
──────────────────────────────────────────────────
💻 C, C++, Perl
🎯 Score: 84 (A-) 🔥 Streak: 0d (best: 12d)
Export any profile as a 3D scene graph for visualization:
gitpulse torvalds --export > scene.jsonThe output contains:
- Nodes — user (center), languages (inner ring), repos (outer sphere)
- Connections — user-language, user-repo, language-repo weighted edges
- Metadata — stars, forks, descriptions, colors matching GitHub's scheme
Use this with Three.js, react-three-fiber, or any 3D framework to build interactive profile visualizations.
The score (0-100) breaks down into 5 dimensions:
| Dimension | Max | What It Measures |
|---|---|---|
| Repo Quality | 25 | Stars, forks, descriptions, topics, licenses |
| Consistency | 20 | Current/longest streak, event frequency |
| Language Diversity | 15 | Number of languages + Shannon entropy balance |
| README Quality | 15 | Descriptions, GitHub Pages, wikis, repo substance |
| Recent Activity | 25 | Recent pushes, updated repos, event type variety |
Grades: A+ (95+), A (88+), A- (82+), B+ (76+), B (70+), B- (64+), C+ (56+), C (48+), C- (40+), D (30+), F (<30)
- Fetches user profile, repositories (up to 200), and public events via GitHub REST API
- Computes language breakdown, commit patterns, contribution heatmap, and coding streaks
- Calculates a composite hire-ability score across 5 dimensions
- Renders everything as a rich terminal UI with colors, charts, and ASCII art
No scraping. No GraphQL. Just the public REST API — works without authentication (with rate limits) or with a token for heavy use.
git clone https://github.com/br9704/gitpulse.git
cd gitpulse
npm install
npm run build
npm test
# Run locally
node dist/index.js <username>- Fork the repo
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
MIT — Bruno Jaamaa