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.

Terminal

# 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

TypeDescription
configsIndividual config files added via add config
reposGit repository metadata
env_filesEnvironment files (.env, .env.local)
modulesTool modules (ssh, vscode, git, etc.)
packagesInstalled packages from all managers
projectsProject directories
groupsProject 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.

Terminal

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.

Terminal

# These are equivalent

configsync pull --filter projects:myapp

configsync pull --project myapp

# Pull an entire group

configsync pull --group ~/git

Examples

Terminal

# 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"