gv

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2026 License: MIT Imports: 1 Imported by: 0

README

┌──────────────────────┐
│  ╔═╗╦  ╦             │
│  ║ ╦╚╗╔╝             │
│  ╚═╝ ╚╝   Git Vision │
└──────────────────────┘

TUI dashboard for monitoring multiple git repositories and worktrees. Auto-discovers git repos under configured paths and shows their status in real-time.

gv screenshot

Features

  • Auto-discovery — Scans configured directories for git repos and worktrees
  • Live status — Branch, dirty state, staged/modified/untracked counts, ahead/behind tracking
  • Diff insights — Lines added/removed, net delta, and file churn per repo
  • Activity sparklines — Visualize recent commit activity at a glance
  • Worktree aware — First-class support for git worktrees alongside regular repos
  • Conflict detection — Surface merge conflicts across all your repos
  • Background polling — Automatic refresh detects changes as you work
  • Vim-style navigationhjkl, half-page scrolling, filter, and more

Install

go install github.com/jackchuka/gv@latest

Or build from source:

git clone https://github.com/jackchuka/gv.git
cd gv
make install

Quick Start

gv init

The interactive wizard walks you through setup — just enter the directories where you keep your git repos. It writes ~/.config/gv/config.yaml for you.

Then launch the dashboard:

gv

Usage

gv                          # launch the dashboard
gv init                     # interactive config setup
gv --scan ~/extra/path      # override config and scan this path only
gv --config /path/to/conf   # use a custom config file

Configuration

Config lives at ~/.config/gv/config.yaml (respects $XDG_CONFIG_HOME).

scan_paths:
  - ~/code
  - ~/projects
  - ~/work

ignore_patterns:
  - "**/node_modules/**"
  - "**/vendor/**"
  - "**/.venv/**"

max_depth: 10 # directory scan depth (default: 10)
poll_interval: 5s # status check interval (default: 5s)
auto_refresh: true # enable background polling (default: true)

Common directories like node_modules, vendor, .cache, __pycache__, build, and dist are ignored by default.

Keybindings

Navigation

Key Action
j / Move down
k / Move up
g / Home Jump to top
G / End Jump to bottom
Ctrl+d Half page down
Ctrl+u Half page up
/ Filter repos
Esc Clear filter

Actions

Key Action
r Reload selected repo
f Fetch selected repo
F Fetch all repos
e Open in $EDITOR
o Open in Finder
y Copy repo path
: Run shell command

Views & Sorting

Key Action
1 Show all repos
2 Show dirty repos only
3 Show repos ahead of remote
4 Show repos with conflicts
5 Sort by diff volume
6 Sort by file churn
d Toggle detail panel
? Help

How It Works

gv walks your configured scan paths looking for .git directories and worktree links. It runs git status --porcelain=v2 and supplementary commands concurrently to build a status snapshot of each repo, then polls for changes in the background using content hashing to minimize overhead.

Requirements

  • Go 1.23+
  • Git

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd/root.go
cmd/root.go
internal
config
internal/config/config.go
internal/config/config.go
model
internal/model/repo.go
internal/model/repo.go
scanner
internal/scanner/detect.go
internal/scanner/detect.go
status
internal/status/git.go
internal/status/git.go
watcher
internal/watcher/interface.go
internal/watcher/interface.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL