Skip to content

Instantly share code, notes, and snippets.

@Jaid
Created October 4, 2025 01:16
Show Gist options
  • Select an option

  • Save Jaid/1196746806dc7be1eaa7783e4d7b388a to your computer and use it in GitHub Desktop.

Select an option

Save Jaid/1196746806dc7be1eaa7783e4d7b388a to your computer and use it in GitHub Desktop.
VSCode extension manifest JSON schema
{
"$schema": "https://json-schema.org/draft-07/schema",
"$comment": "Created with Gemini: https://aistudio.google.com/prompts/1qOHlwgopIioc0DmKrSkmMkMRDZfKVzMB",
"title": "VSCode extensions manifest",
"description": "Schema for the package.json file of a Visual Studio Code extension.",
"type": "object",
"required": [
"name",
"publisher",
"version",
"engines"
],
"properties": {
"name": {
"description": "The name of the extension. It must be unique on the marketplace, in the form of `^[a-z0-9][a-z0-9-]*$`.",
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"displayName": {
"description": "The display name for the extension used in the VS Code UI.",
"type": "string"
},
"publisher": {
"description": "The publisher of the extension. It must be unique on the marketplace, in the form of `^[a-z0-9][a-z0-9-]*$`.",
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]*$"
},
"version": {
"description": "The version of the extension in semantic versioning format.",
"type": "string",
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"
},
"private": {
"description": "Set to true if the extension is not intended to be published to the marketplace.",
"type": "boolean"
},
"engines": {
"description": "Specifies the VS Code engine version that the extension is compatible with.",
"type": "object",
"properties": {
"vscode": {
"description": "A semver-compatible string for the VS Code engine. e.g. ^1.80.0",
"type": "string"
}
},
"required": [
"vscode"
]
},
"description": {
"description": "A brief description of the extension.",
"type": "string"
},
"author": {
"description": "The author of the extension.",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
}
},
"required": [
"name"
]
}
]
},
"categories": {
"description": "Categories used by VS Code to group extensions.",
"type": "array",
"items": {
"type": "string",
"enum": [
"Programming Languages",
"Snippets",
"Linters",
"Themes",
"Debuggers",
"Formatters",
"Keymaps",
"SCM Providers",
"Other",
"Extension Packs",
"Language Packs",
"Data Science",
"Machine Learning",
"Visualization",
"Notebooks",
"Education",
"Testing"
]
}
},
"keywords": {
"description": "Keywords for the marketplace.",
"type": "array",
"items": {
"type": "string"
}
},
"main": {
"description": "The path to the extension's entry point file for Node.js environments.",
"type": "string"
},
"browser": {
"description": "The path to the extension's entry point file for web environments.",
"type": "string"
},
"icon": {
"description": "Path to the extension's icon.",
"type": "string"
},
"preview": {
"description": "Set to true if the extension is in preview.",
"type": "boolean"
},
"bugs": {
"description": "Link to the extension's issue tracker.",
"oneOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"email": {
"type": "string",
"format": "email"
}
}
}
]
},
"repository": {
"description": "The extension's source code repository.",
"oneOf": [
{
"type": "string",
"format": "uri"
},
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"type",
"url"
]
}
]
},
"homepage": {
"description": "The extension's homepage.",
"type": "string",
"format": "uri"
},
"license": {
"description": "The license of the extension.",
"type": "string"
},
"activationEvents": {
"description": "An array of events that will trigger the extension's activation. E.g. 'onCommand:myCommand', 'onLanguage:typescript', '*'.",
"type": "array",
"items": {
"type": "string"
}
},
"extensionDependencies": {
"description": "A list of extensions that this extension depends on.",
"type": "array",
"items": {
"type": "string",
"pattern": "^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$"
}
},
"extensionPack": {
"description": "A list of extensions that will be installed when this extension is installed.",
"type": "array",
"items": {
"type": "string",
"pattern": "^([a-z0-9A-Z][a-z0-9-A-Z]*)\\.([a-z0-9A-Z][a-z0-9-A-Z]*)$"
}
},
"extensionKind": {
"description": "Describes the environment where the extension can run. Can be 'ui', 'workspace', or 'web'.",
"oneOf": [
{
"type": "string",
"enum": [
"ui",
"workspace",
"web"
]
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"ui",
"workspace",
"web"
]
}
}
]
},
"enabledApiProposals": {
"description": "A list of proposed APIs that this extension uses.",
"type": "array",
"items": {
"type": "string"
}
},
"api": {
"description": "Indicates whether the extension uses proposed APIs.",
"type": "string",
"enum": [
"none",
"proposed"
]
},
"sponsor": {
"description": "Sponsorship details for the extension.",
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"url"
]
},
"contributes": {
"description": "All of the contributions that the extension makes to VS Code.",
"type": "object",
"properties": {
"commands": {
"description": "Contributes commands to the command palette.",
"type": "array",
"items": {
"$ref": "#/definitions/command"
}
},
"configuration": {
"description": "Contributes configuration settings.",
"oneOf": [
{
"$ref": "#/definitions/configuration"
},
{
"type": "array",
"items": {
"$ref": "#/definitions/configuration"
}
}
]
},
"menus": {
"description": "Contributes menu items to the editor.",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/definitions/menuItem"
}
}
},
"keybindings": {
"description": "Contributes keybindings.",
"type": "array",
"items": {
"$ref": "#/definitions/keybinding"
}
},
"languages": {
"description": "Contributes language definitions.",
"type": "array",
"items": {
"$ref": "#/definitions/language"
}
},
"grammars": {
"description": "Contributes TextMate grammars.",
"type": "array",
"items": {
"$ref": "#/definitions/grammar"
}
},
"themes": {
"description": "Contributes color themes.",
"type": "array",
"items": {
"$ref": "#/definitions/theme"
}
},
"snippets": {
"description": "Contributes snippets.",
"type": "array",
"items": {
"$ref": "#/definitions/snippet"
}
},
"views": {
"description": "Contributes views to the editor.",
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/definitions/view"
}
}
},
"viewsContainers": {
"description": "Contributes view containers.",
"type": "object",
"properties": {
"activitybar": {
"type": "array",
"items": {
"$ref": "#/definitions/viewContainer"
}
},
"panel": {
"type": "array",
"items": {
"$ref": "#/definitions/viewContainer"
}
}
}
}
},
"additionalProperties": true
}
},
"definitions": {
"l10n-string": {
"type": "string",
"description": "A localizable string, which can be a direct string or a key in the format '%key%' for localization.",
"pattern": "^(%[^%]+%|[^%].*)$"
},
"icon": {
"description": "An icon can be a string path to an SVG or a themeable object with light and dark paths.",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"light": {
"type": "string"
},
"dark": {
"type": "string"
}
},
"required": [
"light",
"dark"
]
}
]
},
"command": {
"type": "object",
"properties": {
"command": {
"description": "Identifier of the command to execute.",
"type": "string"
},
"title": {
"description": "Title by which the command is represented in the UI.",
"$ref": "#/definitions/l10n-string"
},
"category": {
"description": "Category string by which the command is grouped in the UI.",
"$ref": "#/definitions/l10n-string"
},
"icon": {
"description": "Icon for the command.",
"$ref": "#/definitions/icon"
}
},
"required": [
"command",
"title"
]
},
"configuration": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the configuration section."
},
"properties": {
"type": "object",
"description": "The configuration properties.",
"additionalProperties": {
"$ref": "https://json-schema.org/draft-07/schema#"
}
}
}
},
"menuItem": {
"type": "object",
"properties": {
"command": {
"description": "Identifier of the command to execute.",
"type": "string"
},
"alt": {
"description": "Identifier of an alternative command to execute.",
"type": "string"
},
"when": {
"description": "Condition for when the menu item should be shown.",
"type": "string"
},
"group": {
"description": "Group into which this command is sorted.",
"type": "string"
}
},
"required": [
"command"
]
},
"keybinding": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"key": {
"type": "string"
},
"mac": {
"type": "string"
},
"linux": {
"type": "string"
},
"win": {
"type": "string"
},
"when": {
"type": "string"
}
},
"required": [
"command",
"key"
]
},
"language": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
}
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
},
"configuration": {
"type": "string"
}
},
"required": [
"id"
]
},
"grammar": {
"type": "object",
"properties": {
"language": {
"type": "string"
},
"scopeName": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"scopeName",
"path"
]
},
"theme": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"uiTheme": {
"type": "string",
"enum": [
"vs",
"vs-dark",
"hc-black",
"hc-light"
]
},
"path": {
"type": "string"
}
},
"required": [
"label",
"path"
]
},
"snippet": {
"type": "object",
"properties": {
"language": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"language",
"path"
]
},
"view": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"when": {
"type": "string"
},
"icon": {
"type": "string"
}
},
"required": [
"id",
"name"
]
},
"viewContainer": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"icon": {
"type": "string"
}
},
"required": [
"id",
"title"
]
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment