Skip to content

Building Gitwatch

I've recently been running Claude Code in my home dir instead of in specific project dirs, so it can coordinate changes between different repos.

I was finding it difficult to keep track of which repos had been modified. I like the powerlevel10k git statusline, so I got Claude to create something similar for reporting on multiple repos at once.

Gitwatch is a TUI written in Rust with ratatui. I keep it open in a small tmux pane alongside Claude Code.

Gitwatch terminal interface showing a list of git repositories with their branches and status

It looks at my home dir and searches recursively (up to 5 levels deep) for git repos. It orders them by most recent file change or git operation, and reports their current branch as well as a status section in the style of powerlevel10k. It shows modified / added / untracked etc. files, stashes, and push/pull status.

I can use vim motions to move between the lines; if I want to examine the contents of the diff, hitting enter will open neogit (neovim plugin) in that repo.

Neogit interface showing unstaged changes with a diff view