Documentation
Push & Pull
Full reference for syncing state between machines
Push
Push uploads your tracked configs, secrets, env files, modules, packages, and projects to the cloud. Everything is encrypted locally before transmission.
configsync push -m "updated ssh config"
| -m <msg> | Snapshot message (shown in history) |
| --filter <items> | Push only specific items (see Selective Sync) |
| --changed | Only push items that differ from last push (uses content hashing) |
| --no-cache | Skip cache and re-read all files from disk |
| --no-delete | Do not remove remote items that were untracked locally |
| -y, --yes | Skip confirmation prompts |
| --i-know-what-im-doing | Bypass all safety checks (use with extreme caution) |
Pull
Pull downloads and restores state from the cloud onto the current machine.
# Preview changes without applying
configsync pull --dry-run
# Pull from a specific machine
configsync pull --from work-macbook
# Restore a specific snapshot
configsync pull --snapshot snap_abc123
| --dry-run | Show what would change without writing to disk |
| --filter <items> | Pull only specific items (see Selective Sync) |
| --snapshot <id> | Restore a specific snapshot from history |
| --from <machine> | Pull state from a specific machine |
| --force | Overwrite local files without prompting |
| --install | Install missing packages (prompts for confirmation) |
| --install-yes | Install missing packages without prompting |
| --no-packages | Skip package restoration entirely |
| --cloud-wins | Always prefer the cloud version on conflicts |
| --no-delete | Do not remove local items that were untracked remotely |
| --list-machines | Show available machines and exit |
| --group <name> | Pull only projects in this group |
| --project <name> | Pull only this project |
| -y, --yes | Skip confirmation prompts |
| --skip-bootstrap | Skip bootstrap script execution |
| --rerun-bootstrap | Force re-run bootstrap even if already done |
Global Flags
These flags work with both push and pull:
| --env <name> | Use a specific environment context |
| --profile <name> | Use a specific profile context |
Bidirectional Sync
configsync sync
Compares local and remote state and syncs in both directions. Newer changes win. Conflicts are prompted interactively.
Other Commands
# Check sync status and pending changes
configsync status
# List all tracked items
configsync list
# Diagnose configuration issues
configsync doctor
# Authenticate with the cloud
configsync login --token cs_your_token_here
configsync logout
# Show differences between local and remote state
configsync diff
configsync diff --from work-macbook --stat
configsync diff --snapshot snap_abc123 --name-only
configsync diff --filter module:ssh
# One-command setup: init, connect, and pull
configsync setup --token cs_xxx
configsync setup --token cs_xxx --from work-macbook
configsync setup --api-url https://custom.example.com
# Generate shell completions
configsync completions zsh > ~/.zsh/completions/_configsync
configsync completions bash > /etc/bash_completion.d/configsync