When you work with multiple programming languages, each stack needs different extensions and settings. Loading everything at once slows down VS Code. Profiles solve this: create one profile per tech stack with only what that stack needs.
When you open a Python project, VS Code loads your Python profile. When you open a React project, it loads your JavaScript profile. If you have not created a profile yet, start with /vscode/how-to-create-and-switch-between-profiles-in-vs-code.
Start from a Profile Template
VS Code includes built-in Profile Templates for common stacks. Templates are the fastest way to set up a working profile because they come with curated extensions and settings.
Built-in templates cover the most common stacks: Python (Ruff, autoDocstring, Python Environments), Data Science (Jupyter, Data Wrangler), Node.js (ESLint, Prettier, Jest), Angular, Java General, Java Spring, and Doc Writer (Markdown tools). To create a profile from a template, open the Profiles editor, select New Profile, and choose Profile Template from the copy-from options. Select the template that matches your stack and preview it in a new window before creating.
Set up a Python profile
The Python template adds several extensions: Python, Ruff, autoDocstring, Python Environments, and Even Better TOML. It also applies these settings:
"python.analysis.autoImportCompletions": true,
"python.analysis.fixAll": ["source.unusedImports"],
"editor.defaultFormatter": "charliermarsh.ruff"After creating the profile, open a Python project to make it active. You can adjust any setting or add extensions just as you normally would. Your changes stay in this profile.
Set up a JavaScript or Node.js profile
The Node.js template gives you a ready-to-use JavaScript setup:
Extensions added by the template:
- ESLint (dbaeumer.vscode-eslint)
- Prettier (esbenp.prettier-vscode)
- Jest (Orta.vscode-jest)
- npm Intellisense (christian-kohler.npm-intellisense)
- DotENV (mikestead.dotenv)
- Rest Client (humao.rest-client)
Settings applied by the template:
"editor.formatOnPaste": true,
"git.autofetch": true,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}After creating this profile, open a React, Vue, Node.js, or plain JavaScript project and VS Code switches into the JavaScript profile automatically.
Create a profile from scratch
If no template matches your stack, create an Empty Profile and build it manually. Open the Profiles editor, select New Profile, and choose Empty Profile. Name it after your stack and install only the extensions you need.
An Empty Profile starts with no extensions and only VS Code defaults. This is the right choice when learning a new language and discovering which extensions you actually need.
Associate profiles with project folders
The most important step is linking each profile to its project folder. VS Code does this automatically: when you switch to a profile while a folder is open, that association is stored.
The next time you open that folder, VS Code activates the associated profile. If you open a different folder that uses a different profile, VS Code switches automatically.
Check your folder associations in the Folders & Workspaces section of the Profiles editor. Each profile entry shows which folders are linked to it.
Apply shared preferences across all profiles
Some settings are personal and should be the same no matter which stack you are working in. Use the Apply Setting to all Profiles option for these:
- Font family and size
- Color theme
- Cursor style
- Minimap visibility
- Zoom level
To apply a setting to all profiles, open the Settings editor, find the setting, and select the gear icon next to it. Choose Apply Setting to all Profiles. The setting now stays synchronized across every profile.
The same option exists for extensions. In the Extensions view, select the gear icon next to an installed extension and choose Apply Extension to all Profiles. This is useful for extensions you want everywhere, such as a theme or a Git tool.
Example: Three profiles for three stacks
Here is a realistic setup for a developer who works across Python, JavaScript, and documentation:
| Profile | Based on | Key extensions | Associated folders |
|---|---|---|---|
| Python Backend | Python template | Python, Ruff, Docker | ~/projects/api, ~/projects/workers |
| Frontend | Node.js template | ESLint, Prettier, Jest, Tailwind CSS | ~/projects/web, ~/projects/landing |
| Writing | Doc Writer template | Code Spell Checker, markdownlint, Word Count | ~/projects/docs, ~/blog |
Each profile opens with only the extensions relevant to that work. VS Code starts faster and your interface stays clean.
To share a profile you have set up with your team, see /vscode/how-to-export-import-and-share-a-vs-code-profile.
Rune AI
Key Insights
- Create a separate profile for each language or tech stack you work with regularly.
- Start from a built-in Profile Template to save time: Python, Node.js, Angular, Java, and more.
- Profile Templates include curated extensions and settings specific to that stack.
- Associate each profile with its project folder so VS Code switches automatically on open.
- Use Apply Setting to all Profiles for editor-wide preferences like font size and theme.
Frequently Asked Questions
Do I need to create profiles from scratch for every language?
Can I apply a setting to all my profiles at once?
Can I apply an extension to all my profiles?
Conclusion
VS Code profiles let you treat each tech stack as its own environment. Create a profile per language, start from a template when available, and associate profiles with project folders so VS Code switches automatically when you open your work.
More in this topic
How to Use VS Code with WSL 2 on Windows
Run VS Code connected to Windows Subsystem for Linux so you can develop in a full Linux environment with native tools, terminals, and debugging, all from Windows.
20 Best VS Code Extensions for Web Developers in 2026
Twenty carefully chosen VS Code extensions every web developer should know. Covers formatting, linting, frameworks, debugging, Git, and developer experience.
How to Install, Disable, Update, and Uninstall VS Code Extensions
Learn how to install, disable, update, and uninstall VS Code extensions from the Marketplace and the command line. Step-by-step instructions for every action.