-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Izunim edited this page Feb 27, 2026
·
4 revisions
A fast CLI tool for managing dotfiles with git-based version control, multi-machine support, and full system bootstrapping. Written in Go.
Note: The bootstrap feature is designed for Arch Linux and Arch-based distributions. Core syncing works on any Unix-like system.
git clone https://github.com/Blumenwagen/synx.git
cd synx
./install.shRequires Go and git. The installer builds the binary and symlinks it to ~/.local/bin/synx.
synx # Sync dotfiles to GitHub
synx -r # Restore from GitHub
synx -s # Show what changed since last sync
synx -n # Preview sync without making changes
synx --doctor # Run health checks-
Copies your tracked
~/.configdirectories into~/dotfiles/ - Commits and pushes them to your git remote
- On restore, pulls and copies them back
Synx handles symlinks, profiles, exclude patterns, and auto-reloads Hyprland when restoring hypr configs.
- Commands — Full command reference
- Packages — Track installed packages (pacman + AUR)
- Services — Track enabled systemd services
- Profiles — Named config presets for quick switching and multi-machine tracking
- Hooks — Custom scripts that run during sync/restore
- Bootstrap — Provision a new machine from a declarative config
- Doctor — Health checks and diagnostics
| File | Purpose |
|---|---|
~/.config/synx/synx.conf |
Tracked dotfiles (base) |
~/.config/synx/exclude.conf |
Exclude patterns |
~/.config/synx/packages.native |
Saved native package list |
~/.config/synx/packages.foreign |
Saved AUR package list |
~/.config/synx/services.system |
Saved system services list |
~/.config/synx/services.user |
Saved user services list |
~/.config/synx/bootstrap.conf |
Bootstrap config |
~/.config/synx/profiles/ |
Profile overlay files |
~/.config/synx/hooks/ |
Hook scripts |
~/dotfiles/ |
Dotfiles git repository |
- Go (for building)
- Git