Self-hosted service
eclipse-theia/theia-ide avatar
eclipse-theia/theia-ide

Theia IDE is a subset of Theia packaged as a product, and the packaging is the point

The Eclipse IDE is a modern and open IDE for cloud and desktop. The Theia IDE is based on the Theia platform. The Theia IDE is available as a downloadable desktop application. You can also try the latest version of the Theia IDE online. For more details, see the Readme below.

612 stars255 forksTypeScriptMIT

At a glance

What is it?
The Eclipse Theia IDE is a reference product built on the Theia platform, assembling a chosen set of extensions into a downloadable desktop app, a browser app and a Docker image. It exists to be copied, so its repository layout matters more than its feature list.
Who is it for?
Theia IDE suits developers who want to build a branded desktop or browser IDE on the Theia platform and need a working reference to copy, and it suits people who want an IDE with a cloud-shaped architecture without writing the packaging themselves. It does not suit users who want the widest extension catalogue or a stable branded release channel, since the newest published artifact is a next build.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The product is a subset, and that is the deliberate design

The Eclipse Theia IDE is described as a modern and open IDE for cloud and desktop, built on the Theia platform. The sentence that defines the project comes later: it is made up of a subset of existing Eclipse Theia features and extensions, and it also serves as a template for building desktop based products based on the platform, as well as to demonstrate Eclipse Theia capabilities. So the repository is two things at once, a usable IDE and a worked example of how to assemble one. The features in it come from Theia itself and from included extensions, which the documentation states plainly when it explains where to report bugs: for bugs in Theia you should open an issue in the Theia project, because the IDE only packages existing functionality into a product and installers. Issues that belong in this repository are packaging mistakes, missing packaging features, or broken installers. That division of labour is the practical contract for anyone adopting the template.

Three delivery targets come out of one monorepo

The repository is a monorepo built with lerna, and the applications directory groups the different app targets. The browser target contains a browser based version of the Eclipse Theia IDE that may be packaged as a Docker image. The electron target contains the Electron app to package, the packaging configuration, and the E2E tests for the Electron target. Everything else is grouped under theia-extensions, which holds the custom extensions for this product rather than for the platform. Three of those extensions carry the product identity and the update path. The product extension contributes the branding, meaning the about dialogue and the welcome page. The updater extension contributes the update mechanism and its UI elements, based on the electron updater. The launcher extension adds, for AppImage applications, the option to create a script that starts the IDE from the command line by calling the 'theia' command. A patches directory applies patches to upstream packages, which is the part that decides how painful an upstream upgrade will be for you.

Building dev mode first, then a production build

The build is documented in two flavours, and the reason for the first one is resource usage rather than preference. Building in dev mode is faster and lighter, which permits building the IDE on systems with less resources, like a Raspberry Pi 4B with 4GB of RAM, at the cost of a front end that is not minified.

sh
yarn && yarn build:dev && yarn download:plugins

The production path is the same shape with a different build target.

sh
yarn && yarn build && yarn download:plugins

One instruction is easy to miss and expensive to skip. If you are manually building after updating dependencies or pulling to a newer commit, the documentation says to run git clean -xfd to help avoid runtime conflicts. That is a blunt command and it will delete untracked files in your working tree, so it belongs to a clean checkout rather than a tree where you have local work. The scripts in package.json explain what the targets do: build runs build:extensions then build:applications, and the application builds are scoped with lerna to the theia-ide application packages while ignoring the next build, with concurrency set to 1.

Packaging produces Electron bundles, not a universal build

The packaging step is narrower than the platform reach of the product might suggest. The documentation states that only packages for the Electron application are produced, and the two commands are yarn package:applications or yarn electron package, with the packaged application landing in applications/electron/dist. A preview build without packaging exists too, through yarn electron package:preview, and it produces output in the same place. That preview build is what the end to end tests run against: yarn electron package:preview followed by yarn electron test. The tests are described as basic UI tests of the actual application. The known limitation is stated with a link and a proverb: do not expect that you can build an app for all platforms on one platform. If you are compiling for ARM on an ARM machine, the documentation points at a separate set of steps beforehand. For Linux specifically, the AppImage distribution requires FUSE, libfuse2, to be installed, which the documentation attributes to the AppImage format rather than to Theia.

The browser app and the Docker image are the cloud half

