A terminal-based git history visualization tool with live updates and time-based navigation.
Tools like tig and lazygit are excellent for performing git operations. gitree takes a different approach:
| gitree | tig / lazygit | |
|---|---|---|
| Focus | Visualization | Actions |
| Philosophy | Read-only explorer | Full git workflow |
| Time navigation | Date histogram with range filtering | Scroll only |
| Live updates | Auto-refresh on file changes | Manual refresh |
| Graph density | Dynamic width based on viewport | Fixed width |
gitree is for understanding history, not managing it. When you need to explore a complex branch structure, find when a change was introduced, or visualize commit patterns over time — without accidentally modifying anything.
Use gitree alongside your existing workflow, not as a replacement.
- Visual commit graph - Multi-lane DAG visualization showing branch relationships
- Live updates - Graph refreshes automatically when repository changes
- Inline commit details - Expand commits to see files and diffs without leaving the graph
- Tag visualization - Tags displayed as yellow badges on commits
- Filtering - Filter by branch, author, or tag
- Author highlight - Dim other commits to focus on one contributor
- Search - Find commits by message or hash
- Date histogram - Timeline showing commit density, filter by time range
- Insights mode - Statistics dashboard with top authors, most-changed files, and activity heatmap
- Diff view - View file changes with syntax highlighting
- Vim-style navigation - Keyboard-driven with mouse support
- Update checker - Check for new releases via
--check-update
gitree repo-name
───────────────────────────────────────────────────────────────────
Message Author Date Hash
───────────────────────────────────────────────────────────────────
│ ○ [main] Add feature... Alice 12m ago 6144c
│ ╔═══════════════════════╤═══════════════════════════════════╗
│ ║ Commit: 6144c3d... │ Files (3) +42 -18 ║
│ ║ Author: Alice <a@...> │ > M src/app.go +30 -10 ║
│ ║ Date: Jan 30, 2026 │ A src/new.go +12 -0 ║
│ ╚═══ [j/k] file [Enter] diff [Esc] close ═════════════════╝
●─┘ Merge branch 'feature' Bob 1h ago a1b2c
│ Fix authentication bug Carol 2h ago b2c3d
───────────────────────────────────────────────────────────────────
⣀⣀⣤⣤⣶⣶⣿⣿⣶⣶⣤⣤⣀⣀
[━━━━━━━━━━]
───────────────────────────────────────────────────────────────────
● watching 47/1284 commits 12 branches [b]ranch [c]lear
# Open current directory
gitree
# Open specific repository
gitree /path/to/repo
gitree ~/projects/myrepo
# With initial filters
gitree -b main # Filter by branch
gitree -a "Alice"# Filter by author
gitree -t v1.0.0 # Filter by tag
gitree -b main -a "Alice"# Combine filters# Version and updates
gitree --version # Show version info
gitree --check-update # Check for new releases| Key | Action |
|---|---|
j / k, ↑ / ↓ | Navigate up/down |
Ctrl+d / Ctrl+u | Page down/up |
g / G | Jump to top/bottom |
Enter | Expand commit (show files) |
Esc | Close/collapse |
q | Quit |
| Key | Action |
|---|---|
b | Branch filter |
a | Author filter |
A | Author highlight (dims others) |
t | Tag filter |
/ | Search commits |
n / N | Next/previous match |
c | Clear all filters |
i | Toggle insights view |
h | Show help |
| Key | Action |
|---|---|
r | Toggle histogram |
Tab | Focus histogram |
h / l | Move selection (when focused) |
[ / ] | Set range start/end |
+ / - | Zoom in/out |
Enter | Apply time filter |
| Key | Action |
|---|---|
j / k | Navigate files |
Enter | Open diff view |
Esc | Collapse |
| Key | Action |
|---|---|
j / k | Scroll diff |
h / l | Previous/next file |
Esc / q | Close |
Download the latest release from the releases page.
# Example for macOS Apple Silicon
tar -xzf gitree_0.4.0_darwin_arm64.tar.gz
sudo mv gitree /usr/local/bin/macOS users: If you see "cannot be opened because it is from an unidentified developer", run:
xattr -d com.apple.quarantine /usr/local/bin/gitreego install github.com/nogo/gitree/cmd/gitree@latestgit clone https://github.com/nogo/gitree.git
cd gitree
make build
# Binary is in bin/gitree- Go 1.25 or later
- A terminal with 256-color support
MIT