First stable release of dot, a dotfiles manager driven by a single dotfiles.toml.
| Command | Description |
|---|---|
dot status |
Show the state of every link: ok, broken, missing, modified |
dot install |
Install packages and create links for the detected profile, with backups |
dot add <file> |
Move a file into the repo, link it back and register it in the toml |
dot remove <module> |
Unlink a module and restore the real files |
dot doctor |
Report unlinked repo files, dead links and invalid toml |
dot undo |
Restore the backups made by the last install |
Global options: --dry-run, --verbose, --config <path>, --help, --version, --profile
- Init project with uv (
pyproject.toml,src/dot/, entry pointdot) - CLI skeleton with subcommands and global options
- Define the
dotfiles.tomlformat (profiles, modules, packages, links) - Write an example
dotfiles.tomlmatching the current.dotfilesrepo
- Load and validate the toml (clear error messages)
- Path handling: expand
~, resolve paths relative to home - Link state detection: ok / missing / broken / wrong target / real file in place
- Package manager detection (dnf, apt, pacman, brew)
-
status: print the state of every link, grouped by module -
install: create links, back up existing files, idempotent -
install: install missing packages for the active profile -
install: record backups in a state file forundo -
add: move file into repo, create link, update the toml -
remove: delete links of a module, restore the real files -
doctor: list repo files not referenced in the toml -
doctor: list dead links and invalid toml entries -
undo: restore backups from the last install -
--dry-runsupport for every command that writes -
--profileselect which profile to install
- Tests running in a temporary fake
$HOME - Test idempotence (install twice = no change)
- GitHub Actions CI (lint + tests)
- README: install, toml format, examples for each command
- Replace
install.shin.dotfileswithdot install - Tag
v1.0.0