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.
Wanted version
You can specify the version you want like "ms:devX.extY@0.99.0"
.
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",
},
},
Home
The ~
shortcut for the home directory is working on all systems, including Windows.
Lookup
The latest version will be searched in:
~/my-extensions
~/my-extensions/<publisherName>
~/my-extensions/<publisherName>.<extensionName>
For an extension named: "mfs:devX.extY"
, it will for the files:
~/my-extensions/devX.extY-<version>.vsix
~/my-extensions/devX/devX.extY-<version>.vsix
~/my-extensions/devX.extY/devX.extY-<version>.vsix
For an extension named: "mfs:extXYZ"
, it will for the files:
~/my-extensions/extXYZ-<version>.vsix
~/my-extensions/extXYZ/extXYZ-<version>.vsix
github
github
is a built-in source (no configuration required) and will install extensions from the GitHub release pages.
{
"vsix.extensions": [
"github:<username>/<project>",
],
}
Private repository
You can access your private repositories by giving an access token. You can specify an environment variable to read it from.
{
"vsix.sources": {
"mgh": {
"type": "github",
"token": "env:MY_TOKEN",
},
},
"vsix.extensions": [
"mgh:<username>/<project>",
],
}
Owner
{
"vsix.sources": {
"mgh": {
"type": "github",
"owner": "<username>",
},
},
"vsix.extensions": [
"mgh:<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!