vscodium Documentation

Binary releases of VS Code without MS branding/telemetry/licensing

32,800 stars Shell Shell 1 file ยท ~10,222 tokens #editor#floss#ide#open-source-licensing#vscode
RAW Doc

1. Project Overview & Quickstart (VSCodium/vscodium)

File: README.md

This is not a fork. This is a repository of scripts to automatically build Microsoft's vscode repository into freely-licensed binaries with a community-driven default configuration.

Table of Contents

Download/Install

:tada: :tada:
Download latest release here:
stable or
insiders
:tada: :tada:

More info / helpful tips are here.

Install with Brew (Mac)

If you are on a Mac and have Homebrew installed:

bash
# stable
brew install --cask vscodium

# insiders
brew install --cask vscodium@insiders

Install with Windows Package Manager (WinGet)

If you use Windows and have Windows Package Manager installed:

cmd
:: stable
winget install -e --id VSCodium.VSCodium

:: insider
winget install -e --id VSCodium.VSCodium.Insiders

Install with Chocolatey (Windows)

If you use Windows and have Chocolatey installed (thanks to @Thilas):

cmd
:: stable
choco install vscodium

:: insider
choco install vscodium-insiders

Install with Scoop (Windows)

If you use Windows and have Scoop installed:

bash
scoop bucket add extras
scoop install vscodium

Install with snap (GNU/Linux)

VSCodium is available in the Snap Store as Codium, thanks to the help of the Snapcrafters community.
If your GNU/Linux distribution has support for snaps:

bash
snap install codium --classic

Install with Package Manager (GNU/Linux)

You can always install using the downloads (deb, rpm, tar) on the releases page for stable or insiders, but you can also install using your favorite package manager and get automatic updates.

@paulcarroty has set up a repository with instructions for apt, dnf and zypper here.

Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.

Install on Arch Linux

VSCodium is available in AUR, maintained by @binex-dsk as package vscodium-bin (stable) and as vscodium-insiders-bin.

If you want to save disk space by having VSCodium use the Electron system-wide, you also have vscodium-electron,
maintained by @m00nw4tch3r.

An alternative package vscodium-git, maintained by @cedricroijakkers, is also available should you wish to compile from source yourself.

Flatpak Option (GNU/Linux)

VSCodium is available as a Flatpak app here and the build repo is here.
If your distribution has support for flatpak, and you have enabled the flathub repo:

bash
flatpak install flathub com.vscodium.codium
flatpak run com.vscodium.codium

Build

Build instructions can be found here

Why Does This Exist

This repository contains build files to generate free release binaries of Microsoft's Visual Studio Code. When we speak of "free software", we're talking about freedom, not price.

Microsoft's releases of Visual Studio Code are licensed under this not-FLOSS license and contain telemetry/tracking. According to this comment from a Visual Studio Code maintainer:

When we [Microsoft] build Visual Studio Code, we do exactly this. We clone the vscode repository, we lay down a customized product.json that has Microsoft specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under our license.

When you clone and build from the vscode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a "clean" build, without the Microsoft customizations, which is by default licensed under the MIT license

This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to GitHub releases. These binaries are licensed under the MIT license. Telemetry is disabled.

If you want to build from source yourself, head over to Microsoft's vscode repo and follow their instructions. This repo exists to make it easier to get the latest version of MIT-licensed Visual Studio Code.

Microsoft's build process (which we are running to build the binaries) does download additional files. Those packages downloaded during build are:

More Info

Documentation

For more information on getting all the telemetry disabled, tips for migrating from Visual Studio Code to VSCodium and more, have a look at the Docs page page.

Troubleshooting

If you have any issue, please check the Troubleshooting page or the existing issues.

Extensions and the Marketplace

According to the Visual Studio Marketplace Terms of Use, you may only install and use Marketplace Offerings with Visual Studio Products and Services. For this reason, VSCodium uses open-vsx.org, an open source registry for Visual Studio Code extensions. See the Extensions + Marketplace section on the Docs page for more details.

Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See this note on the Docs page for what's been found so far and possible workarounds.

How are the VSCodium binaries built?

If you would like to see the commands we run to build vscode into VSCodium binaries, have a look at the workflow files in .github/workflows for Windows, GNU/Linux and macOS. These build files call all the other scripts in the repo. If you find something that doesn't make sense, feel free to ask about it on Gitter.

The builds are run every day, but exit early if there isn't a new release from Microsoft.

Supported Platforms

