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. The online test version is limited to 30 minutes per session and hosted via Theia.cloud. Finally, we provide an experimental Docker image for hosting the Theia IDE online.
The Eclipse Theia IDE also serves as a template for building desktop-based products based on the Eclipse Theia platform, as well as to showcase Eclipse Theia capabilities. It is made up of a subset of existing Eclipse Theia features and extensions. Documentation is available to help you customize and build your own Eclipse Theia-based product.
[ai] replaced the per-model thinking-mode toggle with a provider-agnostic reasoning selector and ReasoningSettings abstraction; the chosen level can be persisted per agent via the chat capabilities save action #17363
[ai-anthropic] added display: 'summarized' to adaptive thinking block #17429
[ai-chat] added taskContextId parameter to delegateToAgent tool #17244
[ai-chat] dropped incomplete thinking blocks from llm history #17395
[ai-chat] fixed agent label casing in delegation renderer #17234
[ai-chat-ui] added token usage indicator to chat view #17028
[ai-chat-ui] fixed inverted expand/collapse in capabilities tree during search #17248
[ai-chat-ui] fixed issue with preserving user-selected mode during agent delegation #17307
[ai-chat-ui] integrated tool confirmation system into DelegationToolRenderer #17293
[ai-chat-ui] show tool confirmation in collapsed delegation summary #16926
[ai-chat-ui] used partial JSON extraction to prevent tool call label flicker #17306
[ai-chat-ui] warned when chat session token usage crosses a threshold #17387
[ai-core] prompt templates do not get modified only by opening them #17277
[ai-core] provided ready promise for SkillService #17317
[ai-core] updated default AI model versions for Anthropic and OpenAI #17409
[ai-core] white label theia and theia ide #17265
[ai-core, ai-chat-ui, ai-chat, ai-claude-code, ai-code-completion, ai-editor, ai-ide] hooked workspace trust into AI features #17364 - contributed on behalf of STMicroelectronics
[ai-ide] added PR Review Agent with UserInteractionTool #17298
[ai-ide] provided proper icons for agents and fixed icons in ai config #17336
[ai-ide] readded junior contributions after release #17259
[ai-ide] removed junior contributions #17418
[ai-terminal] added description field to shell execution tool #17350
[ci] used a single rolling next git tag for npm next publishes #17355 - Contributed on behalf of STMicroelectronics
[collaboration] fixed resolving of auth endpoint paths for server urls with path #16751
[core] added .tmp.cfg to top-level gitignore #17377
[core] added errorHandling option to Emitter to control how listener exceptions are handled: 'log' (default), 'propagate' (collect and re-throw), or a custom callback #17332
[core] API bump and nls update to 1.116.0 #17367 - Contributed on behalf of STMicroelectronics
[core] belated breaking changes for #17360 #17410
[core] fixed accessibility issues in the AI chat view #17260
[core] fixed copy in chat view not working without selection in Electron #17300 - contributed on behalf of STMicroelectronics
[core] fixed editor context menu filtering and Monaco widget styling #17404 - contributed on behalf of STMicroelectronics
[core] improved electron window close behavior on windows #17296 - contributed on behalf of STMicroelectronics
[core] improved start-up performance logging #17368 - contributed on behalf of STMicroelectronics
[core] limited imports of code in the preload section #17281
[core] made socketWriteBuffer and reconnectableSocketChannel overridable via DI #17249
[core] npm upgrade #17282 - contributed on behalf of STMicroelectronics
[core] onSaveChange: saved on changes of both tab and window focus #17360
[core] removed stale beta labels from translation files #17314
[core] showed empty base for both added conflicts in merge editor #17274
[core] showed Linux env variable hint in API key preferences #17337
[core] translation update for version 1.71.0 #17433
[core] unbound all services in the backend in connection-scoped child containers on close. This allows clean-up methods annotated with @preDestroy() to run, releasing resources. Downstream applications should be aware that service instances deliberately shared between connection-scoped containers, and service instances obtained from the root container that are explicitly bound again in the connection-scoped module, will cause such shared services to be destroyed while still in use in other containers. Both of these scenarios are already Inversify anti-patterns, so are not expected to arise in practice. #17384
[debug] listened to all breakpoint changes #17291
[dev-container] improved dev container features #17348
[dev-packages] merged the changes of the release branch #17232
[doc] added human-in-the-loop PR policy #17283
[editor] replaced the per-URI editor counter system in EditorManager with random counters #17275
[electron] fixed skipped smoke test #17335
[electron] upgraded electron from 39.7.0 to 39.8.7 #17329 - contributed on behalf of STMicroelectronics
[notebook] fixed space key scrolling instead of typing in cell editors #17284
[output] added ANSI escape code support to the output view #17285 - Contributed on behalf of STMicroelectronics
[playwright] fixed the menu shortcut assertion for macos #17371 - Contributed on behalf of STMicroelectronics
[plugin] disabled listener leak for ext host file watchers #17240
[plugin] removed private modifier from themeicon declaration & implementation #17325
[plugin-ext] ensured terminal API object identity and respected grouping mode for plugin-created terminals #17340
[plugin-ext] supported watching files outside the workspace with createFileSystemWatcher #17239
[plugin, scm] fixed repository context menus and worktree grouping #17252
[remote] supported macOS arm64 and rolling next native dependencies #17347 - Contributed on behalf of STMicroelectronics
[request] used standard fetch API when using node >=18 #17269
[scm] added SCM history graph with VS Code-compatible plugin API #17263
[scm] enforced some options for child editors of the merge editor #17303
[scm] ensured the dirty-diff widget always shows the heading #17421
[scm] fixed detection of external worktree removal and related stale-state gaps #17389
[terminal] copy via context menu does not work was fixed #17290 - Contributed on behalf of STMicroelectronics
[terminal-manager] terminal-manager: fix view not restored on startup #17403
[test] fixed test extensions and improved test output UX #17341
[toolbar] updated codicons set and script to updated mapping format #17366
[workspace] fixed spurious restart dialog from preference change handler #17354
Breaking Changes:
[ai] removed ThinkingModeSettings and the thinkingMode field from UserRequest / CommonChatSessionSettings in favor of ReasoningSettings { level } and the reasoning field. Provider model descriptions now expose reasoningSupport / reasoningApi. Adopters consuming @theia/ai-core or @theia/ai-chat should migrate to the new request shape #17363
[core] changed the visibility of ChannelMultiplexer.pendingOpen from protected to private #17332
[core] Uint8ArrayWriteBuffer's onCommit emitter now propagates exceptions from listeners instead of silently catching them. Code that relied on exceptions being swallowed should add its own error handling #17332
[editor] replaced the per-URI editor counter system in EditorManager with random counters #17275:
Removed protected field editorCounters: Map<string, number>
[plugin-ext] changed the timing of plugin contribution loading: beforeLoadContributions now waits for attached_shell instead of initialized_layout. Overrides of beforeLoadContributions or loadContributions that assume the full layout is already initialized may need to adjust their logic #17278
[core] disabled Lumino's overflow menu feature in the main menu bar by passing overflowMenuOptions: { isVisible: false } to the MenuBarWidget constructor. The feature was never functional in Theia and could cause a RangeError when toggling menu bar visibility. Adopters who need overflow menu support can override BrowserMainMenuFactory.createMenuBar to construct the DynamicMenuBarWidget with different options #17362
[core] removed protected methods addBlurListener(widget, saveable) and windowHasFocus(document) from SaveableService. Window-level focus tracking is now handled by the new WindowFocusService #17360