~

The Modern
Dotfiles Manager

Stop fighting with broken symlinks. Dotman just works.
The faster, smarter alternative to GNU Stow written in Nim.

dotman — bash
~ dotman init
Initialized at ~/.dotfiles
~ dotman set ~/.config/nvim
Set: ~/.config/nvim → ~/.dotfiles/main/config/nvim
~ dotman add fish
Validating links...
Creating symlinks... Done
~

Native performance

Dotman handles symlinks, conflict resolution, and profile management natively. No Python, no bloat.

It compiles to a single, static binary. No dependencies to install, no version conflicts to debug. It doesn't slow down your shell startup or clutter your home directory with unnecessary files.

We prioritize robustness. Dotman validates every link before creation and provides atomic operations to ensure your configuration never ends up in a broken state.

Smart by design

Dotman doesn't just blindly link files. It intelligently detects existing configurations, offering to back them up or resolve conflicts automatically. It respects your existing directory structure and adapts to it, not the other way around.

Multi-profile architecture

Manage work, personal, and server configurations from a single repository. Switch contexts seamlessly with `set/unset` without complex Git branching strategies. Perfect for keeping separate configs for different machines.

Intuitive syntax

Forget memorizing complex flags. The CLI is designed to be human-readable. Commands like `add`, `remove`, `set` and `unset` do exactly what you expect them to do. Everything just makes sense. You're in full control.

The dotfiles manager
made with love

We're making a tool that we enjoy using ourselves. Dotman's main goal is to provide an honest, comfortable, and predictable configuration management experience.

Perfect for power users

Dotman respects your existing structure and doesn't break your workflow. It's designed to be transparent; no hidden databases, no proprietary formats. There's nothing that gets in your way of crafting the perfect terminal environment.

Perfect for distro hoppers

Dotman's static binary compilation makes it essential for setting up fresh installs instantly. Split view configurations for different hostnames make it easier than ever to keep things synchronized across machines without logic duplication.

Install in seconds

No dependencies, no complex setup. Just a single binary ready to run.

$ curl -sL gabrielcapilla.github.io/install | sh -s dotman
Copied to clipboard
Prefer Nimble?
nimble install dotman
Copied