VS Code Extensions Worth Installing in 2026 (and the Ones VS Code Made Obsolete)
Half the extensions on most 'must-have' lists are now built into VS Code. Here's what's still worth installing, what you can delete, and the settings that matter more than any extension.
Ram

Most "best VS Code extensions" lists were written years ago and have been copied forward ever since. Meanwhile, VS Code has quietly built in many of the features those extensions provided. Every extension you install costs a bit of startup time and memory, and it's one more thing that can break after an update.
So this list has two halves: extensions you can uninstall because VS Code does the job now, and the short list that's still worth installing.
Probably safe to uninstall
| Extension | What VS Code does now | Setting |
|---|---|---|
| Bracket Pair Colorizer (1 and 2) | Built-in bracket colouring and guides | editor.bracketPairColorization.enabled, editor.guides.bracketPairs |
| Auto Rename Tag | Linked editing: rename an opening tag and the closing tag follows | editor.linkedEditing |
| Auto Close Tag | Built in for HTML and JSX | On by default |
| Settings Sync | Built-in sync via your GitHub or Microsoft account | Accounts icon → Backup and Sync Settings |
| Git Graph | Built-in Source Control Graph in the Source Control view | On by default in recent versions |
| Path Intellisense (for JS/TS imports) | The TypeScript language service completes import paths | On by default |
That last one is still useful for paths outside import statements, like in HTML src attributes. Keep it if you rely on that.
After removing them, add the settings below to make sure the built-in versions are switched on.
Still worth installing
For almost everyone
ESLint (dbaeumer.vscode-eslint) and Prettier (esbenp.prettier-vscode), if you write JavaScript or TypeScript. ESLint finds real bugs, Prettier ends formatting debates, and both can run on save. Use the project's own config, so the editor and CI agree.
Error Lens (usernamehw.errorlens) shows errors and warnings inline, at the end of the offending line, instead of hiding them behind a squiggle and a hover. It's the extension people most often say they can't go back from.
GitLens (eamodio.gitlens) gives you inline blame ("who changed this line, when, and in which commit") and rich file history. Some advanced features need a paid plan, but blame and history, the parts most people use, are free.
Code Spell Checker (streetsidesoftware.code-spell-checker) understands camelCase and snake_case, and catches recieve and adress in identifiers and strings before they end up in your public API.
Depending on your stack
-
Tailwind CSS IntelliSense (
bradlc.vscode-tailwindcss). Class autocomplete, colour previews and conflict warnings. Essential if you use Tailwind. -
Python (
ms-python.python). Microsoft's official extension, which brings Pylance and debugging with it. -
Container Tools (
ms-azuretools.vscode-containers). Microsoft's replacement for the older Docker extension: Dockerfile and Compose IntelliSense, plus a panel for containers and images. -
Dev Containers (
ms-vscode-remote.remote-containers). Open a project inside a container defined by.devcontainer/devcontainer.json, so everyone on the team gets the same toolchain. -
Remote - SSH (
ms-vscode-remote.remote-ssh). Edit and debug on a remote machine as if it were local. Pair it with WSL (ms-vscode-remote.remote-wsl) on Windows. -
REST Client (
humao.rest-client). Keep API requests in a.httpfile alongside your code, version-controlled, and send them with one click. Lighter than opening Postman for quick checks:POST http://localhost:3000/api/users Content-Type: application/json { "name": "Ram", "email": "ram@example.com" } -
SonarQube for IDE (
sonarsource.sonarlint-vscode, formerly SonarLint). Deeper bug and security rules than a normal linter. Most useful if your team already uses SonarQube or SonarCloud. -
Power Platform Tools (
microsoft-IsvExpTools.powerplatform-vscode). If you build PCF components or work with Power Pages, this gives you the Power Platform CLI (pac) inside VS Code and an integrated terminal already set up for it.
AI assistants
GitHub Copilot now has a free tier with a monthly limit, as well as paid plans, and other assistants come and go quickly. I'd rather not rank them in a list that will be out of date in three months. Pick one, use it for a few weeks on real work, and judge it by how often you accept its suggestions without editing them.
Settings that matter more than extensions
Open your settings with Ctrl/Cmd + Shift + P → Preferences: Open User Settings (JSON):
{
// Built-in replacements for the extensions above
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs": "active",
"editor.linkedEditing": true,
"editor.stickyScroll.enabled": true,
// Format and fix on save
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "explicit"
},
// Small quality-of-life fixes
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"editor.minimap.enabled": false,
"explorer.compactFolders": false
}
A few that are easy to miss:
- Sticky scroll pins the current function or class name to the top of the editor as you scroll through it. It's very useful in long files.
source.organizeImportsremoves unused imports on save.files.trimTrailingWhitespacekeeps noise out of your diffs.
Keeping it fast
If VS Code feels slow, run Developer: Show Running Extensions from the command palette. It lists each extension's activation time, so the heavy ones stand out.
You can also turn extensions off per workspace rather than uninstalling them. Right-click an extension → Disable (Workspace). There's no reason for the Python extension to load in a Next.js project.
To see what you have installed:
code --list-extensions
For a team, commit a .vscode/extensions.json with "recommendations", so VS Code prompts new contributors to install the right set, rather than everyone collecting their own.