News

VSCodium Strips Microsoft Telemetry from VS Code with FOSS License

A new open-source build of the popular Visual Studio Code (VS Code) editor stripped of Microsoft customizations and released under a "real" open-source license is now available.

VSCodium offers a version of the streamlined code editor without Microsoft branding, telemetry, and licensing. Microsoft created VS Code and donated it to open source under a permissible MIT license, which allows Redmond to take that project's source code, add its own customizations, and then offers it under the Microsoft Software License, which is not a free and open source software (FOSS) license.

VSCodium is not a fork of VS Code. The project simply provides scripts to automatically build Microsoft's vscode repository into freely licensed binaries with a community-driven default configuration.

In other words, it eases the process any developer could undertake to create a VS Code editor based solely on the MIT-licensed binaries.

VSCodium is a response to a GitHub issue dating back to November 2015 that noted the VS Code license link pointed to a non-open-source license. In response, Microsoft's Chris Dias provided this explanation:

When we set out to open source our code base, we looked for common practices to emulate for our scenario. We wanted to deliver a Microsoft branded product, built on top of an open-source code base that the community could explore and contribute to.

We observed a number of branded products being released under a custom product license, while making the underlying source code available to the community under an open-source license. For example, Chrome is built on Chromium, the Oracle JDK is built from OpenJDK, Xamarin Studio is built on MonoDevelop, and JetBrains products are built on top of the IntelliJ platform. Those branded products come with their own custom license terms but are built on top of a code base that's been open sourced.

We then follow a similar model for Visual Studio Code. We build on top of the vscode code base we just open sourced and we release it under a standard, pre-release Microsoft license.

The cool thing about all of this is that you have the choice to use the Visual Studio Code branded product under our license or you can build a version of the tool straight from the vscode repository, under the MIT license.

Here's how it works. When you build from the vscode repository, you can configure the resulting tool by customizing the product.json file. This file controls things like the Gallery endpoints, "Send-a-Smile" endpoints, telemetry endpoints, logos, names, and more.

When we 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 (note, I made this commit to help make this more clear).

I hope this helps explain why our Microsoft branded Visual Studio Code product has a custom product license while the vscode open source repository has an MIT license. Last, I apologize for the fact that the naming of "Visual Studio Code", "VS Code" and the vscode repository are so similar, I think it contributed to the confusion.

This page explains how the telemetry is stripped out of VSCodium. The project notes that some VS Code extensions send their own telemetry to Microsoft, which VSCodium can do nothing about (except recommend their removal). Also, some extensions -- notably a couple debuggers -- are provided with licenses restricting their use to the official VS Code builds, so they don't work with VSCodium. This page provides more on that issue.

On the VSCodium Web site, the project is described as "a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity)." For a download, the site points to the latest release -- shipped last week -- on the GitHub site.

About the Author

David Ramel is an editor and writer for Converge360.