The minimal version is limited by the core component Electron, you may want to check its platform prerequisites.

  • macOS (zip, dmg) macOS 12 or newer x64
  • macOS (zip, dmg) macOS 12 or newer arm64
  • GNU/Linux x64 (deb, rpm, AppImage, snap, tar.gz)
  • GNU/Linux arm64 (deb, rpm, snap, tar.gz)
  • GNU/Linux riscv64 (tar.gz)
  • GNU/Linux loong64 (tar.gz)
  • GNU/Linux ppc64le (tar.gz)
  • Windows 10 / Server 2012 R2 or newer x64
  • Windows 10 / Server 2012 R2 or newer arm64

Previously Supported Platforms

  • GNU/Linux armhf:

Special thanks

@jaredreich for the logo
@PalinuroSec for CDN and domain name
for providing a Mac mini M1
@daiyam for macOS certificate
free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation

License

MIT


File: docs/accounts-authentication.md

Accounts authentication

GitHub

The GitHub authentication has been patched to use personal access tokens.

Here is how to create a new personal access token: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

Microsoft

The Microsoft authentication hasn't been patched so its status is unknown.

When does it happen?

An account authentication occurs only when an extension is asking for it.

For GitLens, since the 12 non-plus version, it won't ask for any new authentication.


File: docs/ext-github-copilot.md

Extension: GitHub Copilot

Unlike Visual Studio Code, in VSCodium, Copilot features are disabled and not configured.

Update your settings

In your settings, sets:

text
"chat.disableAIFeatures": false,

Configure product.json

You need to create a custom product.json at the following location (replace VSCodium by VSCodium - Insiders if you use that):

  • Windows: %APPDATA%\VSCodium or %USERPROFILE%\AppData\Roaming\VSCodium
  • macOS: ~/Library/Application Support/VSCodium
  • Linux: $XDG_CONFIG_HOME/VSCodium or ~/.config/VSCodium

Then you will need to follow the guide Running with Code OSS with the product.json file created previously.
You will need to add the properties: trustedExtensionAuthAccess and defaultChatAgent.


File: docs/extensions.md

Extensions + Marketplace

Table of Contents

Marketplace

Being a vscode based editor, VSCodium gets additional features by installing Visual Studio Code extensions.
Unfortunately, as Microsoft prohibits usages of the Microsoft marketplace by any other products or redistribution of .vsix files from it, in order to use Visual Studio Code extensions in non-Microsoft products those need to be installed differently.

By default, the product.json file is set up to use open-vsx.org as extension gallery, which has an adapter to the Marketplace API used by Visual Studio Code. Since that is a rather new project, you will likely miss some extensions you know from the Visual Studio Marketplace. You have the following options to obtain such missing extensions:

  • Ask the extension maintainers to publish to open-vsx.org in addition to the Visual Studio Marketplace. The publishing process is documented in the Open VSX Wiki.
  • Create a pull request to this repository to have the @open-vsx service account publish the extensions for you.
  • Download and install the vsix files, for example from the release page in their source repository.

How to use the Open VSX Registry

As noted above, the Open VSX Registry is the pre-set extension gallery in VSCodium. Using the extension view in VSCodium will therefore by default use it.
See this article for more information on the motivation behind Open VSX.

You can switch from the pre-set Open VSX Registry by configuring the endpoints using the following solutions.

You can either use the following environment variables:

  • VSCODE_GALLERY_SERVICE_URL (required)
  • VSCODE_GALLERY_ITEM_URL (required)
  • VSCODE_GALLERY_CACHE_URL
  • VSCODE_GALLERY_CONTROL_URL
  • VSCODE_GALLERY_EXTENSION_URL_TEMPLATE (required)
  • VSCODE_GALLERY_RESOURCE_URL_TEMPLATE

Or by creating a custom product.json at the following location (replace VSCodium by VSCodium - Insiders if you use that):

  • Windows: %APPDATA%\VSCodium or %USERPROFILE%\AppData\Roaming\VSCodium
  • macOS: ~/Library/Application Support/VSCodium
  • Linux: $XDG_CONFIG_HOME/VSCodium or ~/.config/VSCodium

with the content like:

jsonc
{
  "extensionsGallery": {
    "serviceUrl": "", // required
    "itemUrl": "", // required
    "cacheUrl": "",
    "controlUrl": "",
    "extensionUrlTemplate": "", // required
    "resourceUrlTemplate": "",
  }
}

Individual developers and enterprise companies in regulated or security-conscious industries can self-host their own extension gallery.

