A VS Code extension’s own manifest is an npm-style package.json at the
root of its folder, normally extension/package.json in the package. The
VSIX manifest names it with a
Microsoft.VisualStudio.Code.Manifest asset. Its name, publisher and version
should match the VSIX manifest’s Identity.
Fields
| Field | Required | Type | Description |
|---|---|---|---|
name | yes | string | Lower case, no spaces. Unique on the Marketplace. |
version | yes | string | A SemVer-compatible version. |
publisher | yes | string | The publisher identifier. With the name it forms the extension’s ID, publisher.name. |
engines | yes | object | Must include a vscode key with the VS Code versions it works with. It cannot be *. |
license | no | string | As in npm. For a shipped licence file, SEE LICENSE IN <filename>. |
displayName | no | string | The name shown on the Marketplace. Must be unique there. |
description | no | string | A short summary. |
categories | no | string[] | The Marketplace categories. |
keywords | no | array | Search keywords, at most 30. |
galleryBanner | no | object | Styles the Marketplace header: color and theme (dark or light). |
preview | no | boolean | Marks the extension as a preview on the Marketplace. |
main | no | string | The entry point. |
browser | no | string | The entry point for a web extension. |
contributes | no | object | What it adds: contribution points. |
activationEvents | no | array | When it starts. |
badges | no | array | Approved badges for the Marketplace sidebar, each with url, href and description. |
markdown | no | string | The Marketplace’s Markdown engine: github (the default) or standard. |
qna | no | string or false | The questions and answers link: marketplace (the default), a URL, or false to turn it off. |
sponsor | no | object | A url for a sponsorship page. |
dependencies | no | object | Node.js run-time dependencies, as in npm. |
devDependencies | no | object | Node.js development dependencies, as in npm. |
extensionPack | no | array | The IDs of extensions installed together, as publisher.name. |
extensionDependencies | no | array | The IDs of extensions this one needs, as publisher.name. |
extensionKind | no | array | Where it runs when a window is remote: ui, workspace or both, in order of preference. |
scripts | no | object | npm scripts, with VS Code’s hooks such as vscode:prepublish and vscode:uninstall. |
icon | no | string | The path of the icon. At least 128 × 128 pixels, or 256 × 256 for Retina screens. |
pricing | no | string | Free (the default) or Trial. |
capabilities | no | object | Support in limited workspaces, through untrustedWorkspaces and virtualWorkspaces. |
Marketplace pages also use bugs.url, repository.url,
homepage and license for the links under Resources. A
README.md in the root is shown on the extension’s page.
Categories
The values allowed for categories are:
Programming Languages,Snippets,Linters,Themes,Debuggers,Formatters,Keymaps,SCM Providers,OtherExtension Packs,Language Packs,Data Science,Machine Learning,Visualization,Notebooks,Education,Testing
Translated values
A string value of the form %key% stands for the text under
key in a package.nls.json beside package.json.
Pre-release versions
A pre-release is packaged with the --pre-release option of
vsce. Only versions of the form major.minor.patch are
supported, not SemVer pre-release tags, and a pre-release needs
engines.vscode to be at least 1.63.0.