Skip to main content

paw

personal dotfiles manager

CLI tool for managing dotfiles across machines with automatic synchronization, package installation, and symlink management. Built with Go and native TOML config.

Install

brew tap alexcatdad/tap && brew install alexcatdad/tap/paw

Live Demo

What it does

Configuration

paw.toml in your repo

version = 1 layout = "hybrid" [packages] common = ["ripgrep", "fzf", "starship", "eza", "zoxide"] darwin = ["ghostty"] linux_apt = ["git", "curl"] linux_brew = [] [ignore] paths = [".zshrc.local", ".gitconfig.local"] [backup] enabled = true max_age = 30 max_count = 5 [hooks] post_install = "echo installed" [overrides] "extras/ssh-config" = { target = ".ssh/config", platform = ["darwin", "linux", "wsl"] }

Commands

paw init <repo>
Clone and setup
paw install
Packages + symlinks
paw link
Symlinks only
paw unlink
Remove symlinks
paw sync
Pull and refresh
paw push [msg]
Commit and push
paw status
Current state
paw drift status
Show config drift
paw drift apply
Import drift
paw audit
Repo analysis
paw scaffold
Generate configs
paw doctor
Health check
paw update
Self-update
paw rollback
Restore backups