There are likely other options, but the following were reported to work:

  • Open VSX eclipse open-source project
    While the public instance which is run by the Eclipse Foundation is the pre-set endpoint in VSCodium, you can host your own instance.

    Open VSX is a vendor-neutral open-source alternative to the Visual Studio Marketplace. It provides a server application that manages Visual Studio Code extensions in a database, a web application similar to the Visual Studio Marketplace, and a command-line tool for publishing extensions similar to vsce.

  • code-marketplace open-source project

    code-marketplace is a self-contained go binary that does not have a frontend or any mechanisms for extension authors to add or update extensions in the marketplace. It simply reads extensions from file storage and provides an API for VSCode compatible editors to consume.

Visual Studio Marketplace

As with any online service, ensure you've understood its terms of use which include:

Marketplace Offerings are intended for use only with Visual Studio Products and Services and you may only install and use Marketplace Offerings with Visual Studio Products and Services.

So, we can't provide any help if you intend to infringe their terms of use.

Also note that this extension gallery hosts multiple extensions that are non-free and have license-agreements that explicitly forbid using them in non-Microsoft products, along with using telemetry.

Proprietary Debugging Tools

The debugger provided with Microsoft's C# extension as well as the (Windows) debugger provided with their C++ extension are very restrictively licensed to only work with the official Visual Studio Code build. See this comment in the C# extension repo and this comment in the C++ extension repo.

A workaround exists to get debugging working in C# projects, by using Samsung's opensource netcoredbg package. See this comment for instructions on how to set that up.

Proprietary Extensions

Like the debuggers mentioned above, some extensions you may find in the marketplace (like the Remote Development Extensions) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the extensionAllowedProposedApi property of the product.json in your VSCodium installation. For example:

jsonc
"extensionAllowedProposedApi": [
    // ...
    "ms-vscode-remote.vscode-remote-extensionpack",
    "ms-vscode-remote.remote-wsl",
    // ...
  ],

In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.

Using the "VSIX Manager" Extension

The VSIX Manager extension provides a powerful and user-friendly interface for managing .vsix files directly within VSCodium. Its author is the main maintainer of VSCodium ;)

It is particularly beneficial for:

  • Support for Multiple Marketplaces: Seamlessly install and manage extensions from several marketplaces at the same time, allowing access to a broader range of extensions.
  • Local Files: Manage a collection of .vsix files stored locally.
  • GitHub/Forgejo Release: Install the extension directly from its GitHub/Forgejo release pages.
  • Fallback Options

Use Cases

  • Developers working offline can easily manage .vsix files.
  • Teams can distribute specific versions of extensions across systems.
  • Enterprises with restricted environments can maintain control over installed extensions.
  • Users can connect to multiple marketplaces and access a wider range of extensions or switch seamlessly between them.

Marketplace Support

The VSIX Manager extension supports managing extensions from several marketplaces simultaneously. This feature enables:

  • Access to Diverse Extensions: Install extensions from different sources like Open VSX or private repositories.
  • Fallback Options: Ensure extension availability even if one marketplace is temporarily inaccessible.
  • Enterprise Flexibility: Use private or self-hosted marketplaces alongside public ones to meet security and compliance requirements.
  • Custom Configurations: Prioritize specific marketplaces for particular needs while keeping access to others.

[Extensions compatibility](https://github.com/VSCodium/vscodium/blob/master/docs/extensions-compatibility.md)


File: docs/extensions-compatibility.md

Extensions compatibility

Table of Contents

Incompatibility

Most Microsoft extensions are limited to run on only MS products by their license and by running additional checks in their proprietary code.

Extensions incompatible with VSCodium include:

Replacements

The following extensions are functional replacements for incompatible extensions:

C/C++

  • clangd for full featured editing (including IntelliSense)
  • Native Debug for Debugging with GDB + LLDB
    Note that there are many working debugging extensions and specialized ones including for microcontrollers.

Python

Remote Development


File: docs/getting-started.md

Getting Started with VSCodium

This guide will help you get started with VSCodium.

Table of Contents

Installation

VSCodium can be installed on Windows, macOS, and Linux. Visit the download page for installation instructions.

First Steps

After installing VSCodium, here are some first steps to get started:

  1. Open a folder: Use File > Open Folder to open your project
  2. Install extensions: Click on the Extensions icon in the sidebar to browse and install extensions
  3. Configure settings: Use File > Preferences > Settings to customize your editor

Basic Usage

VSCodium works just like Visual Studio Code, with a few differences:

  • It uses Open VSX for extensions by default instead of the Visual Studio Marketplace
  • It doesn't include Microsoft telemetry or branding
  • Some proprietary features may not be available

Keyboard Shortcuts

Here are some essential keyboard shortcuts to get you started:

  • Ctrl+P (Windows/Linux) or Cmd+P (macOS): Quick Open, Go to File
  • Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS): Show Command Palette
  • Ctrl+, (Windows/Linux) or Cmd+, (macOS): User Settings
  • Ctrl+K Ctrl+S (Windows/Linux) or Cmd+K Cmd+S (macOS): Keyboard Shortcuts

