Standalone, single-binary dotfiles manager. Profile format is inspired by dotbot but dfm is its own thing — no Python runtime, no git submodule.
macOS (Homebrew)
brew tap bitcldr/tap
brew install dfmLinux / macOS (shell script)
curl -fsSL https://raw.githubusercontent.com/bitcldr/dfm/main/scripts/install.sh | shDrops dfm into ~/.local/bin (override with DFM_INSTALL_DIR). Pin a version with DFM_VERSION=vX.Y.Z.
dfm apply <profile>...Profiles are read from ./profiles/<name>.conf.yaml relative to the base dir (-C <dir>, default cwd).
| Command | Purpose |
|---|---|
dfm apply <profile>... |
Apply one or more profiles in order |
dfm apply --dry-run |
Report planned changes without writing |
dfm diff <profile> |
Show planned changes, no writes |
dfm doctor |
Verify installed symlinks still resolve |
dfm status |
Show last applied profiles and timestamp |
dfm list |
List profiles found in ./profiles/ |
dfm completion <shell> |
Output shell completion script |
Global flags: -C <dir>, -c <path>, --verbose (debug tracing), -q/--quiet (suppress progress; warnings always visible), --color=auto|always|never (default: auto; also respects NO_COLOR env var and CLICOLOR_FORCE=1).
Progress output (links created, shell commands, apply summary) goes to stderr. Data output (profile list, completion scripts, dfm status) goes to stdout and is safe to pipe. Warnings always appear on stderr regardless of --quiet. Use --quiet to suppress progress output, --verbose for debug tracing.
# fish
dfm completion fish > ~/.config/fish/completions/dfm.fish
# bash — add to ~/.bashrc
source <(dfm completion bash)
# zsh — add to ~/.zshrc
source <(dfm completion zsh)Completes subcommands, flags, and profile names (via dfm list). Set $DFM_DIR to point completions at a non-cwd base directory.
Directives: defaults, link, shell, clean, create. Unknown directives are rejected.
when:— gate any directive onos,arch, orhostname- Non-symlink targets are backed up to
~/.dotfiles-backup/<timestamp>/instead of failing shellentries usename:+script:(multiline blocks supported)
Full reference: docs/yaml-spec.md.
Templating, secret management, package installation, plugins, profile inheritance.
MIT