
Security News
Feross on TBPN: How North Korea Hijacked Axios
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.
commit-analyzer
Advanced tools
Analyze git commits and generate categories, summaries, and descriptions for each commit. Optionally generate a yearly breakdown report of your commit history.
A TypeScript/Node.js program that analyzes git commits and generates categorized summaries using Claude CLI.
tweak, feature, or processThis tool requires Bun runtime. Install it globally:
# Install bun globally
curl -fsSL https://bun.sh/install | bash
# or
npm install -g bun
npm install
bun link
After linking, you can use commit-analyzer command globally.
When run without arguments, the program analyzes all commits authored by the current user:
# Analyze all your commits in the current repository
npx commit-analyzer
# Analyze your last 10 commits
npx commit-analyzer --limit 10
# Analyze commits by a specific user
npx commit-analyzer --author user@example.com
# Analyze specific commits
npx commit-analyzer abc123 def456 ghi789
# Read commits from file
npx commit-analyzer --file commits.txt
# Specify output file with default behavior
npx commit-analyzer --output analysis.csv --limit 20
# Generate markdown report from existing CSV
npx commit-analyzer --report --input-csv analysis.csv
# Analyze commits and generate both CSV and markdown report
npx commit-analyzer --report --limit 50
# Use specific LLM model
npx commit-analyzer --model claude --limit 10
-o, --output <file>: Output file (default: output.csv for analysis, summary-report.md for reports)-f, --file <file>: Read commit hashes from file (one per line)-a, --author <email>: Filter commits by author email (defaults to current user)-l, --limit <number>: Limit number of commits to analyze-m, --model <model>: LLM model to use (claude, gemini, codex)-r, --resume: Resume from last checkpoint if available-c, --clear: Clear any existing progress checkpoint--report: Generate condensed markdown report from existing CSV--input-csv <file>: Input CSV file to read for report generation-h, --help: Display help-V, --version: Display versionWhen using --file, create a text file with one commit hash per line:
abc123def456
def456ghi789
ghi789jkl012
The program generates a CSV file with the following columns:
year: Year of the commitcategory: One of tweak, feature, or processsummary: One-line description (max 80 characters)description: Detailed explanation (2-3 sentences)When using the --report option, the program generates a condensed markdown report that:
claude) - recommended, defaults to Sonnet modelgemini)codex)The program includes comprehensive error handling for:
The tool automatically:
If the process stops (e.g., after 139 commits due to API failure), you can resume from where it left off:
# Resume from last checkpoint
npx commit-analyzer --resume
# Clear checkpoint and start fresh
npx commit-analyzer --clear
# View checkpoint status (it will prompt you)
npx commit-analyzer --resume
The checkpoint file (.commit-analyzer/progress.json) contains:
Important: When a commit fails after all retries (default 3), the process stops immediately to prevent wasting API calls. The successfully analyzed commits up to that point are saved to the CSV file.
The tool creates a .commit-analyzer/ directory to store internal files:
.commit-analyzer/
├── progress.json # Progress checkpoint data
└── cache/ # Cached analysis results
├── commit-abc123.json
├── commit-def456.json
└── ...
Use --no-cache to disable caching if needed.
The tool includes automatic retry logic with exponential backoff for handling API failures when processing many commits. This is especially useful when analyzing large numbers of commits that might trigger rate limits.
You can configure the retry behavior using environment variables:
LLM_MAX_RETRIES: Maximum number of retry attempts (default: 3)LLM_INITIAL_RETRY_DELAY: Initial delay between retries in milliseconds (default: 5000)LLM_MAX_RETRY_DELAY: Maximum delay between retries in milliseconds (default: 30000)LLM_RETRY_MULTIPLIER: Multiplier for exponential backoff (default: 2)# More aggressive retries for large batches (e.g., 139+ commits)
LLM_MAX_RETRIES=5 LLM_INITIAL_RETRY_DELAY=10000 npx commit-analyzer --limit 200
# Faster retries for testing
LLM_MAX_RETRIES=2 LLM_INITIAL_RETRY_DELAY=2000 npx commit-analyzer
# Conservative approach for rate-limited APIs
LLM_MAX_RETRIES=4 LLM_INITIAL_RETRY_DELAY=15000 LLM_MAX_RETRY_DELAY=60000 npx commit-analyzer
The retry mechanism automatically:
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Run linting
npm run lint
# Type checking
npm run typecheck
# Analyze all your commits in the current repository
npx commit-analyzer
# Analyze your last 20 commits and save to custom file
npx commit-analyzer --limit 20 --output my_analysis.csv
# Analyze commits by a specific team member
npx commit-analyzer --author teammate@company.com --limit 50
# Analyze specific commits
git log --oneline -5 | cut -d' ' -f1 > recent_commits.txt
npx commit-analyzer --file recent_commits.txt --output recent_analysis.csv
# Quick analysis of your recent work
npx commit-analyzer --limit 10
# Generate both CSV and markdown report from analysis
npx commit-analyzer --report --limit 100 --output yearly_analysis.csv
# Generate only a markdown report from existing CSV
npx commit-analyzer --report --input-csv existing_analysis.csv --output team_report.md
# Use specific LLM model for analysis
npx commit-analyzer --model gemini --limit 25
# Resume interrupted analysis with progress tracking
npx commit-analyzer --resume
FAQs
Analyze git commits and generate categories, summaries, and descriptions for each commit. Optionally generate a yearly breakdown report of your commit history.
The npm package commit-analyzer receives a total of 547 weekly downloads. As such, commit-analyzer popularity was classified as not popular.
We found that commit-analyzer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.

Security News
OpenSSF has issued a high-severity advisory warning open source developers of an active Slack-based campaign using impersonation to deliver malware.

Research
/Security News
Malicious packages published to npm, PyPI, Go Modules, crates.io, and Packagist impersonate developer tooling to fetch staged malware, steal credentials and wallets, and enable remote access.