The same source tree produces a browser application, which is what makes the cloud story more than a slogan. The browser app may be started with yarn browser start, and then you connect to http://localhost:3000/. The Dockerfile in the repository is not for running the finished IDE but for building it. It starts from node:24-bookworm, deliberately choosing the oldest Debian release that still provides the desired Node.js version so that as many Debian versions as possible are supported. It installs the X keyboard file, libsecret and Python development packages, clang-15, and wine with wine32 and wine64. The compiler is pinned to clang-15 because GCC before 13, which bookworm ships as version 12, cannot compile the V8 headers of Electron 44. There is also a browser.Dockerfile at the top level, and the image is published to Docker Hub by a GitHub workflow that can be triggered manually from the project page. The result is an experimental image, which is how the documentation describes it.

Versioning runs on next builds, and the rename is worth knowing

The release naming is the part that will trip you up if you do not read it. The most recent published artifact is tagged next, described as Next Build and carrying a version of 1.77.0-next-2026-10-20, and package.json declares the version as 1.77.0-next-2026-10-13. Earlier you find review-preview tagged PR Review Preview from 2026-04-13, and a v0.0.1 from 2020-09-15. So the conventional numbered releases are not what you will find at the top of the list, and the next channel moves as often as every few days. The build scripts make the split explicit, with separate scopes for the application packages and for the theia-ide-next packages, and the version in the file is a date stamped next build rather than a semver release. Alongside the versions there is a naming change to be aware of: the product has been rebranded from its original name Theia Blueprint, and the documentation states that Theia IDE and Theia Blueprint should be treated as synonymous. Older links, older Docker image names and older documentation will still use the old name.

Adopters inherit the maintenance job, and Theia says so

For anyone building a product on this template, the honest framing is that they are inheriting a codebase, not using a service. The repository carries ADOPTER.md, described as the Adopter Guide with additional considerations for adopters building their own products, alongside CONTRIBUTING.md, CODE_OF_CONDUCT.md, PUBLISHING.md and a NOTICE.md. The licence is MIT, with Theia named as a trademark of the Eclipse Foundation, which matters if you intend to ship a branded product under your own name. Development prerequisites are not restated here but pointed at Theia's own prerequisites document, with a specific warning to keep node versions aligned between Theia IDE and the referenced Theia version. The engines field in package.json asks for yarn >=1.7.0 <2 and node >=24, and the Theia CLI dependency is pinned to a matching next version, 1.77.0-next.47. Skipping that alignment is the fastest way to spend a day on a build that fails for reasons that look unrelated to your changes.

Editorial conclusion

Theia IDE suits developers who want to build a branded desktop or browser IDE on the Theia platform and need a working reference to copy, and it suits people who want an IDE with a cloud-shaped architecture without writing the packaging themselves. It does not suit users who want the widest extension catalogue or a stable branded release channel, since the newest published artifact is a next build. Before adopting it, read ADOPTER.md, check that the extension set in theia-extensions/ matches the features you need, and confirm your Node and yarn versions satisfy the engines field before running yarn build.

Frequently asked questions

How do I build Theia IDE from source?

Use yarn && yarn build:dev && yarn download:plugins for a lighter development build, or yarn && yarn build && yarn download:plugins for production. If you are manually building after updating dependencies or pulling a newer commit, run git clean -xfd first to avoid runtime conflicts.

What Node and yarn versions does Theia IDE require?

The engines field in package.json asks for yarn >=1.7.0 <2 and node >=24. The documentation also asks you to keep node versions aligned between Theia IDE and the referenced Theia version.

How do I run the Theia IDE in a browser?

Start the browser app with yarn browser start and then connect to http://localhost:3000/. There is also a browser.Dockerfile and an experimental Docker image for hosting the IDE online.

Where should I report a bug in Theia IDE?

Bugs in Theia itself belong on the Theia project issue tracker, because the IDE only packages existing functionality into a product. Problems with the packaging, missing packaging features or broken installers belong in the theia-ide repository.

What is the difference between Theia IDE and Theia Blueprint?

None in practice. The product was rebranded from its original name Theia Blueprint, and the documentation states that the two names are synonymous.

Official sources

  1. eclipse-theia/theia-ide on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/eclipse-theia-theia-ide.svg)](https://hysenlabs.com/projects/eclipse-theia-theia-ide)

Was this useful?