Skip to content

Latest commit

Β 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

commit-grapher

🌐 ·

Your git history, deanonymized. commit-grapher rounds up every commit, branch, and pull request from all your version-control accounts, drags them into one gloriously nerdy dashboard, and gently snitches on your 2 AM coding habits β€” all without ever reading a single line of your code.

It talks to GitHub, Azure DevOps, GitLab, Bitbucket, Gitea and Codeberg (and matches your Jira issues to commits), reads git metadata only via the providers' REST APIs, and keeps your tokens in the OS keychain β€” never on disk, never in the code, never anywhere it shouldn't be.

Local-first Β· metadata-only Β· no telemetry Β· v0.1.0


What you get

πŸ•ΈοΈ Network Graph β€” the flagship

An Obsidian-style, physics-driven WebGL graph (Sigma.js) of accounts β†’ repos β†’ branches β†’ PRs β†’ commits. Zoom, drag, hover to light up a node's neighbourhood, click a repo to focus and drill in. A rich left filter panel slices by provider, account, organization, workspace, repo, branch, PR, author, tag β€” plus a human-vs-AI toggle and "only my activity".

🟩 Contribution Heatmap

The familiar GitHub calendar β€” except combined across every provider at once. Click any day to drill into a real git-graph (branch/merge lanes, clickable commit links).

πŸ“Š Stats dashboard

KPI cards plus genuinely fun deep-dives: The Essay (your longest commit message), A long time ago, in a repo far, far away (your oldest commit/PR), Code Besties (who you commit alongside most), The Graveyard (repos you've ghosted), your Night-Owl hour, most-starred repos, a tag cloud, and per-repo enrichment (stars, forks, releases, contributors, Docker pulls, npm downloads). Everything cross-filters and every section collapses.

πŸ‘₯ Contributors

Everyone who's ever touched your repos, ranked β€” with per-contributor commit counts and a human-vs-AI breakdown (yes, it knows which commits your robots wrote).

πŸ”Œ Accounts

Add a provider with a Personal Access Token or GitHub OAuth device flow, rename accounts, and export/import your whole dataset as JSON.

Screenshots

Network Graph β€” accounts, repos, branches, PRs and commits as one living map:

Network Graph (dark)

Contribution Heatmap
Contribution heatmap
Contributors
Contributors
Stats dashboard
Stats dashboard
Stats β€” repository stats & charts
Stats charts
Accounts & integrations
Accounts
Light theme
Network graph light theme

πŸ“– A full walkthrough with an animated live graph lives on the project site.

Privacy, plainly

  • Metadata only. Commits, branches, PRs, tags, repo stats. The app never clones a repo or reads file contents. It only judges your commit messages.
  • Tokens live in your OS keychain (via keyring) β€” never written to disk in plaintext, never logged, never committed.
  • Local-first. It runs on your machine and talks straight to the providers. No middleman.

Run it

One command β€” creates the venv, installs everything, builds the frontend, and serves it all on :8000. Requires Python β‰₯ 3.13, Node, and npm on your PATH.

macOS / Linux

./start.sh                # β†’ http://localhost:8000
./start.sh dev            # hot reload: backend :8000 Β· frontend :5173

Windows (PowerShell, or double-click start.bat)

.\start.ps1               # β†’ http://localhost:8000
.\start.ps1 dev           # hot reload: backend :8000 Β· frontend :5173

First run on Windows blocked by execution policy? Use powershell -ExecutionPolicy Bypass -File .\start.ps1 (or just run start.bat, which sets it for you).

…or the manual steps
# backend (Python β‰₯ 3.13) β€” macOS/Linux
python -m venv .venv && source .venv/bin/activate
# Windows (PowerShell):  python -m venv .venv ; .venv\Scripts\Activate.ps1
# Windows (cmd.exe):     python -m venv .venv  &  .venv\Scripts\activate.bat
pip install -e backend
uvicorn app.main:app --app-dir backend --reload    # http://localhost:8000

# frontend β€” dev (hot reload, proxies /api to :8000)
cd frontend && npm install && npm run dev           # http://localhost:5173
# ...or build once and let the backend serve it on :8000
cd frontend && npm run build

Connect an account

Open the app β†’ Accounts β†’ add a provider + Personal Access Token β†’ Sync β†’ explore. Per-provider, step-by-step guides (token scopes, gotchas) live in docs/:

Provider Guide
GitHub docs/github.md
Azure DevOps docs/azure-devops.md
GitLab docs/gitlab.md
Bitbucket docs/bitbucket.md
Gitea docs/gitea.md
Codeberg docs/codeberg.md
Jira (issue matching) docs/jira.md

Tip: for full GitHub org coverage, use a classic token (repo + read:org). Fine-grained tokens can't see an org's repos until the org approves them.

Test

python -m app.test_charts     # from backend/, with the venv active

Versioning

Semantic Versioning, tracked in CHANGELOG.md. The version is defined once in frontend/package.json and injected at build time (shown in the filter-panel footer on every page). Pre-1.0: patch = fixes, minor = features, major = the first stable release.

Roadmap

Tracked with Backlog.md under backlog/ β€” network-graph polish, more providers, richer stats, and a public GitHub Pages site with a live animated graph.


Developed by FXerkan Β· Code more, worry less. Β· GitHub

About

Your git history, deanonymized πŸ•΅οΈ β€” rounds up every commit/branch/PR from all your git accounts (GitHub, Azure, GitLab, Bitbucket, Gitea, Codeberg) into one nerdy local dashboard. Reads metadata only, never your code.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages