{"_id":"@abhi3hekk/gitpulse","_rev":"5-1cf856756924a12735bec1f285436a50","name":"@abhi3hekk/gitpulse","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@abhi3hekk/gitpulse","version":"1.0.0","keywords":["git","cli","heatmap","stats","ai","terminal"],"author":{"name":"Abhishek"},"license":"MIT","_id":"@abhi3hekk/gitpulse@1.0.0","maintainers":[{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"}],"bin":{"gitpulse":"src/index.js"},"dist":{"shasum":"3708cb87473382c0b2196704278498e0c1fe07e3","tarball":"https://registry.npmjs.org/@abhi3hekk/gitpulse/-/gitpulse-1.0.0.tgz","fileCount":9,"integrity":"sha512-XQuG3pGLBnQ2/aMmQYfUEideTTAjg3jegYP7aI/HoRvKT5oIJbCuwSya/7+OQqyukQL3ey69KvA0mMKWYsBBfg==","signatures":[{"sig":"MEUCIDkvhVTfQOVq2tARL3D7mFZkwCyI4IpAMrAC/N1NtRUQAiEAmmPjRFFsnkAfWUTI/Wl20n5jWVHOSNqmJm42O6BKC+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69817},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"aa628fbd7cbf31511f8bf3e89742cea55e3649f9","scripts":{"dev":"node src/index.js","start":"node src/index.js"},"_npmUser":{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"},"_npmVersion":"10.9.4","description":"Advanced Git activity tracker with AI insights, streaks, heatmaps and more","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^7.0.1","conf":"^12.0.0","boxen":"^7.1.1","chalk":"^5.3.0","figlet":"^1.7.0","date-fns":"^3.0.6","inquirer":"^9.2.12","commander":"^11.1.0","cli-table3":"^0.6.3","node-fetch":"^3.3.2","simple-git":"^3.20.0","ansi-escapes":"^6.2.0","cli-progress":"^3.12.0","terminal-link":"^3.0.0","gradient-string":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitpulse_1.0.0_1776366076905_0.25282662045606963","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abhi3hekk/gitpulse","version":"1.0.1","keywords":["git","cli","heatmap","stats","ai","terminal"],"author":{"name":"Abhishek"},"license":"MIT","_id":"@abhi3hekk/gitpulse@1.0.1","maintainers":[{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"}],"bin":{"gitpulse":"src/index.js"},"dist":{"shasum":"9d2d7028904c11e7cd489f193e3dca0d1167c085","tarball":"https://registry.npmjs.org/@abhi3hekk/gitpulse/-/gitpulse-1.0.1.tgz","fileCount":9,"integrity":"sha512-Jv7ES65lGYKABcqn7h2bZGLEWrbhu4IBaAUqlojLHnHFYML41k8ZdTNnlksklUT3HnJieapxEt6NEJVCHFva8A==","signatures":[{"sig":"MEUCICAv+1hcR0c+4/zh/bBn3qYXcoCPsg65hhsENImOqwaiAiEAk8Nkj7Rrr9hYgIQoJDymYlDkuJDPLdy9krLcljeeeIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69817},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"aa628fbd7cbf31511f8bf3e89742cea55e3649f9","scripts":{"dev":"node src/index.js","start":"node src/index.js"},"_npmUser":{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"},"_npmVersion":"10.9.4","description":"Advanced Git activity tracker with AI insights, streaks, heatmaps and more","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^7.0.1","conf":"^12.0.0","boxen":"^7.1.1","chalk":"^5.3.0","figlet":"^1.7.0","date-fns":"^3.0.6","inquirer":"^9.2.12","commander":"^11.1.0","cli-table3":"^0.6.3","node-fetch":"^3.3.2","simple-git":"^3.20.0","ansi-escapes":"^6.2.0","cli-progress":"^3.12.0","terminal-link":"^3.0.0","gradient-string":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitpulse_1.0.1_1776366114558_0.7029297196305351","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@abhi3hekk/gitpulse","version":"1.0.2","keywords":["git","cli","heatmap","stats","ai","terminal"],"author":{"name":"Abhishek"},"license":"MIT","_id":"@abhi3hekk/gitpulse@1.0.2","maintainers":[{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"}],"bin":{"gitpulse":"src/index.js"},"dist":{"shasum":"71eed25aa79251d99a5f858b6083f226feb92adc","tarball":"https://registry.npmjs.org/@abhi3hekk/gitpulse/-/gitpulse-1.0.2.tgz","fileCount":9,"integrity":"sha512-ha0Q3cmgfymQQKaZMZ1AjPQO20lT35BejqJkRh9QLEnsHfWdN14em7KsFTG71cmVRzYzuQidQbHxymrb/5bxBw==","signatures":[{"sig":"MEUCIQCVRWt+sK5lv181vMxr7ab873qoOvKBEcR73oKIV/3fsAIgMeNcKX9dgi+aE9LBwuIClRYlEW3qKxl7k1RNKU/XGng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71192},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3217479ff1088e1f0252a7e22f6d17b1cae73241","scripts":{"dev":"node src/index.js","start":"node src/index.js"},"_npmUser":{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"},"_npmVersion":"10.9.4","description":"Advanced Git activity tracker with AI insights, streaks, heatmaps and more","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^7.0.1","conf":"^12.0.0","boxen":"^7.1.1","chalk":"^5.3.0","figlet":"^1.7.0","date-fns":"^3.0.6","inquirer":"^9.2.12","commander":"^11.1.0","cli-table3":"^0.6.3","node-fetch":"^3.3.2","simple-git":"^3.20.0","ansi-escapes":"^6.2.0","cli-progress":"^3.12.0","terminal-link":"^3.0.0","gradient-string":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitpulse_1.0.2_1776399588794_0.43411719958394857","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@abhi3hekk/gitpulse","version":"1.0.3","keywords":["git","cli","heatmap","stats","ai","terminal"],"author":{"name":"Abhishek"},"license":"MIT","_id":"@abhi3hekk/gitpulse@1.0.3","maintainers":[{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"}],"bin":{"gitpulse":"src/index.js"},"dist":{"shasum":"9f6ed24bfc6f84eb0b4d52e785766f18eb774c4d","tarball":"https://registry.npmjs.org/@abhi3hekk/gitpulse/-/gitpulse-1.0.3.tgz","fileCount":9,"integrity":"sha512-Op84ZJMsNi164CMMKQyXxLLrIFm+o8WPdcklxjpeeSaPz2Ph6BUI0tLBUW6+YP4tKoA4I6B7p4bUgNlS8H6RmQ==","signatures":[{"sig":"MEYCIQC8h+DcJ0ULry4nzhA6GdgTlbTvpmsXQIx+ErAAjye4ZgIhANuh13uLCP8VdC9r7Sg3kiOjpP9Fw8QPjUpE6U2v+ULm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73835},"main":"src/index.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"832a2feca20e2814f2cd2267070e6666b2cf8d89","scripts":{"dev":"node src/index.js","start":"node src/index.js"},"_npmUser":{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"},"_npmVersion":"10.9.4","description":"Advanced Git activity tracker with AI insights, streaks, heatmaps and more","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^7.0.1","conf":"^12.0.0","boxen":"^7.1.1","chalk":"^5.3.0","figlet":"^1.7.0","date-fns":"^3.0.6","inquirer":"^9.2.12","commander":"^11.1.0","cli-table3":"^0.6.3","node-fetch":"^3.3.2","simple-git":"^3.20.0","ansi-escapes":"^6.2.0","cli-progress":"^3.12.0","@google/genai":"^1.50.1","terminal-link":"^3.0.0","gradient-string":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitpulse_1.0.3_1776404778151_0.7500811311967606","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abhi3hekk/gitpulse","version":"1.1.0","description":"Advanced Git activity tracker with AI insights, streaks, heatmaps and more","main":"src/index.js","bin":{"gitpulse":"src/index.js"},"type":"module","scripts":{"start":"node src/index.js","dev":"node src/index.js"},"dependencies":{"@google/genai":"^1.50.1","ansi-escapes":"^6.2.0","boxen":"^7.1.1","chalk":"^5.3.0","cli-progress":"^3.12.0","cli-table3":"^0.6.3","commander":"^11.1.0","conf":"^12.0.0","date-fns":"^3.0.6","figlet":"^1.7.0","gradient-string":"^2.0.2","inquirer":"^9.2.12","neo-blessed":"^0.2.0","node-fetch":"^3.3.2","ora":"^7.0.1","simple-git":"^3.20.0","terminal-link":"^3.0.0"},"engines":{"node":">=18.0.0"},"author":{"name":"Abhishek"},"license":"MIT","keywords":["git","cli","heatmap","stats","ai","terminal"],"_id":"@abhi3hekk/gitpulse@1.1.0","gitHead":"401fad1e633d0e7bfe165ee1d00acd520e682748","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-GxSMHRtpfnxu48cPeWssTtQriCy4F3tkCYPvn+Mpmjj7I0v/C8o4lZ+PySaXYEz78tT00omD8ncFt2a31hCKEg==","shasum":"53dcac00287aba71eb495b5b65b20dfbb46333ba","tarball":"https://registry.npmjs.org/@abhi3hekk/gitpulse/-/gitpulse-1.1.0.tgz","fileCount":10,"unpackedSize":104968,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCsCKE66bxzj8VMdOGaSpw5oeKyBiEDimkk1AP8rlFGhAIhAPhbd3DOHZ3ZOo5vZk76hDKTWGRJjN70eE6q4DaB0o0Z"}]},"_npmUser":{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"},"directories":{},"maintainers":[{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gitpulse_1.1.0_1776412207737_0.2429130954790324"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T19:01:16.812Z","modified":"2026-04-17T07:50:07.970Z","1.0.0":"2026-04-16T19:01:17.035Z","1.0.1":"2026-04-16T19:01:54.701Z","1.0.2":"2026-04-17T04:19:48.993Z","1.0.3":"2026-04-17T05:46:18.286Z","1.1.0":"2026-04-17T07:50:07.868Z"},"author":{"name":"Abhishek"},"license":"MIT","keywords":["git","cli","heatmap","stats","ai","terminal"],"description":"Advanced Git activity tracker with AI insights, streaks, heatmaps and more","maintainers":[{"name":"abhi3hekk","email":"abhi3hekk@gmail.com"}],"readme":"# gitpulse ⚡\n\n> Advanced git activity tracker with AI-powered insights, streaks, heatmaps, goals & more.\n> Works on Linux, Windows, and Android (Termux).\n\n```\n  ░██████╗░██╗████████╗██████╗░██╗   ██╗██╗░░░░░░██████╗███████╗\n  ██╔════╝░██║╚══██╔══╝██╔══██╗██║   ██║██║░░░░░██╔════╝██╔════╝\n  ██║░░██╗░██║░░░██║░░░██████╔╝██║   ██║██║░░░░░╚█████╗░█████╗░░\n  ██║░░╚██╗██║░░░██║░░░██╔═══╝░██║   ██║██║░░░░░░╚═══██╗██╔══╝░░\n  ╚██████╔╝██║░░░██║░░░██║░░░░░╚██████╔╝███████╗██████╔╝███████╗\n```\n\n---\n\n## Features\n\n- 🔥 **Streak tracking** — current streak, longest streak, committed today\n- 📊 **ASCII heatmap** — full year contribution graph in your terminal\n- 😴 **Days off analysis** — total off days, longest break, last day off\n- 🧠 **AI insights** — powered by Claude. Analyzes your habits, flags bad commit patterns, gives improvement tips\n- ✍️ **Commit improver** — paste any bad commit message, get a better one instantly\n- 🏆 **Leaderboard** — track your stats over time or compete with others\n- 🎯 **Goals** — set daily/weekly/streak goals with AI-assisted feedback\n- 📁 **Multi-repo** — track all your repos: personal, forked, contributed\n- 🌍 **Cross-platform** — Linux, Windows (PowerShell/CMD), Android (Termux)\n\n---\n\n## Installation\n\n### Prerequisites\n- Node.js 18+\n- Git\n\n### Install\n\n```bash\n# Clone the repo\ngit clone https://github.com/you/gitpulse\ncd gitpulse\n\n# Install dependencies\nnpm install\n\n# Make it globally available\nnpm link\n```\n\n### Android (Termux)\n```bash\npkg install nodejs git\nnpm install -g gitpulse\n```\n\n### Windows\n```powershell\n# Run in PowerShell as Administrator\nnpm install -g gitpulse\n```\n\n---\n\n## Usage\n\n```bash\n# Full dashboard (streaks, heatmap, quality, goals)\ngitpulse stats\n\n# AI-powered analysis and commit improvement tips\ngitpulse insights\n\n# Browse commit history\ngitpulse history\ngitpulse history --days 60 --limit 100\n\n# Improve a specific commit message with AI\ngitpulse improve \"fix stuff\"\ngitpulse improve \"update code\"\n\n# Set your coding goals (with AI feedback)\ngitpulse goals --set\n\n# Manage tracked repos\ngitpulse repos --add              # add current folder\ngitpulse repos --add /path/repo   # add specific repo\ngitpulse repos --remove /path     # remove a repo\ngitpulse repos                    # list all\n\n# First-time setup (recommended)\ngitpulse setup\n\n# Leaderboard\ngitpulse leaderboard\n```\n\n---\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `gitpulse` | Same as `stats` |\n| `gitpulse stats` | Full dashboard |\n| `gitpulse stats --all` | Include all tracked repos |\n| `gitpulse stats --verbose` | Include recent commit list |\n| `gitpulse insights` | AI analysis & improvement tips |\n| `gitpulse improve \"<msg>\"` | AI-improve a commit message |\n| `gitpulse history` | Commit history grouped by day |\n| `gitpulse goals` | View goals |\n| `gitpulse goals --set` | Set goals interactively |\n| `gitpulse leaderboard` | View stats leaderboard |\n| `gitpulse repos` | Manage tracked repos |\n| `gitpulse setup` | First-time setup wizard |\n\n---\n\n## AI Features\n\n`gitpulse` uses Claude AI (via the Anthropic API) for:\n\n1. **Commit quality scoring** — each commit is scored 0–100 locally\n2. **AI deep analysis** — Claude reads your recent commits and gives:\n   - Honest summary of your habits\n   - Strengths and weaknesses\n   - Before/after examples of bad commit messages\n   - Specific action items\n3. **Commit improver** — transforms any vague message into a proper conventional commit\n4. **Goal advisor** — assesses whether your goals are realistic based on your history\n\n> The AI features work automatically. No API key needed when running in the Claude environment.\n\n---\n\n## Commit Quality Scoring\n\nEach commit message is scored locally:\n\n| Issue | Penalty |\n|---|---|\n| Too short (<10 chars) | -40 |\n| Vague word (fix, update, misc) | -25 |\n| No conventional commit type | -20 |\n| All caps | -15 |\n| \"fix\" with no detail | -20 |\n\n**Score guide:**\n- 70–100 ✅ Good\n- 40–69 ⚠️ Needs improvement\n- 0–39 ❌ Poor\n\n---\n\n## Config\n\nConfig is stored at `~/.gitpulse/config.json`:\n\n```json\n{\n  \"repos\": [\"/home/user/projects/myapp\"],\n  \"author\": \"yourname\",\n  \"goals\": {\n    \"dailyCommits\": 2,\n    \"weeklyCommits\": 10,\n    \"streakTarget\": 30,\n    \"yearlyActiveDays\": 250\n  },\n  \"leaderboard\": []\n}\n```\n\n---\n\n## Cross-Platform Notes\n\n- **Windows**: Uses `\\r\\n` line endings, colors work in Windows Terminal and PowerShell 7+\n- **Android/Termux**: Works natively. Install with `pkg install nodejs git`\n- **Linux**: Full support\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}