Next Steps

Once you're comfortable with the basics, you might want to:


File: docs/howto-build.md

How to build VSCodium

Table of Contents

Dependencies

  • node (check .nvmrc for version)
  • jq
  • git
  • python3 3.11
  • rustup

Linux

  • gcc
  • g++
  • make
  • pkg-config
  • libx11-dev
  • libxkbfile-dev
  • libsecret-1-dev
  • libkrb5-dev
  • fakeroot
  • rpm
  • rpmbuild
  • dpkg
  • imagemagick (for AppImage)
  • snapcraft

MacOS

see the common dependencies

Windows

The build scripts are written in Bash, so on Windows you must run them inside Git Bash (bundled with Git for Windows) or WSL2.

Required tools

  • Git for Windows โ€” provides Git Bash, sed, and POSIX utilities used by the build scripts:

    cmd
    winget install --id Git.Git -e
  • Node.js โ€” exact version is specified in .nvmrc. Use nvm-windows to manage versions:

    cmd
    nvm install <version-from-.nvmrc>
    nvm use <version-from-.nvmrc>

    Alternatively, download directly from nodejs.org. During installation, enable "Automatically install the necessary tools" to get the C++ build tools (required for native Node addons).

  • jq โ€” JSON processor used throughout the build scripts:

    cmd
    winget install --id jqlang.jq -e
  • 7-Zip โ€” used to package .zip archives:

    cmd
    winget install --id 7zip.7zip -e
  • Python 3.11 โ€” required by the VS Code build system:

    cmd
    winget install --id Python.Python.3.11 -e

    Ensure python / python3 is on your PATH after installation.

  • Rustup โ€” required to compile some native VS Code modules:

    cmd
    winget install --id Rustlang.Rustup -e

    Restart your shell afterwards so cargo and rustc are on your PATH.

Optional tools

  • WiX Toolset v3 (only needed for .msi installer packaging, i.e., the -p flag):

    Download from wixtoolset.org and ensure candle.exe / light.exe are on your PATH.

PATH verification

After installing all tools, verify each is discoverable from Git Bash:

bash
node --version    # should match .nvmrc
npm --version
jq --version
python3 --version # should be 3.11.x
cargo --version
7z i 2>&1 | head -1
git --version

If any command is not found, add its install directory to your PATH via System Properties โ†’ Environment Variables โ†’ Path.

Build for Development

A build helper script can be found at dev/build.sh.

  • Linux: ./dev/build.sh
  • MacOS: ./dev/build.sh
  • Windows (Git Bash โ€” recommended): "C:\Program Files\Git\bin\bash.exe" ./dev/build.sh
  • Windows (PowerShell): powershell -ExecutionPolicy ByPass -File .\dev\build.ps1

Note for Windows users: Git Bash is the recommended shell because the build scripts rely on POSIX utilities (sed, grep, find, etc.) bundled with Git for Windows. If you use WSL2, follow the Linux dependencies section instead.

Insider

The insider version can be built with ./dev/build.sh -i on the insider branch.

You can try the latest version with the command ./dev/build.sh -il but the patches might not be up to date.

Flags

The script dev/build.sh provides several flags:

  • -i: build the Insiders version
  • -l: build with latest version of Visual Studio Code
  • -o: skip the build step
  • -p: generate the packages/assets/installers
  • -s: do not retrieve the source code of Visual Studio Code, it won't delete the existing build

Build for CI/Downstream

Here is the base script to build VSCodium:

bash
# Export necessary environment variables
export SHOULD_BUILD="yes"
export SHOULD_BUILD_REH="no"
export CI_BUILD="no"
export OS_NAME="linux"
export VSCODE_ARCH="${vscode_arch}"
export VSCODE_QUALITY="stable"
export RELEASE_VERSION="${version}"

. get_repo.sh
. build.sh

To go further, you should look at how we build it:

The ./dev/build.sh script is for development purpose and must be avoided for a packaging purpose.

Build Snap

