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-anthropic] enabled server-side compaction for dateless major model ids #17814
[ai-anthropic] surfaced deferred-tool search as a server tool call #17753
[ai-chat] enhanced command parsing to support multiple slash commands and command disambiguation #17661
[ai-chat] resolved hidden pinned agents in delegated sessions #17850 - Contributed on behalf of K2view
[ai-chat-ui] added per-session model selector and in-thread badge #17786
[ai-chat-ui] blocked external resources in ai chat markdown #17500
[ai-chat-ui] introduced a consolidated session state #17764
[ai-chat-ui] relied on virtuoso's onAtBottomStateChange for scroll locking #17728
[ai-chat, ai-chat-ui, ai-ide] rendered delegated sessions as children in session list #17777
[ai-core] added AiConfigurationService for AI preferences #17768
[ai-core] made custom-agent migration opt-in #17744
[ai-ide] fixed an issue preventing searchInWorkspace tool from hanging #17774
[ai-openai] added native web search support #17782
[ai-openai] removed strict schema conversion for the OpenAI Response API #17754
[ai-openai] updated model defaults #17817
[ai-openai] updated openai-sdk to latest version to not throw on new heartbeat event #17802
[ai-registry] fixed correct search query for mcp "from registry" link #17740
[ai-registry] routed registry fetch through the backend #17736
[ai-tool-sketchpad] introduced AI Tool Sketchpad for runtime tool prototyping in custom agents #17225
[ai-vercel-ai] deprecated the @theia/ai-vercel-ai package #17781 - Contributed on behalf of STMicroelectronics
[core] fixed always show the bottom-panel toggle #17749
[core] fixed an issue with logger promise always resolving #17730 - contributed on behalf of STMicroelectronics
[core] fixed browser-only to fail fast instead of hanging when backend services are unavailable #17794
[core] fixed color list.activeSelectionBackground in light theme #17778
[core] fixed issue with dead keys in key mappings for glyphs #17683
[core] fixed preference values merging to ignore reserved keys #17845
[core] fixed window control style on electron custom title bars #17835
[core] implemented perspectives + AI First perspective #17832
[core] improved SelectComponent keyboard navigation #17785 - Contributed on behalf of Texas Instruments
[core] improved composition check for keybindings #17723
[core] npm upgrade, bumped dependencies to reduce vulnerabilities and added lockfile maintenance guide #17741 - Contributed on behalf of STMicroelectronics
[core] required connection token on file endpoints #17806
[core] Theia v1.73.0 was released #17716
[core] vscode API bumped and nls updated to 1.130.0 #17819 - contributed on behalf of STMicroelectronics
[core, ai-ide, ai-chat-ui, preferences, plugin-ext, monaco] added session-preference CLI overrides and AI Allow-All Mode banner #17731
[doc] recommended interface + symbol over class tokens for services #17792
[doc] updated developing.md #17752 - Contributed on behalf of STMicroelectronics
[doc] updated migration.md #17827
[docs] updated SECURITY.md to Eclipse security-handbook template #17803
[electron] updated to electron 42 #17586
[filesystem] fixed file dialog location input navigation #17665 - contributed on behalf of STMicroelectronics
[markers] added copy as text, export, and keybinds #17717
[navigator] fixed keeping the in-app file clipboard in sync and awaiting pastes #17837
[navigator] fixed matching files.exclude relative to workspace #17839
[navigator] fixed support for pasting files from the menu in browser apps #17829
[plugin-ext] added tabinfo for customeditorwidget and viewcolumn from the tab bar's index #17807
[plugin-ext] deferred plugin view initialization until layout restore completed #17772
[plugin-ext] fixed sync telemetry logger enable states #17693
[plugin-ext] scoped /hostedPlugin resource requests to the plugin directory #17799
[plugin-ext] supported preview tabs for custom editors #17800
[plugin-ext] tracked active custom editor in the selection service #17748
[preview] scoped markdown preview header styles to .markdown-preview #17824
[remote] expanded support for ssh config file with multiple hosts in the same line #17838 - AI was used, mostly in the tests creation
[scripts] build: allowed dependency install scripts for npm 12 #17811
[scripts] moved dash-licenses workaround into a local script #17718
[telemetry] added a native telemetry framework #17809 - contributed on behalf of STMicroelectronics
[terminal] allowed terminal paste without browser permission query #17830
[terminal] linkified file:// URLs printed in the terminal #17783 - contributed on behalf of JuliaHub, Inc.
[terminal] stopped the file link provider from throwing on printed URLs #17767 - contributed on behalf of JuliaHub, Inc.
[toolbar] fixed update application toolbar enablement on widget and context changes #17833
[vsx-registry] fixed deployment of Open VSX extensions under the versioned id #17734
[workspace] created jump list with recent workspaces on Windows; the jump list is provided by a new frontendElectron entry point in @theia/workspace (lib/electron-browser/electron-workspace-module). Electron adopters that assemble their extension list manually must include it, and must set theia.frontend.config.electron.appUserModelId (matching the application appId) in their application package.json for the jump list to appear in the Windows Start menu #17123
[workspace] fixed button order in untitled workspace exit dialog #17787
Breaking Changes:
[ai-chat-ui] ChatViewTreeWidget scroll-lock is now driven by Virtuoso's atBottomStateChange callback instead of scroll-direction heuristics; the following protected members have been removed: handleScrollEvent(), getCurrentScrollTop(), isAtAbsoluteBottom(), updateScrollToBottomButtonState(), lastScrollTop, _scrollButtonDebounceTimer, SCROLL_BUTTON_GRACE_PERIOD, and the updateScrollToRow() override. Subclasses that override any of these should use the new handleAtBottomStateChange(isAtBottom: boolean) method instead #17728
[ai-vercel-ai] deprecated the @theia/ai-vercel-ai experimental extension and stopped publishing it on npm. Please use the dedicated @theia/ai-openai and @theia/ai-anthropic providers instead, which cover the same models with first-class support. #17781
[bundle-plugin] upgraded webpack to ^5.108.3, which no longer bundles the Terser minifier. Adopters that build their application with webpack must add terser-webpack-plugin as a devDependency in their application's package.json. Note that the webpack bundler is being phased out in favor of esbuild and will be removed in an upcoming release; see the migration guide for switching to esbuild #17741
[core] removed TreeWidget.onScroll, TreeWidget.onScrollEmitter, TreeWidget.getVirtualizedScrollState(), TreeWidget.isScrolledToBottom(), the TreeScrollEvent interface, and the TreeScrollState interface. Use TreeWidget.onAtBottomStateChange to react to bottom-state changes instead #17728
[editor] EditorWidget now tracks tab-bar moves through the shared TabBarTracker; the protected members currentTabbar, toDisposeOnTabbarChange, and checkForTabbarChange() have been removed. Subclasses that relied on them should use the protected tabBarTracker field (and its reset() / check()) instead #17800
[editor-preview] EditorPreviewWidget no longer declares the protected _isPreview field or the protected onDidChangePreviewStateEmitter; the preview state is now held by a composed PreviewTabSupport. Use the unchanged public isPreview / onDidChangePreviewState accessors instead #17800
[electron] upgraded Electron from 39.8.7 to 42.3.0. Downstream Electron applications must update their electron devDependency to 42.3.0. Electron 42 bundles Node 24 (up from Node 22), which may affect native modules or Node APIs used by downstream applications. See the Electron breaking changes for 40.0, 41.0, and 42.0. #17586
[metrics] removed MeasurementNotificationService (symbol and interface), measurementNotificationServicePath, the frontend proxy binding, the backend RpcConnectionHandler for /services/measurement-notification, MetricsFrontendApplicationContribution.id and notificationService, and MeasurementMetricsBackendContribution.backendStopwatch. Frontend stopwatch measurements are now reported through TelemetryService as theia/measurement/result; consumers should contribute a TelemetrySink from @theia/telemetry instead #17809