Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Fork SyncNew to Visual Studio Code? Get it now.
Fork Sync

Fork Sync

lexatang

|
1 install
| (0) | Free
Synchronize settings, keybindings and extensions across VSCode forks with smart per-key merge strategies.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Fork Sync

Use a local shared folder to sync settings.json, keybindings.json, and extensions across VS Code forks such as VS Code, Cursor, Windsurf, and VSCodium.

What it does

  • Local-only sync, no Gist or cloud account
  • Per-IDE sync timestamps
  • settings.json supports override and per-key merge
  • keybindings.json stays whole-file sync by design
  • Settings blacklist / whitelist with glob patterns
  • Poka-yoke confirmation before large settings overwrites
  • Extension union sync so failed installs in one IDE do not remove entries from another
  • Open VSX-style gallery config with VS Marketplace fallback for VSIX lookup
  • Automatic local backup before writing settings.json or keybindings.json

Settings behavior

settings.mergeMode

  • override: replace the synced settings subset with the storage version
  • merge: per-key last-write-wins using per-IDE snapshots and delete tombstones

Only keys inside the sync scope are touched. Keys outside the scope always stay local.

Sync scope

  • vscode-forks-sync.settings.excludeKeys: keys excluded from sync
  • vscode-forks-sync.settings.includeKeys: optional whitelist; when non-empty, only matching keys sync

Both support glob patterns such as editor.* or terminal.integrated.*.

Default exclusions include vscode-forks-sync.* so the extension does not overwrite its own machine-specific settings.

Poka-yoke

vscode-forks-sync.settings.pokaYokeThreshold controls when Fork Sync asks for confirmation before applying a large settings pull.

Keybindings behavior

keybindings.json is not merged per key. It is synced as a whole file because array-based keybindings are not safe to reconcile with the same strategy as settings.

Extension behavior

extensions.json stores per-IDE successful installs plus a merged union list. Failed installs are recorded and preserved, and you can add them to a per-IDE exclude list if a fork cannot install them.

vscode-forks-sync.extensionsGallery is meant for Open VSX-compatible galleries. Fork Sync uses serviceUrl for Open VSX-style registries and falls back to VS Marketplace if lookup fails.

Backups

Before Fork Sync writes local settings.json or keybindings.json, it creates a backup in the shared storage folder.

Default layout:

~/.vscode-forks-sync/
  .backups/
    settings/
      <AppName>-YYYYMMDD-HHmmss.json
    keybindings/
      <AppName>-YYYYMMDD-HHmmss.json

You restore manually by copying a backup over your local file.

Main settings

Setting Default Purpose
vscode-forks-sync.storagePath ~/.vscode-forks-sync Shared sync directory
vscode-forks-sync.autoSync true Sync on startup
vscode-forks-sync.promptOnAutoSync true Ask before startup sync
vscode-forks-sync.promptOnExtensionSync true Ask before applying extension changes
vscode-forks-sync.settings.mergeMode merge override or per-key merge
vscode-forks-sync.settings.excludeKeys built-in defaults Excluded settings glob patterns
vscode-forks-sync.settings.includeKeys [] Optional whitelist glob patterns
vscode-forks-sync.settings.pokaYokeThreshold 10 Confirm large settings pulls
vscode-forks-sync.backupBeforeLocalWrite true Backup before local settings/keybindings writes
vscode-forks-sync.extensions.excludeExtensions [] Excluded extension glob patterns
vscode-forks-sync.extensionsGallery Open VSX Open VSX-style gallery descriptor

License

MIT License © jinghaihan, lexatang

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft