Settings Sync

Note: Settings Sync is still in Preview and only available on VS Code Insiders.

Enabling Settings Sync

Turn on Settings Sync using the Turn On Sync entry in the Manage gear menu at the bottom of the Activity Bar. You will be asked to sign in and what preferences you would like to sync; currently Settings, Keyboard Shortcuts, Extensions, and Display Language are supported.

Turn on Sync command

After making this selection, the browser will open so that you can sign in to a Microsoft account. Both personal accounts, such as Outlook accounts, and Azure accounts can be used. You can also link a GitHub account to a new or existing Microsoft account. If at any time you decide you want to sync your data to a different account, you can use the Microsoft Account: Sign Out command from the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), and then use the Sync: Sign in to sync entry from the Manage gear menu.

Configuring synced data

Which preferences get shared is configured when you turn on Settings Sync for the first time via this dialog:

Settings Sync configure dialog

Once signed in, you can change what is synced via the Sync: Configure command or by opening the Manage gear menu, selecting Sync is on, and then Sync: Configure.

Machine settings (with machine or machine-overridable scopes) are not synchronized by default, since their values are specific to a given machine. You can also add or remove settings you want to this list from the Settings editor or using the setting sync.ignoredSettings.

Keyboard Shortcuts are synchronized per platform by default. If your keyboard shortcuts are platform-agnostic, you can synchronize them across platforms by disabling the setting sync.keybindingsPerPlatform.

All built-in and installed extensions are synchronized along with their global enablement state. You can skip synchronizing an extension, either from the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)) or using the setting sync.ignoredExtensions.

Conflicts

When synchronizing settings between multiple machines, there may occasionally be conflicts. Conflicts can happen when first setting up sync between machines or when settings change while a machine is offline. When conflicts occur, you will be presented with the following options:

  • Accept Local: Selecting this option will overwrite remote settings in the cloud with your local settings.
  • Accept Remote: Selecting this option will overwrite local settings with remote settings from the cloud.
  • Show Conflicts: Selecting this will display a diff editor similar to the Source Control diff editor, where you can preview the local and remote settings and choose to either accept local or remote or manually resolve the changes in your local settings file and then accept the local file.

Restoring data

In case something goes wrong, VS Code always stores local backups of your preferences, which can be accessed via the Sync: Open Local Backups Folder command. The folder is organized by the type of preference and contains versions of your JSON files named with a timestamp of when the backup occurred. These backups are automatically deleted after 30 days.

Reporting issues

Settings Sync activity can be monitored in the Log (Sync) output view. If you experience a problem with Settings Sync, please include this log when creating the issue. If your problem is related to authentication, also include the log from the Account output view.

How do I delete my data?

If you want to remove all your data from our servers, just turn off sync via the Manage gear menu and select the checkbox to clear all cloud data. If you choose to re-enable sync, it will be as if you're signing in for the first time.

Next steps

Common questions

Can I access history of remote preferences?

Currently not, but this is planned before the feature leaves preview.

Troubleshooting keychain issues

Settings Sync persists authentication information to the system keychain. Writing to the keychain can fail in some cases if the keychain is misconfigured.

macOS

If the keychain throws the error "The user name or passphrase you entered is not correct.", open the Keychain Access app, right click on the login keychain, and lock and unlock it again. This was first reported in issue #76 as a problem after upgrading to macOS High Sierra, but it has also been reported on more recent macOS versions.

Linux

If the keychain throws the error "No such interface “org.freedesktop.Secret.Collection” on object at path /org/freedesktop/secrets/collection/login", try following the steps described in issue #92972 to create a new keyring.