How to uninstall VS Code on Windows
Removing VS Code and resetting its data are separate decisions. Settings, keybindings and snippets live in one folder, extensions in another, and neither goes away when you uninstall the app. Back them up first if you might reinstall. This guide covers VS Code installed per-user from the Microsoft.VisualStudioCode winget package, and keeps your project folders and their own .vscode configuration untouched.
Quit VS Code first
Save your files, finish any task running in the integrated terminal, and close every VS Code window. VS Code runs as several processes, one per window plus helpers for extensions and the GPU, so check Task Manager (Ctrl+Shift+Esc) for any Code.exe still listed before you uninstall.
Remove the app with its own uninstaller
Go to Settings › Apps › Installed apps, find Visual Studio Code, and choose Uninstall, or run:
winget uninstall --id Microsoft.VisualStudioCode
Back up before you remove data
User settings live in %APPDATA%\Code\User\settings.json. Copy the whole %APPDATA%\Code\User folder to keep keybindings, snippets and profiles too. Extensions live in %USERPROFILE%\.vscode\extensions. Keep project folders and their own .vscode configuration; this guide never touches those.
Where the data lives
| Location | What it holds | What to do |
|---|---|---|
%APPDATA%\Code\User |
Settings, keybindings, snippets, profiles | Back this up; the uninstaller does not remove it |
%APPDATA%\Code\Cache and CachedData |
Editor caches | Safe to remove after quitting |
%USERPROFILE%\.vscode |
Extensions | Back up extensions if you want to reinstall them the same way |
%USERPROFILE%\.vscode-shared |
Shared user data | Remove together with .vscode |
Check the result
Run these read-only commands after the uninstall finishes:
Get-Process Code -ErrorAction SilentlyContinue
winget list --id Microsoft.VisualStudioCode
Test-Path "$env:LOCALAPPDATA\Programs\Microsoft VS Code"
Test-Path "$env:APPDATA\Code"
Test-Path "$env:USERPROFILE\.vscode"
- No output from
Get-Processonly means this query observed no matching process; a suppressed error leaves the running state unknown. A listed process means a window or helper is still open. - A completed
winget listquery with no match means the package record is gone; a matching row means the uninstall did not finish. - The first
Test-PathreturningFalsemeans the program folder is gone;Truemeans files remain there. Test-Path "$env:APPDATA\Code"returningTruemeans your settings and caches are still there, which is expected unless you removed them yourself.Test-Path "$env:USERPROFILE\.vscode"returningTruemeans your extensions folder is still there; remove it yourself once you have backed it up, if you want a clean start.
If you installed it with winget
winget uninstall runs the same uninstaller Settings › Apps uses and removes the same program files; it does not touch %APPDATA%\Code, .vscode or .vscode-shared on its own.
Account and sync
Uninstalling does not sign you out of Settings Sync or any GitHub or Microsoft account you connected. If you use Settings Sync, your settings stay in the cloud and reapply the next time you sign in on any machine, whether or not you remove the local folders above.
What Mole lists
For VS Code installed per-user from winget:
- The program folder and the Start Menu shortcut are selected by default.
%APPDATA%\Code\CacheandCachedDataare selected by default.%USERPROFILE%\.vscodeand%USERPROFILE%\.vscode-sharedare listed but not selected.%APPDATA%\Code\User, where your settings live, is not listed.- If a
vscode://link registration still points at the removed program, Mole lists it too, after backing it up to a.regfile; in this test the uninstaller had already removed it.
Projects on disk are not part of this list.
What this test covered
Tested on 2026-09-25 with VS Code 1.139.0 installed through winget, per-user scope. The test installed it from an elevated session, so its uninstaller asked for administrator access; a normal per-user install does not. Not verified: Settings Sync, or removing an install that is signed in.