text
# for the stable version
cd ./stores/snapcraft/stable

# for the insider version
cd ./stores/snapcraft/insider

# create the snap
snapcraft --use-lxd

# verify the snap
review-tools.snap-review --allow-classic codium*.snap

Patch Update Process

Semi-Automated

  • run ./dev/build.sh, if a patch is failing then,
  • run ./dev/update_patches.sh
  • when the script pauses at Press any key when the conflict have been resolved..., open vscode directory in VSCodium
  • fix all the *.rej files
  • run npm run watch
  • run ./script/code.sh until everything is ok
  • press any key to continue the script update_patches.sh

Manual

  • run ./dev/build.sh, if a patch is failing then,
  • run ./dev/patch.sh <name>.patch where <name>.patch is the failed patch
  • open vscode directory in a new VSCodium's window
  • fix all the *.rej files
  • run npm run watch
  • run ./script/code.sh until everything is ok
  • go back to the command line running ./dev/patch.sh, press enter to validate the changes and it will update the patch

icons/build_icons.sh

To run icons/build_icons.sh, you will need:

  • imagemagick
  • png2icns (npm install png2icns -g)
  • librsvg

File: docs/index.md

Documentation

Table of Contents


File: docs/migration.md

Migration

Table of Contents

Manual Migration from Visual Studio Code to VSCodium

VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in ~/.vscode-oss. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can copy the extensions from ~/.vscode/extensions to ~/.vscode-oss/extensions.

Visual Studio Code stores its keybindings.json and settings.json file in these locations:

  • Windows: %APPDATA%\Code\User
  • macOS: $HOME/Library/Application Support/Code/User
  • Linux: $HOME/.config/Code/User

You can copy these files to the VSCodium user settings folder:

  • Windows: %APPDATA%\VSCodium\User
  • macOS: $HOME/Library/Application Support/VSCodium/User
  • Linux: $HOME/.config/VSCodium/User

To copy your settings manually:

  • In Visual Studio Code, go to Settings (Meta+,)
  • Click the three dots ... and choose 'Open settings.json'
  • Copy the contents of settings.json into the same place in VSCodium

Semi-Automatic Migration with "Sync Settings" Extension

The Sync Settings extension can simplify the migration process by enabling synchronization of settings, keybindings, extensions, and more between Visual Studio Code and VSCodium. Its author is the main maintainer of VSCodium ;)

The extension is available in the Visual Studio Marketplace, OpenVSX or directly in its GitHub repository.

Steps:

  1. Install the Sync Settings extension in both Visual Studio Code and VSCodium.
  2. Configure the extension on both Visual Studio Code and VSCodium:
  • Open Command Palette (Meta+Shift+P).
  • Search for Sync Settings: Open the repository settings and execute the command.
  • Configure the repository
  1. Export your current settings from Visual Studio Code:
  • Open Command Palette (Meta+Shift+P).
  • Search for Sync Settings: Upload (user -> repository) and execute the command.
  1. Import the settings into VSCodium:
  • I recommend the setting "syncSettings.openOutputOnActivity": true,.
  • Open Command Palette (Meta+Shift+P).
  • Search for Sync Settings: Download (repository -> user) and execute the command.
  • Wait for all the extensions to be downloaded and installed (follow logs in the Output panel) before restarting VSCodium.

This method ensures that all supported configurations are seamlessly transferred.


File: docs/others.md

Other Resources

Table of Contents

What are reh and reh-web archives?

  • Remote Host (reh) is the server component for remote ssh/wsl which runs it on a "remote" computer and makes that remote computer accessible via VSCodium.
  • Web Host (reh-web) is the server component of the command codium serve-web which runs it locally and makes VSCodium accessible via a browser.

2. Official Technical Reference & Guides (VSCodium/VSCodium.github.io)

Source code of vscodium.com

This repository contains the source code of the www.vscodium.com website.

Build process

The website uses Jekyll, a static website engine that compiles
the jekyll template into a static html website.

How to download and test the website in localhost

Clone the repo

text
git clone https://github.com/VSCodium/vscodium.github.io

cd vscodium.github.io

Install jekyll and launch the development server

Install jekyll from the official website

Or use the package manager of your GNU/Linux distribution (i.e. sudo apt install jekyll)

and run the following command inside the site source to start a temporary server

text
jekyll serve

then open a browser and go to

http://localhost:4000

Build and deploy the static code

Run the following command inside the jekyll source

text
jekyll build

and move the content of the _site folder in your webserver root to deploy the website