Open VSX Is an Open-Source Alternative to Microsoft’s Marketplace

  FR, EO
 4 min. to read
 No comment yet
  (last mod.: 2022-02-17)

When working with VSCodium, it’s possible you can’t find an extension you’ve seen in the marketplace. Here’s why.

Storytime #

This is the piece where I sit like a grampa in an old chair and I put on my glasses to read you a story.

Once upon a time, a developer1 followed a tutorial to start developing an integration for an open-source solution. The guide told him to install a Microsoft extension in his VS Code. So, he opened the Extensions menu of his VSCodium and searched for it, but got no result.

Sure enough, the extension was visible on the marketplace on the web and in VS Code, but not in VSCodium. He thought Microsoft had found a way to lock this particular extension for non-VS Code editors and used Microsoft’s editor to go on with his learning.

A few months later, he tried to install another extension, which was absolutely not related to Microsoft, and it appeared to be unavailable, too. That one2 was clearly open to everyone, and yet, it wasn’t available in the Extensions menu.

He decided to investigate, this time, and discovered that VSCodium doesn’t use Microsoft’s marketplace, but Open VSX instead. The extensions he wanted just hadn’t been published to that one.

What’s Open VSX, and Why? #

Open VSX is a self-hostable, vendor-neutral, community-driven, open-source alternative extension outlet to Microsoft’s Visual Studio Marketplace.

VS Code’s extensions are undoubtedly one of its greatest strengths, but you may not want to use Microsoft’s binaries under a proprietary license. That’s OK, there are alternatives: VSCodium, Theia, Eclipse Che… But Microsoft’s Marketplace is not open source and its terms of use limit those tools from accessing VS Code extensions that way.

The Marketplace enables you to access or purchase products or services which are designed to work with and extend the capabilities of Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, GitHub Codespaces, Azure DevOps, Azure DevOps Server, and successor products and services (the “In-Scope Products and Services”) offered by us and GitHub, Inc. (“GitHub”). Terms of Use of Microsoft's Marketplace

Marketplace Offerings are intended for use only with In-Scope Products and Services and you may install and use Marketplace Offerings only with In-Scope Products and Services. Terms of Use of Microsoft's Marketplace

Downloading extensions from the Microsoft Marketplace for any use other than in Microsoft products is prohibited as well. Eclipse Open VSX: A Free Marketplace for VS Code Extensions, Sven Efftinge, Miro Spönnemann, 03/2020

So Microsoft created a wide registry of open-source products, but restrict their use to their proprietary solutions exclusively.

And here comes Open VSX:

Thus, you can have control over the sources of both your IDE and the extension repository.

Publish Your Extensions to Open VSX #

If you’re a maintainer of a VS Code extension and you’d like to make sure it’s available for open source editors too, you should also take the time to publish it to Open VSX.

The full procedure is not that difficult:

  1. Register on through GitHub OAuth3.
  2. Create an access token and copy it.
  3. Run npx ovsx create-namespace <publisher> --pat <token> with the publisher name specified in extension’s package.json.
  4. Run npx ovsx publish --pat <token> in the directory of the extension you want to publish. Eclipse Open VSX: A Free Marketplace for VS Code Extensions, Sven Efftinge, Miro Spönnemann, 03/2020

There’s also the possibility to create a pull request to a seeding GitHub repository.

The End #

It’s too bad that Microsoft locking open source extensions to its own systems through its terms of use, but Open VSX’s here to help make them available to everyone.

  1. OK, you got me: it was I who lived that story. ↩︎

  2. It was an extension to enable the X-system in VS Code/VSCodium. I’ll write more about that in February. ↩︎

  3. You may notice the irony of using a proprietary solution to log in to an open source registry, but compromises are necessary sometimes. ↩︎