dotbot
TLDR
Install dotfiles with config
SYNOPSIS
dotbot [options] -c config
DESCRIPTION
Dotbot is a tool for bootstrapping dotfiles. It automates the process of setting up a new machine by creating symlinks, running shell commands, and performing other configuration tasks defined in a YAML or JSON file.
Configuration files define directives like link (create symlinks), shell (run commands), create (make directories), and clean (remove broken symlinks). Dotbot is typically included as a git submodule in dotfiles repositories.
PARAMETERS
-c, --config-file file
Configuration file (YAML or JSON).-d, --base-directory dir
Base directory for dotfiles.-p, --plugin plugin
Load plugin module.-v, --verbose
Enable verbose output.-Q, --super-quiet
Suppress almost all output.--no-color
Disable colored output.--version
Show version.
CONFIGURATION EXAMPLE
~/.bashrc: bashrc
~/.vimrc: vimrc
~/.config/nvim: nvim
- shell:
- [git submodule update --init, Installing submodules]
- command: ./install-packages.sh
description: Installing packages
- create:
- ~/.local/bin
- ~/.config
CAVEATS
Requires Python 3. Symlink creation may require appropriate permissions. Existing files at link destinations are not overwritten by default. Plugin system allows extensions but adds complexity.
HISTORY
Dotbot was created by Anish Athalye in 2014 as a simple, self-contained tool for dotfiles management. It was designed to be included as a git submodule, making dotfiles repositories self-bootstrapping without external dependencies beyond Python.


