Git Visual Timeline — a keyboard-driven TUI for exploring file commit history
Project description
gvt — Git Visual Timeline
A keyboard-driven TUI for exploring the commit history of any file in a git repo. Think lazygit meets a video timeline scrubber, focused on per-file history.
Install
pip install git-visual-timeline
Usage
# Open in any git repo
gvt
# Jump directly to a file
gvt path/to/file.py
Features
- Visual timeline with heatmap-colored ticks (green=adds, red=deletes, amber=mixed)
- Step-through mode — scrub one commit at a time to see what changed
- Pin mode — press
xto mark start/end and diff any two commits - Syntax-highlighted diffs with inline and whole-file views
- Commit search (
c) — fuzzy search all repo commits by message, branch name, or author, then drill into changed files - File search (
f) — fzf-style file picker - Time filter (
t) — filter timeline by date range (1w, 1m, 3m, custom date) - Inline blame (
b) — right-aligned blame annotations - Contributor breakdown (
B) — visual bar chart of who changed the file - WIP indicator — hollow tick showing uncommitted changes
- 5-pane layout with numbered switching (1-5) and Ctrl+hjkl navigation
- tmux integration — seamless pane switching at edges (add
gvtto youris_vimregex) - Context-sensitive status bar showing relevant shortcuts per pane
Keybindings
| Key | Action |
|---|---|
1-5 |
Jump to pane |
Ctrl+h/j/k/l |
Navigate panes directionally |
h/l |
Move timeline cursor |
x |
Pin start/end commits |
X |
Snap nearest pin to cursor |
n/p |
Next/prev diff hunk |
w |
Toggle whole-file view |
b |
Toggle inline blame |
B |
Contributor breakdown |
c |
Search commits (all repo) |
f |
Search files |
t |
Time filter |
+/- |
More/less diff context |
? |
Help |
q |
Quit (with confirmation) |
qq |
Quit immediately |
Requirements
- Python 3.10+
- A git repository
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
git_visual_timeline-0.1.0.tar.gz
(29.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file git_visual_timeline-0.1.0.tar.gz.
File metadata
- Download URL: git_visual_timeline-0.1.0.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9c3920f23c03b49b3f4e7b8020beefc2392bbf13f8908c23ec5096873bb267c
|
|
| MD5 |
6aa3f455d820acbc92b7028aaf569c26
|
|
| BLAKE2b-256 |
a88ea40bb36b5407fb719c0c18f24248f1a67d810251b780c2df397eeae51e8e
|
File details
Details for the file git_visual_timeline-0.1.0-py3-none-any.whl.
File metadata
- Download URL: git_visual_timeline-0.1.0-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a8b6cdbf776a2f932c6ee97f668500df3b42d42e3dc4886dc79da823940ef0c
|
|
| MD5 |
6315652c750ec6d6c4d07c6d7a644f31
|
|
| BLAKE2b-256 |
84694e9200b9650c6ad84aac8fb50a2fec44139ea192569ef8db9cd05cc261b2
|