$ npx wp-dev-sync watch

CLI for syncing WordPress themes to remote servers.
Edit locally. Auto-sync on save. SSH or FTP.
Like shopify theme dev, but for WordPress.

npx wp-dev-sync <command>

cat problem.md
the-problem.diff

- The Old Way

  • Open FileZilla
  • Navigate to remote dir
  • Upload files manually
  • Refresh browser
  • Repeat 500× a day

+ The wp-dev-sync Way

  • Run npx wp-dev-sync watch
  • Edit files in your editor
  • Files sync automatically
  • SSH delta = only changed bytes
  • Done. Go build things.
npx wp-dev-sync --help
wp-dev-sync help
WP Dev Sync
Usage: wp-dev-sync <command>
watchWatch for changes and auto-sync to remote
pushOne-time upload to remote server
pullOne-time download from remote server
diffCompare local vs remote without syncing
envManage multiple environments
tunnelOpen public tunnel for client previews
setupCheck dependencies and test connection
initCreate .env file from template

1 npx wp-dev-sync init # Create .env
2 nano .env # Set credentials
3 npx wp-dev-sync setup # Verify
4 npx wp-dev-sync watch # Sync!
cat how-it-works.txt
architecture
  ┌─────────────┐         ┌─────────────┐         ┌─────────────┐
  │             │         │             │         │             │
  │  Your       │   SSH   │  wp-dev-    │  rsync  │  Remote     │
  │  Editor     │ ──────▶ │  sync       │ ──────▶ │  Server     │
  │             │   FTP   │  (watcher)  │  lftp   │             │
  │  Save file  │         │  Detects Δ  │         │  Theme live │
  │             │         │             │         │             │
  └─────────────┘         └─────────────┘         └─────────────┘
         │                       │                       │
     localhost               auto-sync             your-server.com
        
🔍
Compare
Dry-run diff finds
local vs remote changes
🤝
Reconcile
Choose per category:
upload, download, delete
Sync
Gradient progress bar
tracks each file
👁
Watch
Auto-sync on every
file save
npx wp-dev-sync watch --demo
npx wp-dev-sync watch — my-theme
diff ssh.md ftp.md
SSH (rsync) RECOMMENDED
Delta transfer — only changed bytes
  • Fast delta sync (~200 bytes per edit)
  • Encrypted connection
  • Passwordless with SSH keys
  • Checksum-based change detection
Install: choco install rsync · brew install rsync
FTP (lftp) FALLBACK
Full file mirror — works everywhere
  • Universal hosting support
  • No server setup needed
  • Works with any cPanel/Plesk
  • Transfers full files, not deltas
Install: choco install lftp · brew install lftp
cat .syncignore
.syncignore
# Files and directories to exclude from sync
# One pattern per line. Supports glob patterns.
 
# Version control
.git
 
# Dependencies
node_modules
vendor
 
# Build artifacts
public/hot
public/.vite
*.map
 
# IDE & OS
.idea
.vscode
.DS_Store
Created automatically by npx wp-dev-sync init
Works alongside SYNC_EXCLUDE in .env — patterns are merged
SSH uses rsync --exclude-from natively (full glob support)
FTP merges patterns into lftp exclude flags
cat watch-mode.md
file watchers
OS WATCHER LATENCY INSTALL
macOS fswatch ~0.5s brew install fswatch
Linux inotifywait ~0.5s apt install inotify-tools
Windows Polling ~2s Built-in (no install)

Native watchers are optional. Falls back to polling automatically.

bash quickstart.sh
bash — quickstart
★ View on GitHub 📖 Full Docs