Skip to content
Utsob Roy edited this page Nov 28, 2025 · 14 revisions

DotR Wiki

PR Check codecov License

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.

Quick Links

Installation

Homebrew (macOS and Linux)

brew tap uroybd/tap
brew install dotr

Cargo

cargo install dotr-dear

From Source

cargo install --git https://github.com/uroybd/DotR

Pre-built Binaries

Download 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

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

Quick Examples

# 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

Features & Roadmap

  • 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)

About

DotR is a dotfiles manager that is "as dear as a daughter" - making configuration management simple and reliable.

Clone this wiki locally