🥔 dotato is simple.
- Write config file.
- Run dotato.
✏️ Config files are clear.
- Define directories in
dotato.yaml - Filter unnecessary files with
.dotatoignore
🚚 Choose your mode.
- file mode: copy dotfiles into your backup directory (like snapshot)
- link mode: move dotfiles into your backup directory and leave symlink instead. (like stow)
| OS | Support |
|---|---|
| Linux | ✅ |
| MacOS | ✅ |
| Windows |
File mode:
Link mode: ❌
|
Download binary file in the dotato release page here.
If you have go, it is easy:
go install github.com/msisdev/dotato@latestSome systems may require C library.
And make sure you have ~/go/bin in PATH env var.
Let's copy ~/.bashrc file into your backup directory.
Prepare your backup directory like this.
📁
├── 📁bash
│ └── 📄.dotatoignore
└── ⚙️dotato.yaml
Write dotato.yaml.
# dotato.yaml
version: v1
mode: file
groups:
bash: # same name of your group directory
nux: "~" # write directory of your dotfileWrite bash/.dotatoignore. It applies to both import/export.
#bash/.dotatoignore
* # ignore all
!.bashrc # but include .bashrcCopy files into backup directory:
dotato import group bash nux📁
├── 📁bash
│ ├── ✨.bashrc # dotato created this
│ └── 📄.dotatoignore
└── ⚙️dotato.yaml
Copy dotato files back to their original place:
dotato export group bash nux📁
├── 📁bash
│ ├── 🚚.bashrc # dotato will copy this to ~/.bashrc
│ └── 📄.dotatoignore
└── ⚙️dotato.yaml
- Use flag
-hto read hints.
- There is another entity 'plan' — select multiple groups.
- Create groups as many as you like.
- Create duplicate groups to maintain different versions.
- You can have many directory paths for one group — manage different machines.
- It works same with gitignore.
- You can define global rule - one ignore rule applied to all groups.
- Nest many dotatoignore files under group directory.
- Remember it is applied on both import/export command.
Currently dotato doesn't provide advanced features.
- Templating
- Install script
- Password encryption
You can...
- Create issue and wait for support
- Use another tools like chezmoi, etc
- Use dotato API — engine — if you love dotato and ready to go down the rabbit hole.
If you decided to use dotato API, golang standard libraries will help.

