LazyDots
A lazygit-style TUI for dotfiles in Go: see symlink status at a glance and link or unlink files with one key. Works with existing Stow-style repos.

- ROLE
- Solo: design and implementation
- RESULT
- Symlink status and one-key linking for Stow-style dotfile repos, installable with go install
- STATUS
- Work in progress, core symlink management works
- STACK
- GoBubbleteaLipglossYAML
- LINKS
- GitHub ↗
Quest briefing
Problem
Managing dotfiles by hand is tedious. Symlinks are easy to get wrong, and keeping track of what is linked is hard to do in your head. GNU Stow creates the links but does not show their current state.

What I built
- A Bubbletea/Lipgloss TUI that reads Stow-style package directories and shows per-file symlink state: linked, missing, or conflicting.
- One-key linking: press
spaceto link or unlink an individual file. - Safe operations: it never overwrites existing files, and only removes symlinks that point back into your repo.
- A first-run setup wizard and a
--no-splashflag; installs withgo install.
Roadmap
Not built yet: batch link/unlink per package, Git status and commit/push/pull from the TUI, per-machine profiles, and a conflict-resolution UI (diff, backup, overwrite).
Loot (what was learned)
- Bubbletea's Elm architecture fits terminal UIs well: state, update, view.
- Symlink edge cases pile up: broken links, nested directories, and files that exist but are not links. The safety checks were worth the effort.
- Designing a tool you use daily gives the fastest feedback loop there is.