Git activity analysis and LLM-powered summary tools for developers and consultants
Project description
Generate beautiful activity reports, client summaries, and blog posts from your git history—powered by LLMs.
Quick Start • Use Cases • Commands • Configuration
What It Does
Code Recap helps developers and consultants who work across multiple repositories:
📊 Year-in-Review Reports — Generate polished summaries of your work for clients, complete with statistics, achievements, and technology breakdowns. Export as Markdown or HTML.
⏱️ Daily Time Logging — Quickly summarize what you worked on today (or any day) for billing and time tracking. No more digging through commits.
✍️ Blog Post Generation — Turn your commits into technical blog posts. The AI researches your changes and drafts content with real code examples.
📈 Activity Statistics — Track commits, lines changed, languages used, and coding streaks across all your projects.
🗂️ Multi-Client Organization — Automatically group repositories by client using pattern matching. Each client gets their own reports.
📝 Example Output
See what generated reports look like:
For consultants with multiple clients:
- Client Reports (HTML) — Browse the styled HTML version
- Monthly summary (markdown)
- Annual client summary (markdown)
For solo developers or internal work:
- Solo Reports (HTML) — Without client organization
- Monthly summary (markdown)
- Annual summary (markdown)
Quick Start
# Initialize (creates config, prompts for API keys, shows next steps)
uvx code-recap init
# Or set API key manually
export OPENAI_API_KEY='sk-...'
# Generate your year-in-review
cd ~/Documents/Repos
uvx code-recap summarize 2025 --open
# → Output: ./code-recap-2025/
That's it! Your reports open automatically in the browser.
Installation Options
# Run directly (no install)
uvx code-recap summarize 2025
# Or install globally
uv tool install code-recap # then use: code-recap summarize ...
pip install code-recap # then use: code-recap summarize ...
Use Cases
Year-end report with HTML
code-recap summarize 2025 --open
# → Reports saved to ./code-recap-2025/ (markdown + HTML)
Daily time logging
code-recap daily --date yesterday
Blog post from your commits
code-recap blog full "Building a Custom Protocol" --period 2025-Q3
Multi-year statistics (CSV export)
code-recap stats 2020:2025 --granularity year --format csv
How It Works
Run code-recap from a directory containing git repositories:
~/Documents/Repos/ # Run code-recap here (or use --root <path>)
├── project-a/ # Git repository (scanned)
├── project-b/ # Git repository (scanned)
├── side-project/ # Git repository (scanned)
└── code-recap-2025/ # Generated report (or use --output-dir to specify a different directory)
├── summary-2025.md
└── html/
└── index.html
No configuration needed for basic use. Just run the command and get a unified report.
For multi-client workflows, create a config file:
code-recap init # Creates config.yaml + API key setup
See the Configuration Guide for full details.
Recommended Models
Code Recap uses LiteLLM to support multiple LLM providers:
| Model | Command | Best For | Cost |
|---|---|---|---|
| GPT-4o-mini | --model gpt-4o-mini |
Default choice, reliable and fast | ~$0.10/year |
| Gemini 2.5 Flash | --model gemini/gemini-2.5-flash |
Large codebases (1M context), very fast | ~$0.25/year |
| Gemini 3 Flash | --model gemini/gemini-3-flash-preview |
Latest Gemini model | ~$0.40/year |
| Claude 4.5 Haiku | --model claude-haiku-4-5 |
Best writing quality for summaries | ~$0.75/year |
Costs shown are approximate for summarizing 1 year of typical developer activity (~3000 commits).
code-recap summarize 2025 --list-models # See all available models
Commands
| Command | Description |
|---|---|
summarize |
LLM-powered activity summaries (main command) |
daily |
Daily activity for time logging |
stats |
Statistics without LLM (text/markdown/CSV) |
html |
Convert markdown to HTML reports |
blog |
Generate blog posts from commits |
deploy |
Deploy HTML reports to providers |
git |
Repository utilities (fetch, archive) |
See the Command Reference for detailed options.
Documentation
- Configuration Guide — Client mapping, API keys, exclusions, HTML styling
- Command Reference — Detailed options for all CLI commands
- Deployment Guide — Deploy and share HTML reports
- Extending Code Recap — Implement custom deployment providers
- Example Configuration — Full config with all options documented
Installation
Using uv (Recommended)
# Install as a tool
uv tool install code-recap
# Or run directly without installing
uvx code-recap summarize 2025
Using pip
pip install code-recap
Development
git clone https://github.com/nrb-tech/code-recap.git
cd code-recap
uv sync --dev
# Run linting
uv run ruff check .
uv run ruff format .
Requirements
- Python 3.9+
- Git (command line)
License
MIT License - see LICENSE for details.
Built by NRB Tech
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file code_recap-1.3.1.tar.gz.
File metadata
- Download URL: code_recap-1.3.1.tar.gz
- Upload date:
- Size: 105.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd3cc47433ae161e5a74731121df80cec18ef8c7b59ffaa4bfd67c6ffbb50484
|
|
| MD5 |
b73ec5498d9a37846ede79fce9076e2c
|
|
| BLAKE2b-256 |
6ea6bce9f5839349cb2c115679fe6eaeafa3dc56df76d8e1234d7142e79487af
|
Provenance
The following attestation bundles were made for code_recap-1.3.1.tar.gz:
Publisher:
publish.yml on NRB-Tech/code-recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_recap-1.3.1.tar.gz -
Subject digest:
fd3cc47433ae161e5a74731121df80cec18ef8c7b59ffaa4bfd67c6ffbb50484 - Sigstore transparency entry: 804904016
- Sigstore integration time:
-
Permalink:
NRB-Tech/code-recap@242c0d2bec34f14468d170cab835d4d61102fd52 -
Branch / Tag:
refs/tags/v1.3.1 - Owner: https://github.com/NRB-Tech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@242c0d2bec34f14468d170cab835d4d61102fd52 -
Trigger Event:
push
-
Statement type:
File details
Details for the file code_recap-1.3.1-py3-none-any.whl.
File metadata
- Download URL: code_recap-1.3.1-py3-none-any.whl
- Upload date:
- Size: 107.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc9ea8d1f3fe5aadb5703baaa09afa0f16f89e70c3794837c995b9ffc054ff00
|
|
| MD5 |
8fe6236203a079a75db6e57953274a85
|
|
| BLAKE2b-256 |
f9de8a1e651abb08338025dbee809ceb163a0aad81927b56513e9854697f1335
|
Provenance
The following attestation bundles were made for code_recap-1.3.1-py3-none-any.whl:
Publisher:
publish.yml on NRB-Tech/code-recap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
code_recap-1.3.1-py3-none-any.whl -
Subject digest:
cc9ea8d1f3fe5aadb5703baaa09afa0f16f89e70c3794837c995b9ffc054ff00 - Sigstore transparency entry: 804904018
- Sigstore integration time:
-
Permalink:
NRB-Tech/code-recap@242c0d2bec34f14468d170cab835d4d61102fd52 -
Branch / Tag:
refs/tags/v1.3.1 - Owner: https://github.com/NRB-Tech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@242c0d2bec34f14468d170cab835d4d61102fd52 -
Trigger Event:
push
-
Statement type: