How to Sync VS Code Settings, Extensions, and Keybindings Across Machines
VS Code's built-in Settings Sync handles the editor. But what about SSH config, terminal settings, git config, and everything else? Here's the complete solution.
The Problem: VS Code Is Synced, Everything Else Isn't
VS Code has had built-in Settings Sync since 2020. Sign in with your Microsoft or GitHub account, and your settings follow you across machines. It works well for what it does.
But here is the frustration: you sit down at a new machine, open VS Code, and everything looks perfect. Your theme, your extensions, your keybindings are all there. Then you open the integrated terminal and nothing is right. Your shell aliases are gone. Your git is unconfigured. Your SSH keys do not exist. Your .env files for local projects are missing.
VS Code Settings Sync solves one piece of the puzzle. Your development environment is the entire puzzle.
What VS Code Settings Sync Covers
To its credit, VS Code Settings Sync handles the editor side well. It syncs:
settings.json— your editor preferences, theme, font size, formatting ruleskeybindings.json— custom keyboard shortcuts- Installed extensions and their enabled/disabled state
- Code snippets
- UI state like panel positions and open editors
For developers who only use VS Code and nothing else, this might be enough. But most developers live in the terminal as much as the editor.
What It Doesn't Cover
Here is everything VS Code Settings Sync leaves out:
SSH configuration. Your ~/.ssh/config with host aliases, jump hosts, and custom ports. Your SSH keys themselves. There is an open VS Code feature request (#249438) asking for SSH config sync, and it is still unresolved.
Terminal emulator configuration. iTerm2 profiles, Alacritty config, Windows Terminal settings, Warp themes. The integrated terminal in VS Code inherits from your system shell, but none of that shell configuration is synced by VS Code.
Git configuration. Your ~/.gitconfig with aliases, default branch names, signing keys, diff tools, and merge strategies.
Shell configuration. Your ~/.zshrc or ~/.bashrcwith aliases, functions, PATH modifications, prompt customization, and plugin manager setup (oh-my-zsh, zinit, etc.).
Other IDE settings. If you use JetBrains IDEs, Neovim, Cursor, or Zed alongside VS Code, their configurations are completely separate.
Environment variables. Project-specific .env and .env.local files that are gitignored but essential for running your applications locally.
The ConfigSync Approach: Sync Everything Together
ConfigSync treats your entire development environment as a single unit. VS Code settings are one module alongside SSH, git, shell, and everything else.
This single command detects and tracks your VS Code configuration files. Depending on your platform, it picks up:
ConfigSync also captures your installed extension list. On restore, extensions are reinstalled automatically:
Now add everything else that VS Code Settings Sync misses:
Push once, and your entire environment, VS Code included, is encrypted and stored:
On a new machine, one pull restores it all:
Using Both Together
You do not have to choose one or the other. Many developers use both:
VS Code Settings Sync for real-time, automatic syncing of editor settings as you change them. It is seamless and requires zero thought once enabled. It also handles Microsoft account-specific features like profile sync.
ConfigSync for everything outside VS Code: SSH, git, shell, env files, packages, and as a backup layer for VS Code settings themselves. If you ever need to restore to a specific point in time, ConfigSync’s snapshot history has you covered.
The two tools do not conflict. VS Code Settings Sync operates through Microsoft’s cloud service. ConfigSync reads your local files. They can coexist without any configuration.
Bonus: Cursor IDE
If you use Cursor (the AI-powered fork of VS Code), it does not have built-in settings sync at all. ConfigSync fills that gap completely:
The same approach works for any editor or tool that stores configuration in files. ConfigSync is not limited to a predefined list of applications; you can add any directory or file as a custom module.
Getting Started
Setting up VS Code sync with ConfigSync takes under two minutes:
From now on, every change to your VS Code settings, shell config, git aliases, and SSH setup is captured and available on any machine with a single configsync pull.
Ready to try ConfigSync?
Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.