VS Code Profiles and Workspaces Cheat Sheet

Sidebar

Programming · VS Code Profiles and Workspaces Cheat Sheet

How VS Code organises your setup: profiles, multi-root workspaces, where settings live, Workspace Trust, Settings Sync, extensions and windows. Exact name, what it does, and its default. Sheet 11 in the VS Code series.

Profiles

File > Preferences > ProfilesOpens the Profiles editor (also under the gear button in the Activity Bar)
What a profile holdsSettings, keyboard shortcuts, snippets, tasks, extensions, MCP servers and UI layout
Profiles: Switch ProfileChange the profile for the current window
Profiles: Create a Temporary ProfileA throwaway profile that disappears when VS Code closes
Default profileThe profile you already have; it follows your current configuration
Apply Setting to all ProfilesGear icon on a setting: share that one setting across every profile
Apply Extension to all ProfilesMake an extension available in every profile
Profile templatesPython, Data Science, Doc Writer, Node.js, Angular, Java General, Java Spring
code ./project --profile "Web Development"Open a folder with a named profile from the command line
%APPDATA%\Code\User\profilesWhere profile data is stored on Windows

Multi-Root Workspaces

File > Add Folder to WorkspacePut several folders in one window
File > Save Workspace AsWrites the .code-workspace file (VS Code makes the folder paths relative)
File > Open Workspace / Open RecentReopen a saved workspace; recent ones are marked Workspace
code --add folder1 folder2Add folders to the last active window from the command line
foldersIn the file: [{ "name": "Site", "path": "astro-site" }]
settings / launch / tasksSections inside the .code-workspace file that apply to the whole workspace
extensions.recommendationsExtension IDs suggested to anyone who opens this workspace
${workspaceFolder:Name}In launch.json and tasks: refer to one folder of the workspace by its name

Where Settings Live (low to high priority)

DefaultBuilt-in values: read-only, see Open Default Settings (JSON)
User%APPDATA%\Code\User\settings.json, for every project (per profile)
Workspace.vscode/settings.json or the settings block of a .code-workspace file
Workspace folder.vscode/settings.json inside one folder of a multi-root workspace
[language] blockOverrides for one language, at user or workspace level
Machine / window scopeA few settings (for example window.*) are ignored at folder level

Workspace Trust

security.workspace.trust.enabledTurns the feature on or off (default true)
security.workspace.trust.startupPromptonce (default), always, never: when to ask
security.workspace.trust.banneruntilDismissed (default), always, never: the Restricted Mode banner
security.workspace.trust.untrustedFilesprompt (default), open, newWindow: files opened from untrusted places
security.workspace.trust.emptyWindowTrust empty windows (default true)
Workspaces: Manage Workspace TrustCommand Palette: see or change whether this folder is trusted
extensions.supportUntrustedWorkspacesPer-extension override of whether it runs in Restricted Mode

Settings Sync

Settings Sync: Turn On…Command Palette: sign in and choose what to sync across your machines
What can syncSettings, keyboard shortcuts, extensions, snippets, tasks, profiles and UI state
settingsSync.ignoredSettingsSetting IDs never synced, e.g. ["window.zoomLevel"] (default [])
settingsSync.ignoredExtensionsExtension IDs never synced (default [])
Settings Sync: Show Synced DataCommand Palette: view the stored copy and restore an earlier version

Extensions Housekeeping

Ctrl+Shift+XOpen the Extensions view
extensions.autoUpdateon (default) or off: update extensions automatically
extensions.autoCheckUpdatesCheck for updates in the background (default true)
extensions.ignoreRecommendationsStop suggesting extensions (default false)
.vscode/extensions.jsonProject file: { "recommendations": […], "unwantedRecommendations": […] }
code --list-extensionsPrint the IDs of installed extensions
code --install-extension idInstall an extension from the command line (--uninstall-extension removes it)
Disable (Workspace)Turn an extension off for this project only

Windows & Opening Files

window.openFilesInNewWindowoff (default), on, default: where a double-clicked file opens
window.openFoldersInNewWindowdefault (default), on, off
window.openWithoutArgumentsInNewWindowOpening VS Code with nothing specified: on (default on Windows/Linux) or off
window.titleBarStylecustom (default) or native: VS Code's own title bar or the system's
window.doubleClickIconToCloseDouble-clicking the title bar icon closes the window (default false)
code .Open the current folder in VS Code from a terminal
code -n / code -rOpen in a new window / reuse the last window
code -g file:lineOpen a file at a line number
code --diff a bOpen the diff editor on two files

Settings Editor & Updates

workbench.settings.editorui (default) or json: what Open Settings opens
workbench.settings.openDefaultSettingsShow the defaults beside your settings.json (default false)
workbench.settings.useSplitJSONEdit user settings in a split JSON view (default false)
workbench.settings.settingsSearchTocBehaviorfilter (default) or hide: the side list while searching
workbench.settings.enableNaturalLanguageSearchSearch settings in plain language (default true)
update.modedefault (default), start, manual, none: how VS Code updates itself
update.showReleaseNotesShow the release notes after an update (default true)

A Reasonable Starter Set (my suggestions, not defaults)

One profile per kind of workFor example Web, Python and Writing, so each has only the extensions it needs
A saved workspace fileFor projects that always open together, such as a site and its content folder
"workbench.settings.editor": "json"Straight to settings.json when you prefer text to the UI
"settingsSync.ignoredSettings": ["window.zoomLevel"]Keep per-machine settings like zoom out of sync
"extensions.autoUpdate": "on"The default; leave it unless an update broke something
Profile or workspace? They solve different problems
A profile is your tools: settings, extensions, shortcuts and snippets that follow you into any folder you open with it. A workspace is a project: which folders belong together and the settings that apply to them. You can use both: open a project's .code-workspace file while using the profile that suits that kind of work.
Why are tasks, debugging and some extensions disabled? Restricted Mode
In a folder you have not trusted, VS Code runs in Restricted Mode: tasks, debugging, workspace settings and extensions that run code are limited. Choose Yes, I trust the authors in the prompt, or run Workspaces: Manage Workspace Trust, when you know the folder is safe.