Groundwork

Version control

lazygit: the fast visual layer over the Git you already know.

lazygit is a keyboard-driven terminal UI for Git: stage lines, read history, and review every change an agent left behind, with each keystroke mapping to a Git command you could type yourself. Groundwork ships working defaults and wires lazygit into tmux so any repository is one keystroke away.

When you'll want this An agent changed nine files and you want to review and stage the work hunk by hunk, not squint at a wall of git diff.
Quick reference — opening and moving
lg open in the current repo
prefix g popup for the current repo
prefix R pick any repo → its lazygit window
O open the repo in Neovim (Groundwork custom command)
? every shortcut for the panel you're in

#Learn Git first, then get fast

The Git page teaches the commands and introduces lazygit as a picture of them — start there if staging and branches are still new, because the TUI only makes sense as a view of a model you already hold. This page is about the layer Groundwork adds on top: managed defaults, editor integration, and the tmux wiring that makes lazygit the review surface for all your repositories, not just the one you happen to be standing in.

#The managed defaults

Groundwork manages ~/.config/lazygit/config.yml (and exports XDG_CONFIG_HOME=$HOME/.config in the login shell so lazygit actually reads it there on macOS, instead of ~/Library/Application Support). What's in it, and why:

os.editPreset: nvimCommit messages, rebases, and "edit this file" land in Neovim
gui.showBottomLine: trueThe shortcut hint line stays visible — discoverable keys beat memorized ones
gui.showPanelJumps: truePanel jump numbers stay visible in panel titles
gui.animateExplosion: falseNo animation, anywhere: motion adds nothing to reviewing a diff
gui.language: autoFollows your system language instead of pinning English
O custom command"Open repository in Neovim" from any panel — inspect in lazygit, edit in the editor, same window

It's a fully managed file: change it with chezmoi edit --apply ~/.config/lazygit/config.yml so your change survives the next apply, and see Customizing for the pattern.

#Reviewing an agent's work

lazygit's review loop is the human half of the agent workflow: the agent proposes, you inspect and own the commit. The moves that matter, all visible under ?:

SpaceStage or unstage the selected file — or the selected line/hunk inside a diff. Staging touches the index only; it never edits file contents
EnterDrill into a file's diff; drill into a commit to see what it changed
d on an unstaged changeDiscard it — lazygit asks first, and it only ever touches the change you selected
cCommit what's staged (message opens in Neovim)
z / ZUndo / redo, built on the reflog — exploration is safe

For the multi-repo version of this loop — every dirty repository as its own lazygit window — see Repository navigation and tmux repo windows.

#Accessible by construction

Everything is keyboard-driven with the current keys always on screen; state in Groundwork's surrounding tooling is words and symbols rather than color alone; and the one animation lazygit ships is turned off. If you prefer a mouse-first view some days, GitUp reads the same repository — tools here are choices, not tests.