Skip to content
Dotweave Dotweave v0.39.7

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.

  1. Initialize dotweave

    dotweave init ~/dotfiles

    This creates a Git-backed sync directory at ~/dotfiles.

  2. Track your files

    dotweave track ~/.gitconfig
    dotweave track ~/.config/starship.toml
    dotweave track ~/.ssh/config --secret

    Each command adds an entry to manifest.jsonc inside the sync directory.

  3. Push local files into the sync directory

    dotweave push
  4. Commit 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
  1. Initialize from the remote URL

    dotweave init ~/dotfiles --url git@github.com:you/dotfiles.git
  2. Pull files to their local paths

    dotweave pull

    dotweave reads manifest.jsonc, resolves platform-specific paths, decrypts any secrets, and writes every file to the correct location.

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 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
dotweave doctor

This verifies the sync directory exists, Git is configured, encryption keys are in place, and tracked paths are accessible.

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.

TaskCommands
Preview changesdotweave status
Send local edits upstreamdotweave pushgit add -A && git commitgit push
Receive upstream editsgit pulldotweave pull
Resolve conflictsdotweave cd → fix files → git commitgit push
Check setup healthdotweave doctor