Show HN: GitGlimpse – CLI for understanding AI-generated Git diffs
GitGlimpse is an open-source CLI that filters noise from git history, groups commits into tasks, and generates structured outputs like PR descriptions, standups, and weekly reports. It runs offline, respects privacy, and optionally integrates with LLMs for diff analysis.
Article intelligence
Key points
- Filters out noise commits (merges, lock files, formatting) automatically
- Groups commits into tasks based on branches and 3-hour gaps
- Supports multiple output formats: Markdown, Rich, JSON
- Integrates with CI and editor slash commands (Claude Code, Cursor)
Why it matters
This matters because filters out noise commits (merges, lock files, formatting) automatically.
Technical impact
May affect model selection, inference cost, product capability, and evaluation benchmarks.
v0.1.7structured context for git histories→
Your AI writes the code. Yougitglimpse writes the context.
A CLI that reads your git history, filters noise, groups commits into tasks, and prints PR descriptions, standups, weekly reports, and LLM-ready JSON. No accounts. No tracking. Works offline.
Star on GitHub
● Python 3.11+● MIT license● Works offline● Local LLM ready
~/my-project
LIVE
$
The problem
Your git log knows what changed. It just doesn't tell you.
● Raw git log — noise & shortcuts
git log --oneline -10
a3f7c2dwip
f24bb01fix
9c1e8a2Merge branch 'main' into feat/auth
b8d5e3fupdate
55a09bcprettier
e7f2c4arefactor
12bc89dbump deps
aa11e5estuff
3d2a1f7format code
88cf014tests
↑ what did you actually do this week?
● glimpse standup — clean & structured
glimpse standup
grouped
$ glimpse standup
Filtered 4 noise commits. 6 commits → 3 tasks.
Yesterday:
•Refactored auth middleware to use JWT rotation~1h
•Fixed rate-limiter bypass on batch endpointsAUTH-247 ~0.5h
•Added integration tests for refresh flow~0.5h
Estimated effort: ~2h across 3 tasks
How it works
Four stages between git log and structured output.
No services, no databases, no setup. Just a Python process reading your local repository — running each commit through a deterministic pipeline before ever touching an LLM.
Input
git history
Whatever git produces — clean or chaotic.
a3f7wip
f24bprettier
9c1eMerge branch…
b8d5refactor auth
55a0fix rate limit
›
01
Filter noise
Drops merges, lock files, formatting commits.
›
02
Group tasks
Buckets by branch, splits on 3-hour gaps.
›
03
Extract tickets
Reads AUTH-247 and #15 from branch names.
›
04
Estimate effort
Heuristic from commit timing, capped at sane limits.
›
Output
structured tasks
Markdown, Rich, or JSON — your call.
●JWT rotation~1h
●Rate limit fix~0.5h
●Integration tests~0.5h
Five commands
One repo. Many surfaces.
Pick a command — the terminal updates with what you'd actually see in your shell. Pipe it to a file, a Slack channel, or your AI editor.
~/my-project — glimpse pr
feat/jwt-rotation
$
CI integration
Every PR gets a context comment. Automatically.
Drop the action into your workflow. The bot posts a single comment per PR and updates it on every push — no duplicates, no babysitting.
● OpenAdd JWT rotation to auth middleware#247
gitglimpse-botbotcommented 2 minutes ago · updated on push
PR Summary — AUTH-247
Refactored authentication middleware to support JWT token rotation with automatic refresh handling. Added integration tests covering the new refresh flow and fixed a rate-limiter bypass on batch endpoints.
Changes
▸JWT rotation logic in auth/middleware.py(~1h)
▸Rate limiter fix for api/limits.py batch path (~0.5h)
▸Integration tests for tests/test_auth.py refresh flow (~0.5h)
6 commits+342−28~2h estimatedposted by [email protected]
Template mode — no API key- uses: dino-zecevic/gitglimpse@main with: github-token: ${{ secrets.GITHUB_TOKEN }}
With LLM — reads your diffs- uses: dino-zecevic/gitglimpse@main with: github-token: ${{ secrets.GITHUB_TOKEN }} llm-provider: openai llm-api-key: ${{ secrets.OPENAI_API_KEY }} llm-model: gpt-4o-mini
Also runs on GitLab CI, Bitbucket Pipelines, and any shell. Supports OpenAI, Anthropic, and Gemini — or runs offline against Ollama.
Editor integration
Becomes a slash command in Claude Code & Cursor.
Run glimpse init. Commit the four generated files. Every developer who pulls the repo gets /standup, /pr, /week, and /report — no install, no docs, no onboarding.
my-project/.claude/commands/standup.md
.claude / commands
▸ standup.md
▸ report.md
▸ pr.md
▸ week.md
workspace
▸ src/
▸ tests/
▸ README.md
✻Welcome to Claude Codeconnected to my-project · type / for slash commands
↳ Try— or type one yourself.
❯
Built-in
What you get out of the box.
Noise filtering
Merge commits, lock files, formatting changes — excluded automatically. Mixed-noise commits are kept.
Task grouping
Buckets by branch, splits on 3-hour gaps. Three commits become one task with a derived summary.
Ticket extraction
Branches like feature/AUTH-42-login or feat/gh-15 surface ticket IDs in your output and JSON.
Effort estimation
Heuristic from commit timing — gaps under 2h count, longer ones cap. Labelled as estimated, not tracked.
Multi-project mode
Run from a parent directory to aggregate work across repos. Auto-detects, merges timelines.
Diff analysis
With --context both, sends actual code diffs to the LLM. Summaries describe intent, not file names.
Privacy-first
No accounts. No telemetry. Your commits never leave your machine unless you bring your own LLM key.
PyPI + GitHub Action
pip install for the CLI. The GitHub Action wraps it as one workflow step. Both stay in lockstep.
Bring your own LLM
OpenAI, Anthropic, Gemini, or Ollama running locally on your machine. Or skip the LLM — template mode is offline.
One command. Structured context for life.
No accounts. No setup. No tracking. Just open source.
Star on GitHub PyPI ↗
gitglimpse v0.1.7 · MIT · built by dinoze.devgithub · pypi · gitglimpse.com