Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Homebrew (macOS and Linux)

Supports both Apple Silicon and Intel Macs.

brew tap uroybd/tap
brew install dotr

Cargo

cargo install dotr-dear

This installs a binary named dotr (the crate is published as dotr-dear since dotr was already taken on crates.io).

From source

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

Pre-built binaries

Download the latest release for your platform from the releases page:

PlatformArchive
Apple Silicon (M1/M2/M3)dotr-aarch64-apple-darwin.tar.gz
Intel Macdotr-x86_64-apple-darwin.tar.gz
Linux (x86_64)dotr-x86_64-unknown-linux-gnu.tar.gz
Linux (aarch64)dotr-aarch64-unknown-linux-gnu.tar.gz
Linux musl (x86_64)dotr-x86_64-unknown-linux-musl.tar.gz
Linux musl (aarch64)dotr-aarch64-unknown-linux-musl.tar.gz

Extract and move the binary onto your PATH:

tar xzf dotr-*.tar.gz
sudo mv dotr /usr/local/bin/

Man pages

man dotr (and man dotr-deploy, man dotr-packages, etc. for every subcommand) is available if you installed via Homebrew — the formula installs them automatically. The release tarballs also bundle the same .1 files alongside the binary; move them into your local man path to use them:

tar xzf dotr-*.tar.gz
sudo mv dotr /usr/local/bin/
sudo mv dotr*.1 /usr/local/share/man/man1/

cargo install doesn’t carry man pages — cargo has no mechanism for installing them — so they aren’t available that way.

Shell completions

Unlike man pages, completions are generated at runtime by dotr itself, so they work the same way no matter how you installed it:

# Bash
dotr completions bash > ~/.local/share/bash-completion/completions/dotr

# Zsh (any directory on your $fpath)
dotr completions zsh > ~/.zfunc/_dotr

# Fish
dotr completions fish > ~/.config/fish/completions/dotr.fish

# Nushell
dotr completions nushell > ~/.config/nushell/completions/dotr.nu

# Elvish and PowerShell are supported too — see their own docs for where
# to put a generated completion script.

Completions cover every command, including the nested dotr packages and dotr profiles subcommands. See the CLI reference for details.

Dynamic package/profile name completion (Carapace)

The scripts above are static — they know every command and flag, but --packages/--profile values aren’t completed with real names from your config.toml, since that would require shelling out to dotr at completion time.

If you use Carapace as your completion engine (it supports bash, zsh, fish, nushell, elvish, powershell, and more from one binary), dotr completions carapace prints a Carapace spec that adds real, live completion of package and profile names by calling dotr packages list --plain / dotr profiles list --plain under the hood. Save it directly into Carapace’s specs directory:

# macOS
dotr completions carapace > \
  ~/Library/Application\ Support/carapace/specs/dotr.yaml

# Linux
dotr completions carapace > ~/.config/carapace/specs/dotr.yaml

Unlike the other shells, this spec isn’t generated from dotr’s own argument definitions (Carapace has no Rust/clap integration to hook into), so it’s hand-maintained in the DotR source and simply embedded into the binary — regenerate it the same way after upgrading dotr to pick up any new commands or flags.

carapace --help prints the exact specs directory it’s currently using if you’re unsure. Once installed, dotr deploy --packages <TAB> (and the equivalent --profile flag, and dotr remove <TAB>) complete with the actual packages and profiles in the repository at your current working directory, in any shell Carapace runs your completions in.

Bitwarden-backed prompts (optional)

If you set prompt_backend = "bitwarden" (see Prompts), you’ll need the Bitwarden CLI (bw) installed and reachable on PATH:

brew install bitwarden-cli

Nothing else to set up ahead of time — dotr drives bw login/bw unlock interactively the first time it’s needed, and creates its secure note automatically.

Verifying the install

dotr --version
dotr --help