Multi-Device Workflow
The complete flow from initial setup to daily syncing across machines.
This guide walks through the entire lifecycle of using dotweave — from setting up your first machine to keeping multiple devices in sync every day.
Initial setup on Machine A
Initialize dotweave
dotweave initThis creates a Git-backed sync directory in dotweave's app-data directory.
Track your files
dotweave track ~/.gitconfig dotweave track ~/.config/starship.toml dotweave track ~/.ssh/config --mode secretEach command adds an entry to
manifest.jsoncinside the sync directory.Push local files into the sync directory
dotweave pushCommit and push to a remote
dotweave never creates Git commits for you — you stay in full control:
dotweave cd # opens a shell inside the sync directory git add -A && git commit -m "initial sync" git remote add origin git@github.com:you/dotfiles.git git push -u origin main exit
Run dotweave status at any point to preview what would change before you
actually push or pull.
Setting up Machine B
Initialize from the remote URL
dotweave init git@github.com:you/dotfiles.gitPull files to their local paths
dotweave pulldotweave reads
manifest.jsonc, resolves platform-specific paths, decrypts any secrets, and writes every file to the correct location.
Daily workflow
Once both machines are set up, the day-to-day flow is short and predictable.
On the machine where you made changes:
dotweave push
dotweave cd
git add -A && git commit -m "update shell aliases"
git push
exit
On the other machine:
dotweave cd
git pull
exit
dotweave pull
The pattern is always dotweave push → git push on one side and git pull → dotweave pull on the other.
Handling conflicts
The sync directory is a regular Git repository, so conflicts are resolved the usual way:
dotweave cd
git pull # may report merge conflicts
# resolve conflicts in the affected files
git add -A && git commit -m "resolve merge conflict"
git push
exit
dotweave pull # apply the resolved state locally
If two machines push different edits to the same file before either does a
git pull, you'll get a normal Git merge conflict. Resolve it inside the sync
directory — dotweave itself doesn't auto-merge.
Checking health
dotweave doctor
This verifies the sync directory exists, Git is configured, encryption keys are in place, and tracked paths are accessible.
Adding more machines
Adding a third (or fourth, or fifth) machine follows the same steps as
Machine B — dotweave init with the remote URL, then dotweave pull. From
there the daily push/pull cycle is identical on every device.
If the new machine runs a different OS, dotweave automatically resolves platform-specific paths. See the Platform-Specific Paths guide.
Quick reference
| Task | Commands |
|---|---|
| Preview changes | dotweave status |
| Send local edits upstream | dotweave push → git add -A && git commit → git push |
| Receive upstream edits | git pull → dotweave pull |
| Resolve conflicts | dotweave cd → fix files → git commit → git push |
| Check setup health | dotweave doctor |