A cross-platform dotfile management tool written in Go. Manage configuration files through symlinks, render templates for machine-specific configs, install packages, and clone git repositories --- all from a single YAML file.
For comprehensive documentation, visit tidydots.io.
- Symlink-based config management --- edits sync instantly, no copying
- Cross-platform --- Linux and Windows with OS-specific target paths
- Template rendering --- Go templates for machine-specific configuration
- Multi-package-manager support --- pacman, yay, paru, apt, dnf, brew, winget, scoop, choco
- Interactive TUI --- Bubble Tea terminal interface for visual management
- Git repository management --- clone and update repos as packages
- Smart adopt workflow --- migrates existing configs automatically
- Dry-run mode --- preview every operation before it runs
go install github.com/antoinegs/tidydots/cmd/tidydots@latestOr build from source:
git clone https://github.com/antoinegs/tidydots.git
cd tidydots
go build ./cmd/tidydots-
Initialize with your dotfiles repository:
tidydots init /path/to/your/dotfiles
-
Create a
tidydots.yamlin your dotfiles repo:version: 3 applications: - name: "nvim" entries: - name: "nvim-config" backup: "./nvim" targets: linux: "~/.config/nvim" windows: "~/AppData/Local/nvim" package: managers: pacman: "neovim" apt: "neovim"
-
Restore your configs:
tidydots restore
or let the TUI guide you through the process:
tidydots
See the Quick Start guide for a full walkthrough, or explore the configuration reference for all available options.
The full documentation is available at tidydots.io and covers:
- Getting Started --- installation, quick start, and core concepts
- Configuration --- applications, configs, packages, and templates
- Guides --- multi-machine setups, package management, system configs
- CLI Reference --- all commands and flags
- Troubleshooting --- common issues and solutions
MIT