Over the last few years, Microsoft’s Visual Studio Code has emerged as a popular developer’s tool. It’s a lightweight editor at its core, but with a vast array of extensions that transform it into an IDE for many languages and development tasks. But not everyone’s happy with VS Code, especially because it is exclusively stewarded by Microsoft.
One project, VSCodium, repackages VS Code’s core open source components, minus Microsoft’s branding, closed-source elements, and telemetry. Another project, Eclipse’s Theia IDE, goes even further. It uses many of the same underlying open source bits, but the license is more liberal overall, and the project is governed by the Eclipse Foundation rather than a single for-profit corporate entity.
Setting up Theia IDE
Theia IDE can run in much the same way VS Code does: either as a local Electron.js app, or in a web browser via a cloud-hosted environment.
Installing Theia IDE locally is no more complex than any other desktop app, as the Eclipse Foundation delivers installers for all three major platforms (Windows, macOS, and Linux). The installer sets up the necessary bits automatically. Additionally, Docker users can try an experimental Docker image, whether for hosting online or running locally. Another option for Windows users is to obtain Theia IDE via the winget package manager, although it may lag a version or two behind the versions offered by Eclipse directly.
Theia IDE add-ons and extensions
VS Code has minimal add-ons by default. The philosophy is that the user will add what’s needed, either for their workload generally or for individual projects, but this means spending some time and effort fetching the components you need. By contrast, Theia IDE comes preloaded with 88 built-in extensions that cover many common toolsets, languages, use cases, and syntaxes. Most of the time, you will find the bits you need are already included, which makes it easy to jump right in and get started.
This convenience comes with two downsides: the size of the installation and the flexibility of the setup. On Windows, Visual Studio Code’s base install footprint is about 376 MB; for Theia IDE, it’s 658 MB.
This leads to another major difference between Theia IDE and VS Code. Extensions cannot be disabled on a per-project or installation-wide basis in Theia. They can only be uninstalled. What’s more, the built-in extensions cannot be removed easily by the user. As a result, it feels like Theia IDE can become cluttered with add-ons that aren’t always needed for a given use case. These can impact startup time.
IDG
Working with Theia IDE
When you open a project directory with Theia IDE, its settings are stored in a .theia
subdirectory. This avoids collisions with other editors or IDEs, so I was able to edit the same project interchangeably on VS Code and Theia IDE, although I had to configure the project separately in each program.
If you’re familiar with VS Code’s spread of native features, just about all of them are on display here, with slight variations in behavior. The command palette (Ctrl-Shift-P), for instance, brings up a type-to-search list of all the commands registered with the program and their corresponding keybindings.
One feature in Theia IDE not found in VS Code is the dynamic toolbar, a strip of icons just under the menu bar that can be toggled with Alt-T. You can customize it by adding or removing icons that correspond to different commands. The IDE gives you a lot of flexibility with the commands and icons you add and how you position them on the screen.
Most other look-and-feel differences between Theia IDE and VS Code are minor. If you’re familiar with where app functions are in VS Code, you will find them in mostly the same places in Theia IDE. These elements aren’t any harder to discover in Theia than in VS Code, but many small differences can add up. For instance, right-clicking on Theia IDE’s version of the Activity Bar (the vertical strip of icons at left in VS Code) doesn’t let you toggle which icons are visible.
The majority of Theia IDE’s documentation is aimed at developers who want to work with the IDE’s codebase rather than use it as an editor. That may simply reflect assumptions that most of the target audience knows how an editor works and won’t need the handholding. But VS Code’s documentation for using the editor is far more robust and detailed.
IDG
Working with extensions
Theia IDE can work with its own native extensions or with Visual Studio Code extensions, both downloaded from the Open VSX extension registry. Native extensions are the best bet, but there are relatively few of them compared to VS Code extensions. But VS Code extensions don’t always work as expected in Theia IDE, at least not yet. Theia IDE’s documentation notes this explicitly: “[A] few parts of the VS Code extension API are only stubbed in Theia. Extensions will be installable, but some features might not work as expected.”
When doing Python development with Theia IDE, for instance, I didn’t have the full, familiar range of commands found in VS Code when I installed just the Microsoft Python extension. However, I found a separate extension pack that fixed most of the issues—but not all of them. When I selected a virtual environment in an existing project, for instance, it didn’t activate correctly when I opened the embedded terminal. This turned out to be because the Python extension was sending venv activation commands for Powershell, and cmd.exe
was set in Theia IDE as the default terminal.
IDG
Conclusion
Theia IDE is worth looking into if you’re uncomfortable using VS Code because of its governance or licensing, and aren’t happy with VSCodium because it still feels too tightly coupled to Microsoft’s efforts. On the whole, Theia IDE hews closely enough to Visual Studio Code that switching from VS Code to Theia isn’t that jarring at the outset, and many of the features are identical or near enough.
The one big stumbling block may be Theia IDE lacking the full range of functionality for VS Code extensions—the very feature that makes VS Code and editors that emulate it so appealing. Some of what’s missing may make Theia IDE a no-go, at least for the time being. There also aren’t nearly as many native Theia IDE extensions as VS Code extensions.