A terminal UI for understanding any Git repository at a glance.
Visualize commit history, branch activity, file churn, contributor activity, TODO comments, and stale files — for any local path or GitHub URL.
| Tab | What you get |
|---|---|
| Overview | Repo name, path, total commits, contributors, branches, tags (with recent tag names), size, and latest commit |
| Branches | All branches sorted by most-recent commit — shows author, commit age, hash, and ● active badge for branches touched in the last 7 days |
| Churn | Files ranked by commit count with heatmap bars, author counts, and last-modified timestamps |
| Activity | 52-week contribution calendar + contributor leaderboard with commit share and email |
| Todos | Scans for TODO, FIXME, HACK, and XXX across 40+ file types with a badge summary |
| Stale | Files sorted by oldest last-modified — useful for spotting dead code |
Works with local paths and remote GitHub URLs. Remote repos are shallow-cloned (last 200 commits) to a temp directory and deleted automatically on exit — including any orphaned dirs from previous crashed sessions. Commit history, churn counts, and activity data will reflect only those commits for large repositories.
go install github.com/cluzier/repoview@latestgit clone https://github.com/cluzier/repoview.git
cd repoview
go build -o repoview .
./repoview- Go 1.24+
giton yourPATH
repoview # launch the TUI
repoview --version # print version and exitOn launch, enter a local path or GitHub URL and press Enter:
~/projects/my-app
/absolute/path/to/repo
https://github.com/owner/repo
git@github.com:owner/repo.git
Paths starting with ~ are expanded to your home directory on all platforms.
| Key | Action |
|---|---|
← → or Tab |
Switch tabs |
↑ ↓ or k j |
Scroll the table |
g / G |
Jump to first / last row |
Esc |
Clear filter → back to input screen |
q / Ctrl+C |
Quit |
| Key | Action |
|---|---|
/ |
Filter list by filename |
o / Enter |
Open selected file in the built-in pager |
y |
Copy selected file path to clipboard |
r |
Refresh analysis |
q/Ctrl+C/Escall work during loading — the app is never frozen.
| Key | Action |
|---|---|
↑ ↓ |
Scroll line by line |
PgUp PgDn |
Scroll page by page |
q / Esc |
Close pager, return to list |
repoview/
├── main.go # Entry point — version flag + Bubble Tea bootstrap
└── internal/
├── git_analysis/
│ └── analysis.go # All repository data gathering via exec git
├── metrics/
│ └── metrics.go # Risk scoring and TODO/FIXME scanner (word-boundary aware)
├── utils/
│ └── utils.go # Shared formatting helpers (bytes, time, truncate)
└── tui/
├── styles.go # Palette and every lipgloss style — retheme here
├── helpers.go # Blob animation, path utils, cloneRepo, runAnalysis
├── model.go # Model struct, New(), Init(), Update(), state helpers
├── view.go # View(), screen renderers, renderTable()
└── tabs.go # One render function per tab
└── keys.go # Key bindings (bubbles/key + bubbles/help)
- Bubble Tea — TUI framework
- Bubbles — UI components (table, spinner, viewport/pager, text input, help)
- Lip Gloss — terminal styling and layout; adaptive colors for light/dark terminals
Contributions, issues, and feature requests are welcome! See CONTRIBUTING.md for a guide to the codebase and how to get started.
MIT © cluzier