Post Your Build Ideas
Launch

VS Code Marketplace Listing Requirements: Manifest, Icon, README and Publisher

A VS Code Marketplace listing is built from your extension’s package.json, README.md and icon. You need a publisher ID, a unique lowercase name and display name, a version, an engines.vscode range and a PNG icon of at least 128 x 128 pixels that is not an SVG. Microsoft’s docs were read on 13 November 2026; they also say global Azure DevOps access tokens are retired on 1 December 2026.

Where does the listing text come from?

Unlike an app store form, a Marketplace page is generated from files in your extension folder. The page you are reading summarizes two Microsoft documents, Publishing Extensions and the extension manifest reference, both read on 13 November 2026. The README.md in the root supplies the content of the Marketplace page. CHANGELOG.md carries the change history, LICENSE the licence terms and SUPPORT.md the ways to get help. The manifest gives the headline fields.

Manifest fields that shape the listing (extension manifest reference)
FieldWhat the docs sayListing effect
nameLowercase, no spaces, unique in the MarketplaceForms the extension ID, publisher.name
displayNameUsed in the Marketplace; must be uniqueThe visible title
descriptionA short description of what the extension is and doesShown under the title and in search results
publisherThe publisher identifierNamespaces the extension as publisher.name
versionSemVer compatibleThe release number shown on the page
enginesMust include a vscode key; cannot be *Controls which editor versions can install it
categoriesFrom a fixed list that includes Programming Languages, Snippets, Linters, Themes, Debuggers, Formatters, Testing, Education, Machine Learning, Visualization and OtherWhere it appears in browsing
keywordsLimited to 30 keywordsAdded to the tags used for search
iconPath to a PNG of at least 128 x 128 pixels; 256 x 256 for Retina screensThe tile and header image
galleryBannerA banner colour set to match your iconHeader background on the page
previewFlags the extension as a PreviewA visible label
badgesOnly approved badge providersSidebar badges
sponsorA URL where people can sponsor youA sponsor link

Which image rules can make publishing fail?

The publishing page lists checks that vsce, the packaging tool, runs before it uploads. The icon in package.json may not be an SVG. Badges may not be SVGs unless they come from a trusted badge provider. Image URLs in README.md and CHANGELOG.md must resolve to HTTPS addresses, and images in those two files may not be SVGs either unless they are from trusted badge providers. Microsoft’s stated reason is security: vsce will not publish extensions that contain user-provided SVG images.

That rule surprises people who draw diagrams in a vector tool. Export screenshots and diagrams as PNG before you reference them. If the repository property in package.json points to a public GitHub repository, vsce detects it and rewrites relative links in the README to match, using the main branch unless you pass the --githubBranch flag. You can also set --baseContentUrl and --baseImagesUrl yourself, which matters when your images live somewhere other than the default branch.

What do you need to create before the first publish?

A publisher is the identity that owns your extensions, created on the Visual Studio Marketplace publisher management page. It needs an ID and a name. The ID is unique, appears in extension URLs and cannot be changed after creation; the name is what users see next to your extension and can be your company or brand. Every extension’s package.json must carry the publisher ID.

On the day we read the page, an Important note said that on 1 December 2026 global Personal Access Tokens in Azure DevOps are retired, and that to keep publishing you should use federated identity instead of PATs. Microsoft lists two supported routes. For GitHub Actions, create a Trusted Publishing policy on the publisher page, giving the repository owner, the repository, the workflow filename and, if used, the environment name. For Azure Pipelines, generate a Microsoft Entra ID token and run vsce publish --azure-credential. It adds that Trusted Publishing does not support other CI providers at present. If you follow an older tutorial that creates a PAT, check this note first.

What do the verified badge and name rules mean?

  • Verified publisher badge: you verify ownership of a domain tied to your brand. The docs say the publisher must have had one or more extensions on the Marketplace for at least six months, and the domain registration must also be at least six months old. Changing the publisher display name revokes the badge.
  • Names are permanent: once an extension is removed, its name stays reserved and cannot be reused, even by the original publisher. Choose the name you are willing to keep.
  • Pre-release versions: pass --pre-release to vsce package or vsce publish to publish a pre-release channel.
  • Sponsor field: optional; it links to a page where users can sponsor you.

The six-month rule means a brand-new extension cannot show a verified badge at launch, so it is not a launch task. Put its date in your calendar and spend the launch week on the README instead.

How do you move from the Marketplace listing to launching?

Package locally with vsce package first, read the generated page on your own machine and fix the image checks. Publish, then give the listing a public home. Launch your product free here with the Marketplace URL as the link, so that people who do not live in the editor’s extension panel can still find it. The VS Code extension launch playbook gives the order, the places to launch VS Code extensions lists the communities, and the open source launch checklist covers repository hygiene.

Extension authors also have the Marketplace’s own reports: the publisher page shows acquisition trends, total acquisitions and ratings and reviews for each extension. Pair that with a tagged link per launch place, using the UTM tagging guide, so you can tell whether installs came from your README, a post or a directory. Looking for an idea to build? The developer tool ideas are a good start.

Frequently asked questions

What size must a VS Code extension icon be?

Microsoft’s manifest reference asks for a path to an icon of at least 128 x 128 pixels, with 256 x 256 for Retina screens. The publishing page adds that the icon in package.json may not be an SVG, so export it as a PNG before packaging.

Can I use SVG images in my extension README?

Not freely. Microsoft says vsce will not publish extensions containing user-provided SVG images, and images in README.md and CHANGELOG.md may not be SVGs unless they come from trusted badge providers. Image URLs in those files must also resolve to HTTPS addresses.

Do I still need a personal access token to publish?

The publishing page says that on 1 December 2026 global Personal Access Tokens in Azure DevOps are retired, and recommends federated identity. Use Trusted Publishing with GitHub Actions or Microsoft Entra ID with Azure Pipelines. Other CI providers are not supported for Trusted Publishing at present.

How long before an extension can be a verified publisher?

The publisher needs one or more extensions on the Marketplace for at least six months, and the domain you verify must have been registered for at least six months. A new publisher therefore cannot be verified at launch. Changing the publisher display name later revokes the badge.

Written by Post your build ideas with AI assistance and edited for this site. Where a page names another product, the facts came from that product’s own pages on the date shown above; terms change, so check them before you rely on them. About the publisher.