Skip to main content

Git-history-aware codebase context generator for LLMs

Project description

gitbrief

Generate LLM-ready context from any git repository — in seconds.

gitbrief . --budget 8000 | pbcopy   # copy to clipboard, ready to paste into Claude/GPT

PyPI version Python 3.10+ License: MIT Tests


The problem

Every developer using LLMs (Claude, GPT, Gemini) manually copies code into chat windows. You paste some files, forget others, include outdated versions, blow the context window, and guess at what's relevant.

This is wasted engineering time.

The solution

gitbrief reads your git history to understand what's actually important right now, then packs the right files into a token-budget-aware document — perfect for pasting into any LLM.

$ gitbrief . --budget 8000 --stats

╭────────────────────────────╮
│ gitbrief allocation stats │
╰────────────────────────────╯
Token budget: 8,000 | Used: 7,999 (100%)
Files included: 6   | Skipped (budget): 194
Git commits analyzed: 100 | Branch: main

Top files by priority:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┓
┃ File                      ┃ Priority ┃ Tokens ┃ Changed? ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━┩
│ src/auth/middleware.py    │     0.95 │    432 │ 🔥       │
│ src/auth/tokens.py        │     0.91 │    318 │ 🔥       │
│ README.md                 │     0.83 │  1,240 │ 🔥       │
│ pyproject.toml            │     0.75 │    168 │ —        │
└───────────────────────────┴──────────┴────────┴──────────┘

Files marked 🔥 were modified in recent commits. The most relevant context surfaces automatically.


Why gitbrief beats alternatives

Feature gitbrief repomix llm-ctx manual
Git-history-aware ranking
Token budget control partial
Recency decay scoring
Recent commits narrative
Single command

Install

pip install gitbrief

Note: PyPI release coming soon. Until then, install from source:

pip install git+https://github.com/faw21/gitbrief.git

Requires Python 3.10+ and optionally a git repository.


Usage

# Basics
gitbrief .                          # current repo, 32k token budget
gitbrief /path/to/repo              # any repo

# Token budget control
gitbrief . --budget 8000            # fits GPT-4 32k
gitbrief . --budget 128000          # Claude 3.5 / GPT-4o full context

# Output
gitbrief . -o context.md            # write to file
gitbrief . | pbcopy                 # macOS: copy to clipboard
gitbrief . | xclip -selection clipboard  # Linux

# Filter
gitbrief . --no-tests               # skip test files (save tokens)

# Debug  
gitbrief . --stats                  # print allocation table to stderr
gitbrief . --max-commits 200        # analyze more git history

How ranking works

gitbrief assigns each file a priority score (0–1):

  • Recency (60%): exponential decay — files changed today = 1.0, untouched 6 months = ~0.25
  • Frequency (40%): normalized commit frequency across history
  • Recency bonus: +0.2 if the file appeared in the most recent 20% of commits
  • Type bonuses: README (+0.1), config files (+0.15)

Files are sorted by priority and greedily selected within your token budget.


Development

git clone https://github.com/faw21/gitbrief
cd gitbrief
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest tests/   # 38 tests, 93% coverage

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitbrief-0.1.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitbrief-0.1.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file gitbrief-0.1.0.tar.gz.

File metadata

  • Download URL: gitbrief-0.1.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for gitbrief-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c21b776b1584c409966df930bdb9f0584ec6457544b3d23ada3b03045ce94474
MD5 a967f2bf4cd56c8f2550583a21f4e91d
BLAKE2b-256 a5698d24b1d2bf6ff11d6d9ac97110d674d501501ffb83729f407d42c38b03bf

See more details on using hashes here.

File details

Details for the file gitbrief-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitbrief-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for gitbrief-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8be220665466b87bf533ec3d2b69c1b23581d4b82ad042bd7ba9ab85ef3c4bbd
MD5 cd2bd224863f6de0151a6e7ebec4c474
BLAKE2b-256 21bcf6fe9cf6f6b26f4f83d9841320fe9ba75a2bb5d72e3ccce3becf0942f935

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page