I need to send all my installed extensions to my colleagues. How can I export them?
The extension manager seems to do nothing... It won't install any extension.
I need to send all my installed extensions to my colleagues. How can I export them?
The extension manager seems to do nothing... It won't install any extension.
Automatic
If you are looking forward to an easy one-stop tool to do it for you, I would suggest you to look into the Settings Sync extension.
It will allow
Manual
Make sure you have the most current version of Visual Studio Code. If you install via a company portal, you might not have the most current version.
On machine A
Unix:
code --list-extensions | xargs -L 1 echo code --install-extension
Windows (PowerShell, e. g. using Visual Studio Code's integrated Terminal):
code --list-extensions | % { "code --install-extension $_" }
Copy and paste the echo output to machine B
Sample output
code --install-extension Angular.ng-template
code --install-extension DSKWRK.vscode-generate-getter-setter
code --install-extension EditorConfig.EditorConfig
code --install-extension HookyQR.beautify
Please make sure you have the code
command line installed. For more information, please visit Command Line Interface (CLI).
code
executable location: /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code
~ I have now just created an alias to it in my .bash_profile
on all my Mac's –
Tangency code --list-extensions | % { "code --install-extension $_" }
(I also edited this into the answer) –
Shelbashelbi install.sh
, in git bash start install.sh
–
Abnegate code --list-extensions | xargs -L 1 echo code --install-extension > vsc-extensions.txt
–
Hitchcock powershell 5
and code -h
or any other parameter opens a new instance but not prints the result to stdout. Should I ask a new question? –
Gorton @for /f %%l in ('code --list-extensions') do @echo code --install-extension %%l
Or on command-line (replacing %%
by %
): @for /f %l in ('code --list-extensions') do @echo code --install-extension %l
–
Tangible .bat
/.cmd
file: PowerShell -Command "code --list-extensions | % { """""code --install-extension $_""""" }"
(quote escaping explained in #31576284) –
Tangible code.cmd --list-extensions
instead of just code
. The problem is C:\Program Files\Microsoft VS Code
(or vscode install folder) has code.exe
which opens vscode and is getting called. You actually need to run C:\Program Files\Microsoft VS Code\bin\code.cmd
, which is the command line utility script. –
Tamarin code.cmd
instead of just code
? –
Tamarin code --list-extensions | xargs -L 1 echo https://marketplace.visualstudio.com/items?itemName=
–
Hemophilia code
to work, type cmd + shift + p in VSCode and look for Shell Command: Install 'code' command in PATH
–
Goya extensions
directory files & folders, but don't have access to the old OS you copied them from (and so can't run code --list-extensions
to get the list to pass to code --install-extensions
, here is a way to reformat the directory names (removing the version part) and reinstall them: for EXT in $( ls ~/old/.vscode/extensions/ ); do NAME=$( echo $EXT | perl -ne 's/\-[\d\.]+$//; print "$_"' ); code --install-extension $NAME; done
–
Moo C:\Program Files\Microsoft VS Code
(or vscode install folder) has code.exe
which opens vscode
and is getting called. You actually need to run C:\Program Files\Microsoft VS Code\bin\code.cmd
, which is the command line utility script. –
Tamarin I've needed to do this myself a few times - especially when installing on another machine.
Common questions will give you the location of your folder
Visual Studio Code looks for extensions under your extensions folder .vscode/extensions. Depending on your platform it is located:
Windows %USERPROFILE%\.vscode\extensions
Mac ~/.vscode/extensions
Linux ~/.vscode/extensions
That should show you a list of the extensions.
I've also had success using Visual Studio Code Settings Sync Extension to sync settings to GitHub gist.
In the latest release of Visual Studio Code (May 2016), it is now possible to list the installed extensions on the command line:
code --list-extensions
bin
folder of the application installation. If you look at its content you will see it calls the main executable but telling it to execute the CLI instead. –
Cordiality /mnt/c/Program Files/Microsoft VS Code/bin/code.cmd: 1: /mnt/c/Program Files/Microsoft VS Code/bin/code.cmd: @echo: not found
. code.exe in wsl debian starts the programme and says Ignoring option list-extensions: not supported for code
.. –
Gorton bin/code
(Linux, shell script) and bin/code.cmd
(Windows, batch file). This is a subfolder of your vscode
install directory. It runs electron as node and executes a cli javascript file. –
Tamarin code --list-extensions
still works on VSCode, 1.74.2 at DEC 22, thanks –
Nucleonics extensions
directory with the old one and Visual Studio code loaded the extensions fine. Just wanted to document that in case anyone wondered. –
Brande Machine A:
In the Visual Studio Code PowerShell terminal:
code --list-extensions > extensions.list
Machine B:
Copy extension.list to the machine B
In the Visual Studio Code PowerShell terminal:
cat extensions.list |% { code --install-extension $_}
code.cmd
instead of code
if you are getting a new window. code.cmd
is in the bin/
subdirectory of your vscode install folder. On Linux, run bin/code
(which is a shell script) –
Tamarin I have developed an extension which will synchronise your all Visual Studio Code settings across multiple instances.
Key Features
It synchronises the
Detail Documentation Source
Visual Studio Code Sync ReadMe
Download here: Visual Studio Code Settings Sync
For Linux
On the old machine:
code --list-extensions > vscode-extensions.list
On the new machine:
cat vscode-extensions.list | xargs -L 1 code --install-extension
For Windows:
On the old machine:
code --list-extensions > vscode-extensions.list
On the new machine:
Get-Content vscode-extensions.list | ForEach-Object { code --install-extension $_ }
cat: vscode-extensions.list: No such file or directory
–
Torietorii vscode-extensions.list
file must be copied from the old machine to the new machine. –
Cleancut I used the following command to copy my extensions from Visual Studio Code to Visual Studio Code insiders:
code --list-extensions | xargs -L 1 code-insiders --install-extension
The argument -L 1
allows us to execute the command code-insiders --install-extension
once for each input line generated by code --list-extensions
.
init.sh
in my dotfiles repo. I first install extensions from a file and then write all currently installed extensions to the file. Only downside is I would have to delete the file if I want to remove an extension but it should work if I add one. –
Diminution If using bash, you can use the following commands:
Export extensions
code --list-extensions |
xargs -L 1 echo code --install-extension |
sed "s/$/ --force/" |
sed "\$!s/$/ \&/" > install-extensions.bash
With bash alias, just run eve
:
# eve - export vscode extensions
alias eve='code --list-extensions |
xargs -L 1 echo code --install-extension |
sed "s/$/ --force/" |
sed "\$!s/$/ \&/" > install-extensions.bash'
Install extensions
. install-extensions.bash
Dump extensions:
code --list-extensions > extensions.txt
Install extensions with Bash (Linux, OS X and WSL):
cat extensions.txt | xargs code --list-extensions {}
Install extensions on Windows with PowerShell:
cat extensions.txt |% { code --install-extension $_}
--list-extensions
, which doesn't install, so it should be something line --install-extension
but when changed to that it still doesn't work –
Bicycle https://code.visualstudio.com/docs/editor/extension-gallery#_workspace-recommended-extensions
A better way to share extension list is to create workspace-based extension set for your colleagues.
After generating a list of extensions via code --list-extensions | xargs -L 1 echo code --install-extension
(check your $PATH
contains Visual Studio Code entry C:\Program Files\Microsoft VS Code\bin\
before running code commands), run Extensions: Configure Recommended Extensions (Workspace Folder)
Visual Studio Code command (Ctrl + Shift + P) and put extensions into the generated .vscode/extensions.json
file:
{
"recommendations": [
"eg2.tslint",
"dbaeumer.vscode-eslint",
"msjsdiag.debugger-for-chrome"
]
}
Generate a Windows command file (batch) for installing extensions:
for /F "tokens=*" %i in ('code --list-extensions')
do @echo call code --install-extension %i >> install.cmd
Open the Visual Studio Code console and write:
code --list-extensions
(or code-insiders --list-extensions
if Visual Studio Code insider is installed)
Then share the command line with colleagues:
code --install-extension {ext1} --install-extension {ext2} --install-extension {extN}
replacing {ext1}
, {ext2}
, ... , {extN}
with the extension you listed
For Visual Studio Code insider: code-insiders --install-extension {ext1} ...
If they copy/paste it in Visual Studio Code command-line terminal, they'll install the shared extensions.
More information on command-line-extension-management.
Use Visual Studio Code's Profiles feature (introduced February 2023) to share settings, including installed extensions, with colleagues using a named Profile.
GitHub gist
save optionHow to export your Visual Studio Code extensions from the terminal. Here is git for that. Maybe this helps somebody.
Note: Unix-like systems only.
code --list-extensions | sed -e 's/^/code --install-extension /' > my_vscode_extensions.sh
less my_vscode_extesions.sh
Run your my_vscode_extensions.sh
using a Bash command:
bash my_vscode_extensions.sh
If you need to send all your extensions to install on another computer, you can install multiple extensions with a single-line command in this format:
code --install-extension dakshmiglani.hex-to-rgba --install-extension techer.open-in-browser
1. In your terminal, run the following command:
code --list-extensions
2. Copy your list of extensions from the terminal and paste your copied list into a new document.
3. Open a Search and Replace prompt (CTRL+R
on Windows) and do a REGEX search for:
(.+)(\n?)
4. Replace with
--install-extension $1
(Don't omit the space at the beginning.)
5. Add the word code
to the beginning of the resulting text and you'll have a very large command that you can hand off to your colleagues to run in their terminal.
code --install-extension hbenl.vscode-test-explorer --install-extension maciejdems.add-to-gitignore --install-extension techer.open-in-browser --install-extension traBpUkciP.vscode-npm-scripts
...
There is an Extension Manager extension, that may help. It seems to allow to install a set of extensions specified in the settings.json
.
Benny's answer on Windows with the Linux subsystem:
code --list-extensions | wsl xargs -L 1 echo code --install-extension
code --list-extensions > list
sed -i 's/.*/\"&\",/' list
Copy contents of file list
and add to file .vscode/extensions.json
in the "recommendations"
section.
If extensions.json
doesn't exist then create a file with the following contents
{
"recommendations": [
// Add content of file list here
]
}
Share the extensions.json
file and ask another user to add to the .vscode
folder. Visual Studio Code will prompt for installation of extensions.
Now there's a feature still in preview that allows you to sign in with a Microsoft or GitHub account and have your settings synced without any additional extension. It's pretty simple and straigh-forward. You can learn more here.
I opened the Visual Studio Code extensions folder and executed:
find * -maxdepth 2 -name "package.json" | xargs grep "name"
That gives you a list from which you can extract the extension names.
Under windows typically I need to run
cd C:\Program Files\Microsoft VS Code\bin
code.cmd --list-extensions
What you don't do is run the code.exe directly under C:\Program Files\Microsoft VS Code\
program files
nor in program files (x86)
–
Torietorii C:\Users\{Username}\AppData\Local\Programs\Microsoft VS Code
–
Transilluminate If you intend to share workspace extensions configuration across a team, you should look into the Recommended Extensions feature of Visual Studio Code.
To generate this file, open the command pallet > Configure Recommended Extensions (Workspace Folder)
. From there, if you wanted to get all of your current extensions and put them in here, you could use the --list-extensions
stuff mentioned in other answers, but add some AWK script to make it paste-able into a JSON array (you can get more or less advanced with this as you please - this is just a quick example):
code --list-extensions | awk '{ print "\""$0"\"\,"}'
The advantage of this method is that your team-wide workspace configuration can be checked into source control. With this file present in a project, when the project is opened Visual Studio Code will notify the user that there are recommended extensions to install (if they don't already have them) and can install them all with a single button press.
For those that are wondering how to copy your extensions from Visual Studio Code to Visual Studio Code insiders, use this modification of Benny's answer:
code --list-extensions | xargs -L 1 echo code-insiders --install-extension
On Windows using PowerShell script, including a 'friendlyName' which better matches the extension name as it appears in Visual Studio Code interface (which code --list-extensions
doesn't do):
<#
.SYNOPSIS
Gets installed Visual Studio Code extensions in a friendly format.
.DESCRIPTION
Gets installed Visual Studio Code extensions in a friendly format.
.INPUTS
None. You cannot pipe objects to this.
.OUTPUTS
Installed Visual Studio Code extensions in a friendly format.
.EXAMPLE
PS> .\Get-VSCodeExtensions.ps1
.NOTES
Authors: John Bentley, Andrew D. Bond <https://github.com/andrewdbond/>
Updated: 2023-03-22
Latest:
How can you export the Visual Studio Code extension list?: https://mcmap.net/q/57184/-how-can-you-export-the-visual-studio-code-extension-list
#>
$extensions = (Get-Item $HOME/.vscode/extensions/*/package.json).ForEach({
Get-Content $_ | ConvertFrom-Json | Select-Object `
@{name='friendlyName';expr={if($_.PSObject.Properties['displayName']) {$_.displayName} else { $_.name}}},
@{name='publisherAndName';expr={"$($_.publisher).$($_.name)"}},
description,
homepage,
@{name='repository.url';expr={$_.repository.url}},
version
}) | Sort-Object friendlyName
Write-Output $extensions
# Optional: Set clipboard with the results to paste into Google Sheets, Excel, etc.
$extensions | ConvertTo-Csv | Set-Clipboard
Example output:
friendlyName : Pylance
publisherAndName : ms-python.vscode-pylance
description : A performant, feature-rich language server for Python in VS Code
homepage :
repository.url : https://github.com/microsoft/pylance-release
version : 2023.3.20
friendlyName : Python
publisherAndName : ms-python.python
description : IntelliSense (Pylance), Linting, Debugging (multi-threaded, remote), Jupyter Notebooks, code formatting,
refactoring, unit tests, and more.
homepage : https://github.com/Microsoft/vscode-python
repository.url : https://github.com/Microsoft/vscode-python
version : 2023.4.1
Instructions (Windows only):
Or
Get-VSCodeExtensions.ps1
Get-VSCodeExtensions.ps1
(cd
might help here).\Get-VSCodeExtensions.ps1
PublisherAndName = ...
I put Description = $json.description
to get the text description in the output as well. –
Odelet If you would like to transfer all the extensions from code
to code-insiders
or vice versa, here is what worked for me from Git Bash.
code --list-extensions | xargs -L 1 code-insiders --install-extension
This will install all the missing extensions and skip the installed ones. After that, you will need to close and reopen Visual Studio Code.
Similarly, you can transfer extensions from code-insiders
to code
with the following:
code-insiders --list-extensions | xargs -L 1 code --install-extension
File > Preferences > Turn on Settings Sync Will sync your
VS Code
settings across different devices.
I'm using VS Code Version 1.74.0
For Linux/Mac only, export the installed Visual Studio Code extensions in the form of an installation script. It's a Z shell (Zsh) script, but it may run in Bash as well.
https://gist.github.com/jvlad/6c92178bbfd1906b7d83c69780ee4630
I create an extension for this problem. This extension allows you to export a list of all currently installed extensions in your Visual Studio Code. The exported list is saved in a JSON file that can be imported later to restore the extensions.
How can you export the Visual Studio Code extension list?
(Ctrl+Shift+P or Cmd+Shift+P) and type
Export Extensions
Import Extensions
This method uses helps install existing extensions on a new system (with reference to an existing system) using .vsix package
It requires Yeoman VS Code extension generator and vsce (or nodejs to install these).
extension pack
(more details here)npm install -g yo generator-code yo code
First command installs Yeoman VS Code generator, second creates the extension pack (choose default options as below. The created package.json
contains all extensions in the pack, you can modify that list)
.vsix file
npm install -g vsce vsce package
First command installs vsce, second packages the extension into a .vsix file
(run from the root of the extension pack created above)
.vsix file
code --install-extension extension-pack-0.0.1.vsix
PS: If you are going to publish the extension pack then consider filling in all details appropriately, while creating it.
The other answers require a working 'source' machine, however if you only have the files from it (e.g. a disk extracted from a device with other failed hardware) then you can recover & reinstall the extensions like this:
Find the file path/to/old/userhome/.vscode/extensions/extensions.json
(help) from the old disk & copy this file to the target machine where you want to reinstall all these extensions.
On the new machine, run this in PowerShell:
cd <the folder where you copied extensions.json>
(Get-Content extensions.json | ConvertFrom-Json).ForEach({ Write-Host $_.identifier.id }) | % { code --install-extension $_}
Job done!
© 2022 - 2024 — McMap. All rights reserved.
.vsix file
and distribute this file. How to do this is described here #58513766 – Elaterite