VSIX Manager

With VSIX Manager, you can manage your extensions from your settings and install them from several places, including specified marketplaces or GitHub releases.
Configuration
In your settings:
{
"vsix.sources": {
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
},
},
"vsix.groups": {
"node": [
<...extensions>
],
"python": [
<...extensions>
],
},
"vsix.extensions": [
"opn:zokugun.automatic-editor-sorter",
"opn:zokugun.explicit-folding",
"node",
],
"vsix.crons": {
"update": "0 12 * * *"
},
}
Groups
With vsix.groups
, you can manage your extensions by sets.
Extensions
String notation
vsix.extensions
and each group of vsix.groups
are a list of expression
expression = ["-"] *identifier* ("||" *identifier*)*
identifier = *groupName* | *extensionID* | *sourceName*:*extensionID*
extensionID
: id of an extension found in VSCode, VSCodium, ... (same as <publisherName>.<extensionName>
)
groupName
: name of a group defined in vsix.groups
sourceName
: name of a source defined in vsix.sources
"vsix.extensions": [
"opn:zokugun.explicit-folding",
"-vsx:devXalt.extYalt||ms:devX.extY"
],
Object notation
"vsix.extensions": [
"-vsx:devXalt.extYalt||ms:devX.extY"
],
// is equivalent to
"vsix.extensions": [
{
"id": [
"vsx:devXalt.extYalt",
"ms:devX.extY",
],
"enabled": false,
},
],
Disable
If an expression is prefixed by -
or "enabled": false
, then the extension or the group of extension will be installed in a disable state.
Alternatives
If an expression contains multiple identifiers, the manager will try the first one. It it fails, it will try the next one until an extension is installed.
Sources
Within vsix.sources
, you can define where to find the extensions.
marketplace
"vsix.sources": {
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
},
},
file
"vsix.sources": {
"mfs": {
"type": "file",
"path": "~/my-extensions",
},
},
The latest version will be searched in:
~/my-extensions
~/my-extensions/<publisherName>
~/my-extensions/<publisherName>.<extensionName>
github
github
is a built-in source (no configuration required) and will install extensions from the GitHub release pages.
{
"vsix.extensions": [
"github:<username>/<project>",
],
}
fallback
property
You can use the fallback
property to use another source when the extension isn't found in the first source.
"vsix.sources": {
"mfs": {
"type": "file",
"path": "~/my-extensions",
"fallback": "opn",
},
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
},
},
throttle
property
You can use the throttle
property to limit the number of requests to a source.
"vsix.sources": {
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
"throttle": 5000,
},
},
Commands
> VSIX Manager: Install extensions
: install the extensions
> VSIX Manager: Uninstall extensions
: uninstall the extensions
> VSIX Manager: Update extensions
: update the extensions
Crons
vsix.crons
allows you to schedule the update
command.
"vsix.crons": {
"update": "0 12 * * *" // at 12PM, every day
}
Debugging
If the property vsix.debug
(false
by default) is true
, the extension will print out debug information into the channel VSIX Manager
of the panel Output
(menu: View
/ Output
).
Donations
Support this project by becoming a financial contributor.
Enjoy!