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
- Build
- Why Does This Exist
- More Info
- Supported Platforms
- Previously Supported Platforms
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:
# stable
brew install --cask vscodium
# insiders
brew install --cask vscodium@insidersInstall with Windows Package Manager (WinGet)
If you use Windows and have Windows Package Manager installed:
:: stable
winget install -e --id VSCodium.VSCodium
:: insider
winget install -e --id VSCodium.VSCodium.InsidersInstall with Chocolatey (Windows)
If you use Windows and have Chocolatey installed (thanks to @Thilas):
:: stable
choco install vscodium
:: insider
choco install vscodium-insidersInstall with Scoop (Windows)
If you use Windows and have Scoop installed:
scoop bucket add extras
scoop install vscodiumInstall 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:
snap install codium --classicInstall 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:
flatpak install flathub com.vscodium.codium
flatpak run com.vscodium.codiumBuild
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:
- Pre-built extensions from the GitHub:
- From Electron releases (using gulp-atom-electron)
- electron
- ffmpeg
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:
- Latest available: v1.121.03429.
- Breaking point:
node-v24.
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
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:
"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%\VSCodiumor%USERPROFILE%\AppData\Roaming\VSCodium - macOS:
~/Library/Application Support/VSCodium - Linux:
$XDG_CONFIG_HOME/VSCodiumor~/.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
- How to use the OpenVSX Marketplace
- How to use a different extension gallery
- How to self host your own extension gallery
- Visual Studio Marketplace
- Proprietary Debugging Tools
- Proprietary Extensions
- Using the "VSIX Manager" Extension
- Extensions compatibility
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.
How to use a different extension gallery
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_URLVSCODE_GALLERY_CONTROL_URLVSCODE_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%\VSCodiumor%USERPROFILE%\AppData\Roaming\VSCodium - macOS:
~/Library/Application Support/VSCodium - Linux:
$XDG_CONFIG_HOME/VSCodiumor~/.config/VSCodium
with the content like:
{
"extensionsGallery": {
"serviceUrl": "", // required
"itemUrl": "", // required
"cacheUrl": "",
"controlUrl": "",
"extensionUrlTemplate": "", // required
"resourceUrlTemplate": "",
}
}How to self-host your own extension gallery
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-marketplaceis 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:
"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
.vsixfiles 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
.vsixfiles. - 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:
- C/C++
- LaTeX Workshop (explicitly unsupported, as indicated in the FAQ)
- Live Share
- Python
- Remote - Containers
- Remote - SSH
- Remote - SSH: Editing Configuration Files
- Remote - WSL
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
- Open Remote - SSH (SSH server must be configured with the setting
AllowTcpForwarding yes.) - Open Remote - WSL
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:
- Open a folder: Use File > Open Folder to open your project
- Install extensions: Click on the Extensions icon in the sidebar to browse and install extensions
- 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) orCmd+P(macOS): Quick Open, Go to FileCtrl+Shift+P(Windows/Linux) orCmd+Shift+P(macOS): Show Command PaletteCtrl+,(Windows/Linux) orCmd+,(macOS): User SettingsCtrl+K Ctrl+S(Windows/Linux) orCmd+K Cmd+S(macOS): Keyboard Shortcuts
Next Steps
Once you're comfortable with the basics, you might want to:
- Explore the documentation for more details
- Join the community to ask questions and share tips
- Contribute to the project if you're interested
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
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:cmdwinget install --id Git.Git -eNode.js โ exact version is specified in
.nvmrc. Use nvm-windows to manage versions:cmdnvm 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:
cmdwinget install --id jqlang.jq -e7-Zip โ used to package
.ziparchives:cmdwinget install --id 7zip.7zip -ePython 3.11 โ required by the VS Code build system:
cmdwinget install --id Python.Python.3.11 -eEnsure
python/python3is on yourPATHafter installation.Rustup โ required to compile some native VS Code modules:
cmdwinget install --id Rustlang.Rustup -eRestart your shell afterwards so
cargoandrustcare on yourPATH.
Optional tools
WiX Toolset v3 (only needed for
.msiinstaller packaging, i.e., the-pflag):Download from wixtoolset.org and ensure
candle.exe/light.exeare on yourPATH.
PATH verification
After installing all tools, verify each is discoverable from Git 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 --versionIf 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:
# 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.shTo go further, you should look at how we build it:
- Linux: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-linux.yml
- macOS: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-macos.yml
- Windows: https://github.com/VSCodium/vscodium/blob/master/.github/workflows/stable-windows.yml
The ./dev/build.sh script is for development purpose and must be avoided for a packaging purpose.
Build Snap
# 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*.snapPatch 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..., openvscodedirectory in VSCodium - fix all the
*.rejfiles - run
npm run watch - run
./script/code.shuntil 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>.patchwhere<name>.patchis the failed patch - open
vscodedirectory in a new VSCodium's window - fix all the
*.rejfiles - run
npm run watch - run
./script/code.shuntil everything is ok - go back to the command line running
./dev/patch.sh, pressenterto 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
- Getting Started with VSCodium
- Getting all the Telemetry Out
- Extensions and Marketplace
- Migration
- Usage
- Troubleshooting
- Other Resources
- Contributing Guidelines
- Building VSCodium
File: docs/migration.md
Migration
Table of Contents
- Manual Migration from Visual Studio Code to VSCodium
- Semi-Automatic Migration with "Sync Settings" Extension
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:
- Install the Sync Settings extension in both Visual Studio Code and VSCodium.
- Configure the extension on both Visual Studio Code and VSCodium:
- Open Command Palette (
Meta+Shift+P). - Search for
Sync Settings: Open the repository settingsand execute the command. - Configure the repository
- 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.
- 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
Outputpanel) 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 commandcodium serve-webwhich 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
git clone https://github.com/VSCodium/vscodium.github.io
cd vscodium.github.ioInstall 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
jekyll servethen open a browser and go to
Build and deploy the static code
Run the following command inside the jekyll source
jekyll buildand move the content of the _site folder in your webserver root to deploy the website