Documentation
Selective Sync
Push and pull only the items you need
The --filter Flag
Use --filter on push, pull, and watch to operate on a subset of tracked items.
# Filter by type
configsync push --filter configs
# Filter by type and name
configsync push --filter modules:ssh
# Multiple filters (comma-separated)
configsync push --filter modules:ssh,configs
Filter Types
| Type | Description |
|---|---|
| configs | Individual config files added via add config |
| repos | Git repository metadata |
| env_files | Environment files (.env, .env.local) |
| modules | Tool modules (ssh, vscode, git, etc.) |
| packages | Installed packages from all managers |
| projects | Project directories |
| groups | Project groups |
Changed-Only Push
The --changed flag on push uses content hashing to detect which items have actually changed since the last push, and only uploads those.
configsync push --changed -m "incremental update"
--changed is great for automated workflows and watch mode, where you want to minimize uploads.Project and Group Shortcuts
The --project and --group flags on pull are convenient shortcuts for filtering by project or group name.
# These are equivalent
configsync pull --filter projects:myapp
configsync pull --project myapp
# Pull an entire group
configsync pull --group ~/git
Examples
# Push only SSH module and git configs
configsync push --filter modules:ssh,modules:git
# Pull only env files
configsync pull --filter env_files
# Watch only config files for changes
configsync watch --filter configs
# Push only packages
configsync push --filter packages -m "updated brew packages"