veer

A live-diffing TUI for coding with AI.
Veer watches your working tree for changes and displays a live, color-coded diff in a fullscreen terminal interface. It's designed to run alongside an AI coding session so you can see exactly what's being changed as it happens.
Features
- Live-updating diff that refreshes every 500ms
- File tree sidebar with per-file
+N -M line counts
- Line numbers with colored gutter (green/red background for adds/removes)
- Chunk separators (
…) instead of raw @@ hunk headers
- Mouse support: click files to select, scroll wheel in both panes
- Vim-style keyboard navigation
- Respects
.gitignore (including global excludes)
- Shows untracked files as all-additions diffs
- Header bar with branch, commit SHA, commit message, and working directory
Install
Homebrew
brew install broothie/tap/veer
Go
go install github.com/broothie/veer@latest
Script
Install the latest release with a convenience script:
curl -fsSL https://raw.githubusercontent.com/broothie/veer/main/scripts/install.sh | sh
You can override the version or install directory:
curl -fsSL https://raw.githubusercontent.com/broothie/veer/main/scripts/install.sh | VERSION=v0.1.5 BIN_DIR="$HOME/.local/bin" sh
Linux tarball
Download the latest release for your architecture and install it into /usr/local/bin:
VERSION=v0.1.5
ARCH="$(uname -m)"
case "$ARCH" in
x86_64) ARCH=amd64 ;;
aarch64|arm64) ARCH=arm64 ;;
*) echo "unsupported architecture: $ARCH" >&2; exit 1 ;;
esac
curl -fsSL -o /tmp/veer.tar.gz \
"https://github.com/broothie/veer/releases/download/${VERSION}/veer_${VERSION#v}_linux_${ARCH}.tar.gz"
tar -xzf /tmp/veer.tar.gz -C /tmp
sudo install /tmp/veer /usr/local/bin/veer
Replace VERSION with the release tag you want to install.
Usage
veer # show all working tree changes
veer main # diff working tree against a ref
veer src/ lib/ # filter to specific paths
veer main src/ # combine ref and path filter
veer -s # show only staged changes
veer -U 5 # 5 lines of context
veer -n 1s # refresh every 1 second
veer -w 40 # initial sidebar width of 40 (default 35)
veer -t monokai # use monokai syntax theme (default dracula)
veer --dump-view > /tmp/veer.txt # render one frame to stdout and exit
veer --no-syntax-highlight # disable syntax highlighting
veer -d # enable debug logging to ~/.veer/debug.log
TODO
- Line numbers
- Git history
- CLI flags
- Thicker sidebars
- Resizable sidebar
- Scrollbar
- Continuous scroll
- Refactor everything
- Expandable ellipsis
- Sticky file headers
- Rethink keybinds
- Hunk/file staging and committing
- Dynamic sidebar width based on window size
- Flag to disable syntax highlighting
- Fix version flag output (
veer -v currently prints dev)
- Fix header truncation
- Fix line wrapping
- Fix pane borders
- Fix line numbers changing upon file/hunk staging
- Add linux to goreleaser
- Ensure README matches implementation
- Flesh out tests
- Run go vet in CI
- Add GitHub info (issues, discussions, etc.)
- Set up goreleaser
- Syntax highlighting