# Reset or Remove VS Code Without Losing Your Setup

> Settings and extensions live outside the app bundle and survive a reinstall, which is why reinstalling rarely fixes anything.

Published: 2026-08-06 | Updated: 2026-08-08

Dragging Visual Studio Code to the Trash removes the editor and none of your setup. That
is deliberate, documented, and the reason most people find VS Code exactly as they left
it after a reinstall they hoped would fix something.

If you are uninstalling to start clean, the app is the part that does not matter.

## Your setup lives in two directories

VS Code keeps user state outside the application bundle:

```
~/Library/Application Support/Code
~/.vscode
```

The first holds settings, keybindings, workspace state, and the backing store for
anything an extension saved. The second holds the extensions themselves.

The documentation is explicit about what removing them does: it returns you to the state
before you installed VS Code, and resets all settings. That is the correct description
of a factory reset, and the wrong outcome if you were only trying to fix a stuck window.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/vscode-state-outside-app.webp" width="1360" height="454" loading="lazy" alt="Removing the application bundle leaves settings and workspace state in Application Support and extensions in the dot vscode directory, so a reinstall restores the previous setup.">
  <figcaption>The bundle is replaceable and carries none of your configuration. A reinstall picks the two state directories straight back up, which is why reinstalling rarely fixes anything.</figcaption>
</figure>

## Decide which outcome you want first

Three different jobs get called uninstalling, and they need different amounts of
deleting.

Reinstall to fix a broken build: remove the app only. Everything comes back. If the
problem was in your settings or an extension, this achieves nothing, which is the usual
outcome.

Start from a clean editor: remove the app and both directories. Export your settings
first if you want any of them back.

Free space: remove neither. The space is almost always in per-project caches rather than
in the editor, and there is a separate article for that.

## Sync makes the decision for you

If Settings Sync is on and signed into a GitHub or Microsoft account, your settings,
keybindings, snippets, and extension list are stored in that account. Deleting both
directories is then safe: signing in on a fresh install restores them.

If Settings Sync is off, the two directories are the only record. A `settings.json`
tuned over two years is a file you wrote, not a cache, and nothing else has a copy.

Check before deleting. It is in the account menu at the bottom of the activity bar, and
it takes longer to read this sentence than to look.

## Export the extension list even if you delete everything

```
code --list-extensions > ~/Desktop/vscode-extensions.txt
```

This works while VS Code is still installed and turns rebuilding into a loop rather than
an act of memory. If the `code` command is not on your path, VS Code installs it from the
command palette under Shell Command.

## The command line tool and the leftovers

Removing the app leaves the `code` shell command pointing into a bundle that no longer
exists, along with the usual caches, logs, and saved application state. Those are
disposable in every case.

Per-project artifacts are not part of this at all. A `.vscode` folder inside a repository
belongs to that project and travels with it in version control; removing the editor
should not touch it.

## Seeing the size before deciding

The two state directories grow quietly. Extension hosts cache language servers, and a
few extensions keep indexes that reach into the gigabytes, which is usually the real
answer to why the editor's footprint is larger than the editor.

[Mole](https://mole.fit/) shows both directories with their sizes alongside the app, so the difference
between an extension cache worth clearing and a settings directory worth keeping is
visible before anything moves. Removals land in the Trash, which is the right place for
a directory you might discover you wanted an hour later.

## What Settings Sync carries, and what it does not

It carries settings, keyboard shortcuts, user snippets, the extension list, and
some UI state. Sign into the same account on another machine and those return on
their own.

It does not carry workspace-level state, or the data extensions write to disk. A
`.vscode/settings.json` inside a repository travels with that repository and is
none of its business, and extension indexes, language server caches and sign-in
state do not follow either, so a reinstalled extension may still need setting up
again.

The account menu at the bottom of the activity bar shows the current state. If it
says you are signed in and shows a sync time, those two directories are safe to
delete. If it says you are not, they are the only copy.

---

Canonical HTML page: https://mole.fit/blog/how-to-uninstall-vscode-mac
Blog index for agents: https://mole.fit/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
