cover

1 November 2025

Why I Switched from VS Code to VSCodium

3m40s
vscode
vscodium
open-source
privacy
development

I've been a loyal Visual Studio Code user for years. It's fast, flexible, and has an incredible ecosystem of extensions. But one thing has always been in the back of my mind: while VS Code's source code is open-source, the product Microsoft ships is not. It includes telemetry and tracking, which I've decided I'd rather do without.

That's what led me to VSCodium, a community-driven, freely-licensed binary distribution of VS Code. It’s the same editor, just without the Microsoft branding, telemetry, and tracking.

Making the switch was surprisingly straightforward. Here’s how I did it.

Step 1: Syncing Settings Between Editors

The biggest hurdle was migrating my settings, extensions, and keybindings. The built-in settings sync in VS Code doesn't work with VSCodium, so I needed a manual approach.

The official migration guide recommends the Sync Settings extension by Zokugun.

Sync Settings by Zokugun

Sync Settings by Zokugun

I installed it on both VS Code and VSCodium. The idea is to use a local Git repository as a middleman to transfer the settings.

First, I opened the extension's configuration file using the command palette (Ctrl+Shift+P) and searching for Sync Settings: Open the repository settings.

I started with the default configuration, which doesn't do anything:

Yaml

# current machine's name, optional; it can be used to filter settings or in the commit message
hostname: "lazaryoga7"
# more details at https://github.com/zokugun/vscode-sync-settings/blob/master/docs/hostname.md

# selected profile, required
profile: main
# repository to sync the settings with, required
repository:
  # repository's type, required (dummy: no sync)
  type: dummy

I updated it to point to a local Git repository I created specifically for this purpose.

Yaml

# current machine's name, optional; it can be used to filter settings or in the commit message
hostname: "lazaryoga7"

# selected profile, required
profile: main

# sync on local git
repository:
  type: git
  # path of the local git repository to sync with, required
  path: C:/Users/lazar/settings-sync
  # branch to sync on, optional (set to `master` by default)
  branch: master

With the configuration set up in VS Code, I ran the upload command from the command palette:

Sync Settings: Upload (user -> repository)

Then, I installed VSCodium, installed the same extension, applied the same configuration, and ran the download command:

Sync Settings: Download (repository -> user)

And just like that, all my settings, themes, and keybindings were in VSCodium.

Step 2: Handling Missing Extensions

After syncing, I noticed a few of my extensions were missing. This is a known aspect of using VSCodium. Some extensions from the Visual Studio Marketplace, especially proprietary ones from Microsoft (like Remote Development), are not available on the Open VSX Registry that VSCodium uses by default.

There are two easy ways to solve this.

Solution 1: Copying from the VS Code directory

Most of your extensions are already on your machine. You can simply copy them from the VS Code extensions folder to the VSCodium one.

  • From: C:\Users\lazar\.vscode\extensions
  • To: C:\Users\lazar\.vscode-oss\extensions

After copying the files and restarting VSCodium, my missing extensions appeared.

Solution 2: Manual Installation with .vsix files

For any extensions you can't just copy over, you can often download their .vsix package directly from the marketplace or GitHub releases. Once you have the file, you can install it in VSCodium by going to the Extensions view, clicking the three-dot menu, and selecting Install from VSIX....

Step 3: Making the Switch Permanent

With everything migrated and working, it was time to fully commit.

First, I uninstalled Visual Studio Code.

Next, I updated my other development tools to recognize VSCodium as the default editor. In GitHub Desktop, this was a quick change in the settings.

Changing the external editor in GitHub Desktop to VSCodium.

Changing the external editor in GitHub Desktop to VSCodium.

Finally, I had to get used to a new terminal command. Instead of code ., I now use:

Bash

codium .

The switch is complete. My workflow is identical, my editor feels the same, but now it's fully open-source and free of telemetry. It's a small change, but it's one I'm happy I made.