Visual Studio Code supports Portable Mode. This mode enables all data created and maintained by VS Code to live near itself, so it can be moved around across environments.
Portable Mode is supported on the ZIP download for Windows and Linux, as well as the regular Application download for macOS.
Enable Portable Mode
After unzipping the VS Code download, simply create a
data folder within Code's folder:
|- VSCode-win32-x64-1.25.0-insider | |- Code.exe (or code executable) | |- data | |- ...
From then on, that folder will be used to contain all Code data, including session state, preferences, extensions, etc.
data folder can be moved to other VS Code installations. This is useful for updating your portable Code version: simply move the
data folder to a newer extracted version of VS Code.
On macOS, you need to place the data folder as a sibling of the application itself. Since the folder will be alongside the application, you need to name it specifically so that Code can find it. The default folder name is
|- Visual Studio Code.app |- code-portable-data
Portable Mode won't work if your application is in quarantine, which happens by default if you just downloaded Code. Make sure you remove the quarantine attribute, if Portable Mode doesn't seem to work:
xattr -dr com.apple.quarantine Visual\ Studio\ Code.app
Note: On Insiders, the folder should be named
Migrate to Portable Mode
You can also migrate an existing installation to Portable mode:
- Download the VS Code ZIP distribution for your platform.
- Create the
code-portable-datafolder as above.
- Copy the user data directory to
dataand rename it to
- Copy the extensions directory to
Here's the desired outcome on Windows:
|- VSCode-win32-x64-1.25.0-insider | |- Code.exe (or code executable) | |- data | | |- user-data | | | |- ... | | |- extensions | | | |- ... | |- ...
By default, the default
TMP directory is still the system one even in Portable Mode, since no state is kept there. If you wish to also have your TMP directory within your portable directory, simply create an empty
tmp directory inside the
data folder. As long as a
tmp directory exists, it will be used for TMP data.