Multi-Device Workflow
A complete walkthrough for setting up devsync on your first machine and replicating your config on additional devices.
This guide walks through the full devsync workflow: from initial setup on your first machine, to syncing your config to a second device, to the day-to-day routine of keeping everything in sync.
First Machine: Initial Setup
Section titled “First Machine: Initial Setup”-
Install devsync and initialize
Terminal window npm install -g @tinyrack/devsyncdevsync initPress Enter when prompted for an age key — a new key pair is generated automatically. Note the private key printed during init and store it securely.
-
Track your files
Terminal window devsync track ~/.gitconfigdevsync track ~/.zshrcdevsync track ~/.config/nvimdevsync track ~/.ssh/config --mode secretAssign machine-specific files to a profile if needed:
Terminal window devsync track ~/.config/work-tool --profile workdevsync profile use work -
Preview what will be pushed
Terminal window devsync statusOr do a dry run:
Terminal window devsync push --dry-run -
Push to the sync repository
Terminal window devsync push -
Publish to a remote Git repository
Terminal window devsync cdgit remote add origin https://github.com/yourname/dotfiles.gitgit add .git commit -m "Initial sync"git push -u origin mainexit
Second Machine: Connecting to an Existing Repository
Section titled “Second Machine: Connecting to an Existing Repository”-
Install devsync
Terminal window npm install -g @tinyrack/devsync -
Initialize with the existing repository and your age private key
Terminal window devsync init https://github.com/yourname/dotfiles.git --key AGE-SECRET-KEY-1...This clones the repository into
~/.config/devsync/sync/and registers your age key. -
Set the active profile (if applicable)
Terminal window devsync profile use work -
Preview what will be applied
Terminal window devsync pull --dry-run -
Apply the config
Terminal window devsync pullAll tracked files are written to their local paths. Secret files are decrypted automatically.
Day-to-Day Workflow
Section titled “Day-to-Day Workflow”After the initial setup, the typical daily workflow is:
Making a change on one machine
Section titled “Making a change on one machine”# 1. Edit your config normallyvim ~/.zshrc
# 2. Preview what changeddevsync status
# 3. Push to the sync repositorydevsync push
# 4. Commit and push to gitdevsync cdgit add .git commit -m "Update zsh aliases"git pushexitPicking up changes on another machine
Section titled “Picking up changes on another machine”# 1. Pull from gitdevsync cdgit pullexit
# 2. Preview what would be applieddevsync pull --dry-run
# 3. Applydevsync pullResolving Conflicts
Section titled “Resolving Conflicts”Because devsync does not auto-commit, conflicts are standard git merge conflicts. If two machines both modified the same tracked file and both pushed:
devsync cdgit pull# → CONFLICT in .gitconfig (or whichever file)# Resolve the conflict manuallygit add .git commit -m "Merge: resolve .gitconfig conflict"exit
# Then pull to apply the resolved state locallydevsync pullValidating Your Setup
Section titled “Validating Your Setup”If something seems off, use the doctor command to check your configuration, age key, and tracked paths:
devsync doctorThis reports any issues such as a missing age key, unreachable tracked paths, or a broken manifest.