Stowmate¶
A friendly dotfiles manager powered by GNU Stow.
Stowmate sits between your dotfiles repository and your system: it discovers packages, installs their system dependencies, resolves symlink conflicts, and runs hooks—so you can go from a fresh machine to a fully configured environment with one command.
What stowmate is not
Stowmate is not a replacement for GNU Stow. It orchestrates Stow, plus the package-manager and shell-hook steps that usually surround it.
What it does¶
Package-aware — Discovers every package in your dotfiles directory and processes each one individually.
Dependency handling — Installs system packages automatically via the detected package manager.
Conflict-free symlinks — Detects and resolves stale files before creating Stow symlinks.
One-command setup — Goes from a fresh machine to a configured environment with
stowmate run.
Quick install¶
Requires Go 1.25 or later.
go install github.com/olefSch/stowmate/cmd/stowmate@latest
Download a pre-built binary for Linux or macOS (amd64 or arm64) from the GitHub Releases page.
Quick start¶
# Process every package in $HOME/dotfiles
stowmate run
# Process a single package
stowmate package nvim
# Preview changes without touching the system
stowmate run --dry-run
# Remove a stowed package
stowmate remove nvim
Default dotfiles path
stowmate looks for packages in $HOME/dotfiles unless you pass --dotfiles/-d.
See the Introduction for a detailed walkthrough of how stowmate works.