Some repos never leave home
gerve — like serve, for a git repo.
Most of my repositories never see a forge. Client code under NDA, private solo work, throwaway experiments — the audience is me, on this machine. Terminal git log is fine, but sometimes you want to browse: click through a tree, read a rename-aware diff, see who touched a line and when.
So this morning I built that. One static Go binary; point it at any checkout:
gerve -p 8080 .
You get a localhost web UI: file tree with README rendering at every level and a live worktree overlay, blobs with syntax highlighting, commit log, rename-aware diffs (unified or side-by-side), blame, and per-file history. Read-only — it never writes to the repository — and localhost-only by default, so nothing leaves your machine.
If you already have Go
Needs 1.26 or newer. One line:
go install github.com/b7r-dev/gerve/cmd/gerve@latest
The binary lands in $(go env GOPATH)/bin — make sure that’s on your PATH:
export PATH="$PATH:$(go env GOPATH)/bin"
Under the hood: go-git for object access, the git CLI for what it does best — rename-aware patches, blame, --follow logs — server-rendered templates with every asset embedded. Zero build step, zero network egress.
MIT licensed, on GitHub: b7r-dev/gerve.