Terminal UI for exploring who did what in a Git repository. Run it from any clone to browse branches, users, and file-level history without leaving the shell.
Built with Bubbletea, Bubbles, and Lip Gloss.
| Feature | What it does |
|---|---|
| Branch users | For each local branch, lists unique committers (name and e-mail). |
| User branches | Pick a person (name or e-mail, partial match). Optionally limit to the last N days. Lists every branch where they committed. |
| User files | Pick a person, then optional branch and day window. Lists files they changed, sorted by touch count. Select a file to open commit history (hash, date, author, subject, body). Esc or q returns to the file list. |
| User dashboard | Pick a person from the same all-authors list, optionally limit to the last N days, then view a scrollable summary: commit counts (merge and non-merge), first/last activity, total insertions/deletions from non-merge diffs, local branches touched (capped list), top files, recent commits, and commits per calendar year. Large repos may take a moment while git aggregates data. |
cd /path/to/a/git/repo
gitinfoIf you are not inside a Git working tree, the program exits with an error.
With the Go toolchain (installs from the module at @latest):
go install github.com/altafino/gitinfo@latestFrom source:
git clone https://github.com/altafino/gitinfo.git
cd gitinfo
go build -o gitinfo .Put the binary on your PATH (for go install, $GOPATH/bin or $(go env GOPATH)/bin is typical).
| Key | Action |
|---|---|
| ↑ ↓ (also k / j on some screens) | Move the highlight or scroll |
| Enter | Choose a menu item, confirm user, submit a form, or open commit details for the highlighted file |
| / | Filter the user list (user branches, user files, user dashboard) |
| Tab | Next field on forms |
| Esc or q | Go back one level; on the main menu, q exits the app. From the User dashboard screen, Esc returns to the day filter; q jumps to the main menu. |
| Ctrl+C | Quit |
Shows all local branches and the people who have non-merge commits on each branch. Use ↑ ↓ to move the highlight between users, then Enter to open the User dashboard (optional last N days, same as the menu entry). Esc from the day filter returns here.
- Choose User Branches from the menu.
- Select a user from the list (type / to narrow the list).
- Optionally enter last N days (empty means all time).
- You get a list of branches where that user appears in the history.
Matching is case-insensitive and substring-based on name or e-mail.
- Choose User Files.
- Select a user (/ to filter).
- Optionally set branch (empty = all branches) and last N days (empty = all time).
- Use ↑ ↓ to move the cursor over files; Enter loads commit history for that file and user (respecting the same branch and day filters).
- In the history view, ↑ ↓ scrolls long output; Esc or q returns to the file list.
- Choose User Dashboard from the menu.
- Select a user (/ to filter).
- Optionally enter last N days (empty means all history), then Enter to load.
- Scroll the dashboard with ↑ ↓. Esc goes back to the filter step; q returns to the main menu.
The dashboard matches the exact author identity (name and e-mail) from the user list. It does not include reflogs, stashes, or other data outside normal commit history.
- Go 1.24 or newer (to build)
gitonPATH- Current working directory must be inside a Git repository when you run
gitinfo