Despite the programming landscape teeming with cool code editors, many developers (including yours truly) rely on Visual Studio Code to develop apps, create scripts, and edit config files. After all, it’s lightweight, works on the big three operating systems, supports plenty of languages, and is armed to the teeth with QoL-enhancing features. However, VS Code’s endless customizability is what truly sets it apart from its rivals, and there’s a barrage of extensions you can add to the code editor to boost its functionality even further.
Ever since I switched to VS Code, I’ve tinkered with a plethora of plugins. While most of the plugins on the Visual Studio Code marketplace have their perks, some are more useful than others – to the point where I’d consider my coding suite incomplete without them.
10 File Utils
Make file operations a lot easier

Although Visual Studio Code offers a neat directory view to help you access your scripts, the app doesn’t offer dedicated options to duplicate or move files. That’s a shame because my early Docker Compose days taught me that I should always duplicate my painstakingly coded files and back them up in separate folders.
Thankfully, the File Utils extension adds these options to VS Code. Not only that, but File Utils also lets you set up keyboard shortcuts for different file operations to further enhance your workflow.
9 Bookmarks
Save your most important (and troublesome) code lines

When I bust out my coding skills, I often have that one code block that refuses to play nice with the rest of the program. Before trying out Bookmarks, I’d comment everything out before moving on to the next code block, hoping that my future self would fix everything when he’s done creating the rest of the script.
The Bookmarks extension makes this process a lot easier, as I can mark the lines of code that give me trouble before moving on to the rest of the program. And when I’ve got multiple faulty code blocks, I’d can switch between them with a single shortcut key.
8 Prettier and Indent Rainbow
To make my code readable

Just like fingerprints, every coder has a unique way of formatting their code. Unfortunately, my spaghetti code lies on the indecipherable side of the spectrum – to the point where I have a hard time making out the intricacies of my scripts. Thankfully, I’ve got Prettier to even out my poorly-formatted code blocks.
As a formatting tool, Prettier uses a couple of pre-defined rules to reparse code blocks in an organized manner and supports its own set of plugins to further enhance the format of your codes. If you often work with YAML and other languages that require an organized code structure, you’ll also want to outfit your VS Code instance with Indent Rainbow, which sets separate colors for different indentation hierarchy levels.
7 GitHub Copilot
Or Cline, if you want to leverage self-hosted LLMs

Despite huge developments in the AI ecosystem, it’ll take a long time for LLMs to replace human-made code. However, AI coding companions can be a solid aid for programmers thanks to their autocompletion, troubleshooting, and boilerplate code generation facility.
GitHub Copilot is one of the key players in the programming space, and you can integrate the AI assistant into VS Code via the official extension. Alternatively, if you prefer locally-hosted models for your coding tasks, Cline will be a worthy addition to your VS Code extension set.
6 Remote Development
SSH, tunnels, and WSL at your fingertips
Besides powering my home lab experiments, virtual machines and containers come in handy for my coding tasks. For example, I have a central virtual machine server where I execute my experimental codes and install all sorts of wacky packages to satisfy my tinkering fantasies – something I wouldn’t want to replicate on my main machine.
The Remote Development extension set is a godsend for my VM-heavy coding projects. The Remote SSH and Remote Tunnels are great for connecting with my local VS Code app with its Server instances. The Dev Containers extension more or less performs the same role, except it’s designed for containerized environments rather than VMs. Then there’s the WSL extension, which is great when I want to access the Visual Studio Code application inside the Windows Subsystem for Linux environment from the main VS Code UI on my Windows 11 machine.
5 Git Graph
For the Git maestros out there

As the de-facto version control tool, Git (and by extension, GitHub) remains an essential part of every coder’s toolkit. While you could install Git on your system and use it with VS Code, the Git Graph extension makes it a lot easier to work with the version control system.
For starters, Git Graph lets you view branches, find details, and compare commits made to your repositories inside VS Code. Likewise, you can use the plugin to perform code reviews as well as edit commits. As if that’s not enough, this neat extension also lets you perform regular Git actions, including pushing, merging, reverting, and fetching branches of your project from Visual Studio Code’s convenient UI.
4 Language extensions
Python, Ruby, and many, many more

By default, VS Code supports a couple of coding languages, including CSS, JavaScript, and HTML, and lets you tinker with .yaml, .tf, and .json formats. However, you can import language-specific extensions to turn VS Code into an all-in-one code editor.
Besides the extensions for mainstream languages like C++/C, Python, and C#, the VS Code Marketplace has plugins for the more niche languages, like Dart, Kotlin, and Julia. Heck, there’s even a dedicated extension that lets you develop PowerShell modules inside Visual Studio Code.
3 Dendron
Step aside Obsidian

Note-taking applications and PKM systems are great when you need to organize your thoughts and ideas. But what if you just want to add a couple of notes while working on your code files? Well, since Visual Studio Code supports markdown syntax, you can technically use this all-powerful code editor to store your notes.
That said, you’ll find VS Code’s note-taking capabilities rather limited if you’re coming from Obsidian, Joplin, TriliumNext Notes, or other PKM systems. That's where Dendron comes in handy by allowing you to add mermaid diagrams, KaTeX math typescripts, embedded notes, and a host of other PKM facilities into your VS Code setup.
Container enthusiasts, rejoice!

Capable of running apps inside isolated environments without consuming obscene amounts of resources, container runtimes are highly useful for developers. However, constantly switching from VS Code and a terminal UI can get cumbersome.
The solution? You can install the Container Tools extension on VS Code and execute container-centric commands without opening the terminal. Whether it’s deploying docker-compose.yml files, checking container logs, or pulling images from a registry, Container Tools supports a battalion of Docker commands. It’s compatible with the Azure API and also lets you debug faulty containers by leveraging the .NET framework and Node.js runtime environment.
1 Live Server
Must-have for web devs

If you’ve ever dipped your feet into web development, you're probably familiar with the nightmare of debugging CSS code blocks, where a single mistake ends up ruining hours of hard work.
True to its name, Live Server lets you monitor any changes to your HTML file in real-time. Whenever you save your code files, Live Server automatically updates the web page, making it easy to track error-riddled code blocks, especially if you tap the Ctrl+S combo as often as I do.
There’s many more where that came from

Considering that the VS Code Marketplace has thousands of useful extensions, this list is far from over. The Cmake extension is great for coders who wish to use its application building and testing facilities from Visual Studio Code’s UI. Meanwhile, the Color Highlight plug-in adds colored borders to your CSS code, making it a lot easier on the eyes. Then you've got the SQLite and Azure Databases add-ons for folks whose coding workloads involve executing queries on external database servers. I also wanted to mention the GitLab extensions, but its predatory subscription model makes it a bit hard for me to recommend it to coders who prefer FOSS services.