Try in VS Code!

Publishing Extensions

Once you have made a high-quality extension, you can publish it to the VS Code Extension Marketplace so others can find, download, and use your extension. Alternatively, you can package an extension into the installable VSIX format and share it with other users.

This topic covers:

vsce

vsce, short for "Visual Studio Code Extensions", is a command-line tool for packaging, publishing and managing VS Code extensions.

Installation

Make sure you have Node.js installed. Then run:

npm install -g @vscode/vsce

Usage

You can use vsce to easily package and publish your extensions:

$ cd myExtension
$ vsce package
# myExtension.vsix generated
$ vsce publish
# <publisher id>.myExtension published to VS Code Marketplace

vsce can also search, retrieve metadata, and unpublish extensions. For a reference on all the available vsce commands, run vsce --help.

Publishing extensions


Note

Due to security concerns, vsce will not publish extensions that contain user-provided SVG images.

The publishing tool checks the following constraints:

  • The icon provided in package.json may not be an SVG.
  • The badges provided in the package.json may not be SVGs unless they are from trusted badge providers.
  • Image URLs in README.md and CHANGELOG.md need to resolve to https URLs.
  • Images in README.md and CHANGELOG.md may not be SVGs unless they are from trusted badge providers.

Visual Studio Code uses Azure DevOps for its Marketplace services. This means that authentication, hosting, and management of extensions are provided through Azure DevOps.

vsce can only publish extensions using Personal Access Tokens. You need to create at least one in order to publish an extension.

Get a Personal Access Token

First off, follow the documentation to create your own organization in Azure DevOps. In the following examples, the organization's name is vscode, you should use your new organization name as appropriate. Note that the organization's name doesn't necessarily have to be same as your publisher name.

  1. From your organization's home page (for example: https://dev.azure.com/vscode), open the User settings dropdown menu next to your profile image and select Personal access tokens:

    Personal settings menu

  2. On the Personal Access Tokens page, select New Token:

    Create new token button

  3. In the Create a new personal access token modal, select the following details for the token:

    • Name: any name you want for the token
    • Organization: All accessible organizations
    • Expiration (optional): set the desired expiration date for the token
    • Scopes: Custom defined:
      • click Show all scopes link below the Scopes section
      • in the Scopes list, scroll to Marketplace and select Manage scope

    Create personal access token

  4. Click Create.

    You'll be presented with your newly created Personal Access Token. Copy it to the safe location, you'll need it to create a publisher.

Create a publisher

A publisher is an identity that can publish extensions to the Visual Studio Code Marketplace. Every extension needs to include a publisher identifier in its package.json file.

To create a publisher:

  1. Go to the Visual Studio Marketplace publisher management page.

  2. Log in with the same Microsoft account you used to create the Personal Access Token in the previous section.

  3. Click Create publisher in the pane on the left.

  4. In the new page, specify the mandatory parameters for a new publisher - identifier and name (ID and Name fields respectively):

    • ID: the unique identifier for your publisher in Marketplace that will be used in your extension URLs. ID cannot be changed once created.
    • Name: the unique name of your publisher that will be displayed in Marketplace with your extensions. This can be your company or brand name.

    Below is an example of publisher identifier and name for the Docker extension:

    Example of publisher identifier and name

  5. Optionally, fill out the rest of the fields.

  6. Click Create

  7. Verify the newly created publisher using vsce. In your terminal, run the following command, and when prompted, type the Personal Access Token created in the previous step:

    vsce login <publisher id>
    
    https://marketplace.visualstudio.com/manage/publishers/
    Personal Access Token for publisher '<publisher id>': ****************************************************
    
    The Personal Access Token verification succeeded for the publisher '<publisher id>'.
    

Once verified, you are ready to publish an extension.

Publish an extension

You can publish an extension in two ways:

  1. Automatically, using vsce publish command:

    vsce publish
    

    If you haven't already provided your personal access token with the vsce login command above, vsce will ask for it.

  2. Manually, using vsce package to package the extension into the installable VSIX format and then uploading it to the Visual Studio Marketplace publisher management page:

    Add an extension through management page

Review extension installs and ratings

The Visual Studio Marketplace publisher management page gives you access to each extension's Acquisition Trend over time, as well as Total Acquisition counts and Ratings & Reviews. To see the reports, click an extension or choose More Actions > Reports.

Marketplace extension report

Auto-increment the extension version

When publishing an extension, you can auto-increment its version number by specifying the SemVer-compatible number or version (major, minor, or patch) to increment. For example, to update an extension's version from 1.0.0 to 1.1.0, you would specify:

vsce publish minor

or

vsce publish 1.1.0

Both commands will first modify the extension's package.json