An extensions.json file tells VS Code which extensions a contributor should review for a single-folder workspace. Place it in .vscode, commit it with the project, and VS Code can show those entries as workspace recommendations.
Recommendations are suggestions, not automatic installs or security approvals. Verify each extension before adding it.
Create the file
Open the command
Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run Extensions: Configure Recommended Extensions (Workspace Folder).
Choose the scope
In a single-folder workspace, VS Code creates .vscode/extensions.json. Multi-root workspaces use a different workspace-wide location, covered below.
Add extension identifiers
VS Code opens the file with an empty recommendations array. Add extension identifiers in the format publisher.extension, one per line.
{
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
}VS Code provides autocomplete for installed extensions, so you can type a partial name and pick from the suggestions.
The example uses the ESLint and Prettier identifiers shown in the official VS Code documentation. Keep an identifier only when that extension matches the project's tooling.
Save and commit
Save the file. Commit it to your repository so every team member sees the recommendations when they open the project.
How teammates see recommendations
When someone opens the workspace for the first time, VS Code prompts them to install its recommended extensions. The exact notification presentation can vary with the current interface and the user's recommendation settings.
The safer path is to run Extensions: Show Recommended Extensions and review the entries before installing them.
They can also see the recommendations any time by opening the Extensions view and typing @recommended in the search box. Workspace recommendations appear in a group labeled Workspace Recommendations.
Verify extension identifiers and safety
Each extension is identified by publisher.extension. To find the identifier:
- Open the Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
- Select the extension to open its details page
- Look under Marketplace Info for the Identifier field
- Copy the value, for example ms-python.python
You can also get the identifier from the extension's Marketplace URL. Its itemName query parameter contains the value.
Before committing a recommendation, confirm the current publisher, availability, price, compatibility, permissions, telemetry or privacy behavior, workspace trust support, and remote support when relevant. The official Extension Marketplace guidance explains identifiers, recommendations, signatures, and publisher trust, but a listing does not make an extension automatically appropriate or safe for the project.
Multi-root workspace recommendations
In a multi-root workspace, you have two places to define recommendations:
| Location | Applies to |
|---|---|
| extensions in the .code-workspace file | All roots in the workspace |
| .vscode/extensions.json in one root | That root folder |
Workspace-level recommendations go under an extensions key in the workspace file:
{
"folders": [{ "path": "./frontend" }, { "path": "./backend" }],
"extensions": {
"recommendations": [
"dbaeumer.vscode-eslint"
]
}
}Run Workspaces: Open Workspace Configuration File to edit workspace-wide recommendations. Use a folder's .vscode/extensions.json when only that root needs an extension.
Control how recommendations appear
The recommended view can contain two groups:
- Workspace Recommendations from the current workspace configuration
- Other Recommendations based on recently opened files
Set extensions.showRecommendationsOnlyOnDemand to true to remove the recommended section from the Extensions view. Set extensions.ignoreRecommendations to true to silence recommendation notifications. Extensions: Show Recommended Extensions remains available for an on-demand review.
Manage recommendations in remote environments
VS Code does not synchronize extensions to or from remote windows such as SSH, WSL, or Dev Containers. Workspace recommendations can still appear, but VS Code installs and runs extensions according to their declared kind: UI extensions run locally, while workspace extensions run where the workspace is located, which is the remote environment in a remote window.
Use Developer: Show Running Extensions to confirm whether an installed extension runs locally or remotely. To share project configuration more broadly, see how to share VS Code project settings with your team. For the other project configuration files, read what is the .vscode folder.
Rune AI
Key Insights
- In a single-folder workspace, create .vscode/extensions.json with the official configuration command.
- Add only verified publisher.extension identifiers the project needs.
- Recommendations do not install or trust extensions automatically.
- Put multi-root workspace-wide recommendations in the .code-workspace file.
- Review publisher, pricing, access, privacy, and remote support before recommending an extension.
Frequently Asked Questions
What if an extension identifier is wrong or unavailable?
Can I recommend extensions for a specific folder in a multi-root workspace?
How do I find the exact identifier for an extension?
Conclusion
Add verified publisher.extension identifiers to the recommendations array and commit the configuration. Teammates can then review the workspace recommendations and choose which extensions to install.
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.