-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Utsob Roy edited this page Nov 28, 2025
·
14 revisions
Welcome to the DotR wiki! DotR is a dotfiles manager written in Rust that helps you manage your configuration files with ease.
⚠️ WARNING: This is still pre-alpha. The schema is evolving, performance is sub-par. Use it with caution.
- Installation Guide
- Usage Guide
- Configuration
- Templating
- Actions
- Profiles
- Diff Command
- Dry Run Mode
- Project Repository
brew tap uroybd/tap
brew install dotrcargo install dotr-dearcargo install --git https://github.com/uroybd/DotRDownload the latest release for your platform from the releases page:
-
Apple Silicon (M1/M2/M3):
dotr-aarch64-apple-darwin.tar.gz -
Linux (x86_64):
dotr-x86_64-unknown-linux-gnu.tar.gz
Extract and move the binary to your PATH:
tar xzf dotr-*.tar.gz
sudo mv dotr /usr/local/bin/Usage: dotr [OPTIONS] [COMMAND]
Commands:
init Intialize dotfiles repository.
import Import dotfile and update configuration.
deploy Deploy dotfiles from repository.
update Update dotfiles from deployed versions.
diff Show differences between dotfiles.
remove Remove a managed package.
print-vars Print all user variables.
packages List all managed packages.
profiles Manage profiles (add, list, remove).
help Print this message or the help of the given subcommand(s)
Options:
-w, --working-dir <WORKING_DIR>
-h, --help Print help
-V, --version Print version
# Initialize a new dotfiles repository
dotr init
# Import a dotfile
dotr import ~/.bashrc
# Import with a custom package name
dotr import ~/.config/my-app --name myapp
# Import with symlink (creates symlink from destination to deployed location)
dotr import ~/.config/my-app --symlink
# Ignore patterns can be added in config.toml to exclude files
# Example: ignore = ["*.log", "cache/", "node_modules/"]
# Deploy all dotfiles
dotr deploy
# Deploy with clean mode (removes untracked files)
dotr deploy --clean
# Deploy with dry run (preview without making changes)
dotr deploy --dry-run
# Deploy and continue on errors
dotr deploy --ignore-errors
# Check differences before deploying
dotr diff
# Update dotfiles
dotr update
# Update with dry run (preview without making changes)
dotr update --dry-run
# View all variables (including environment variables)
dotr print-vars
# Deploy specific packages
dotr deploy -p f_bashrc d_nvim
# List all packages
dotr packages list
# List packages with verbose output
dotr packages list --verbose
# Remove a package
dotr remove f_bashrc
# Remove with cleanup (also removes orphaned packages)
dotr remove f_bashrc --remove-orphans
# Deploy with a profile
dotr deploy --profile work
# Check differences with profile
dotr diff --profile work
# Or set a default profile via environment variable
export DOTR_PROFILE=work
dotr deploy
# Manage profiles
dotr profiles list
dotr profiles add staging
dotr profiles add production --set-as-current
dotr profiles remove staging- Import configs
- Copy configs
- Update configs
- Templating and variables
- Actions (pre/post hooks)
- Profiles (environment-specific configurations)
- Diff command (preview changes)
- Granular copying and backups
- Interactive prompts (config/package/profile level)
- Dry run mode (preview deploy/update without changes)
- Symlinking config (deploy files to intermediate location, symlink to destination)
- Package management (list, remove packages)
- Profile management (add, list, remove profiles)
DotR is a dotfiles manager that is "as dear as a daughter" - making configuration management simple and reliable.