Jonas Helming, Maximilian Koegel and Philip Langer co-lead EclipseSource, specializing in consulting and engineering innovative, customized tools and IDEs, with a strong …
Eclipse Theia 1.74 Release: News and Noteworthy
August 11, 2026 | 14 min ReadWe are happy to announce the Eclipse Theia 1.74 release! The release contains in total 60 merged pull requests. The most visible change is the new perspective support, including an “AI First” perspective that arranges the workbench around the AI chat, as well as a new AI Sessions view. In this article, we will highlight some selected improvements and provide an overview of the latest news around Theia.
For those new to Eclipse Theia, it is the next-generation platform for building IDEs and tools for the web or desktop, based on modern state-of-the-art web technologies. With Theia AI, part of the Theia platform, you can also build AI-powered tools and IDEs with ease. For more details about Eclipse Theia, please refer to this article and visit the Theia website.
The Theia project also releases a product, the Theia IDE. The Eclipse Theia IDE is a modern, AI-native, and open IDE for cloud and desktop environments, aimed at end users. The Theia IDE is based on the Theia platform and also includes advanced AI powered features. For more details, see the Theia IDE website.
If you are looking for a simple way to check out the new release, please download and install the Theia IDE, which is based on Theia 1.74.
Eclipse Theia 1.74: Selected features and improvements
In the following, we will highlight some selected improvements in the new release. As usual, we cannot mention all 60 improvements, however we will focus on the most notable changes as well as changes visible to end users. The corresponding pull requests are linked under the respective heading when applicable.
Perspectives and the AI First Perspective
Theia 1.74 adds a perspective service. A perspective lists a set of views and maps them to preferred locations, which may override each view’s own preferred location. Two commands drive it, both only available from the command palette while the feature is experimental: Switch Perspective (Experimental) activates a perspective, and Reset Perspective (Experimental) puts the views of the current perspective back where the perspective wants them, which is useful after you have dragged things around. Switching back to the Default perspective restores the layout you had before.
The release ships one concrete perspective, AI First, which arranges the workbench around AI work: the AI Chat in the main area, the new AI Sessions view on the left, Explorer and Source Control on the right, and the bottom area collapsed. Both the perspective support itself and the AI First perspective are currently marked as experimental.
The AI Sessions view is new in this release, too. The sessions list was previously only reachable through the AI Chat’s welcome message. It is now extracted into a widget that is shared between the chat welcome screen and a standalone view, so you can keep your session list visible next to a running chat instead of leaving the conversation to find it.
For adopters, perspectives are a declarative way to ship their own view arrangements: you can contribute custom perspectives that place your views where they make sense for a specific workflow, and let users switch between them or reset back to the intended layout.
Server-Side Compaction for Long AI Sessions
Long agent sessions eventually run into the model’s context limit. Until now that meant the request failed and you had to start over or trim the history yourself. With 1.74, Theia can let the provider compact the conversation on its side, summarizing older turns so the session keeps working.
Activation is layered from broad to specific. There is a setting under AI Features › Chat (ai-features.chat.serverSideCompaction), which is on by default, a per-provider override (follow the global setting, always on, or always off), and a per-session override in the session settings dialog that takes precedence over both. Whether compaction actually happens depends on a model capability: it is currently honored by Anthropic and by OpenAI through the Responses API, and providers or models without the capability ignore the setting. When a compaction occurs, it is shown inline in the chat and summarized in the token-usage tooltip, which reports cumulative usage plus a “Compacted Nx” count. The compaction is persisted with the session and replayed on subsequent requests.

Per-Session Model Selection
The chat input gains a model selector next to the existing mode and reasoning selectors. Picking a model runs the current chat with something other than the agent’s configured default, and the first entry (“Default”, which shows the resolved default) reverts to it. The override is deliberately session-scoped: there is no “save as default”, and the per-agent model configured in the AI settings is bypassed at request time so the session choice actually wins. Responses record the model that produced them and show it as a small badge next to the prompt-variant badge.
This is handy when you want a cheaper model for a throwaway question, or a stronger one for a single hard task, without editing your global AI settings and remembering to change them back.

More Provider-Native Server Tools
Theia 1.73 introduced server-side tools that the AI provider runs on its own infrastructure, initially for Anthropic and Gemini. 1.74 extends this in two ways.
OpenAI web search: Web Search is now selectable as a server tool for OpenAI models using the Responses API. The native web_search tool is added to the request when enabled, streaming and non-streaming web_search_call output is surfaced as a running and then completed server tool call in the chat, and completed searches are preserved for later turns in the conversation.
Visible deferred-tool search: The deferred-tool search introduced in 1.73 also runs on the provider’s infrastructure, but it was only logged and stayed invisible in the UI. It now appears as a server tool call in both the Anthropic and the OpenAI Responses API providers, so you can see the search running and, once it finishes, how many tools were loaded.
Deprecation of the Vercel AI Provider
On the other side, one provider is going away: @theia/ai-vercel-ai is deprecated, is no longer published on npm, and will eventually be removed from the code base. As it only wrapped OpenAI and Anthropic models, which are covered by dedicated providers with better support, please migrate to those. The 1.74 section of the Theia Migration Guide describes the steps.
Chat Sessions: Delegation Hierarchy and Consolidated State
Multi-session and multi-agent work is easier to follow in 1.74.
Delegated sessions as children: When an agent delegates to another agent, the resulting sub-session is now grouped under its parent in the session list as a collapsible, multi-level hierarchy that survives a restart. If a delegated descendant starts waiting for user action, its ancestors are auto-expanded and marked with the same bell icon, attention dot, and tooltip as the awaiting session itself, so you notice it even on a collapsed parent. Delegated sessions also show up in the “Browse all chats” quick input, tagged as delegated, and deleting a parent cascades to its children so no orphans are left behind.

Clearer session status: Waiting for a tool approval is now distinguished from waiting for an answer: the badge reads “Requires your approval” rather than the generic “Waiting for your input” that 1.73 showed for both. Completion notifications now also cover background sessions, while delegated sessions no longer notify on their own, since their interactions surface in the parent session.
Hidden agents in delegated sessions: Delegation to an agent with showInChat: false, the usual configuration for worker sub-agents, silently fell back to the default chat agent, which then handled the session with its own prompt and toolset. As the delegation widget still labelled the sub-session with the intended agent, the substitution was invisible. Pinned-agent lookups now include hidden agents, for new as well as for restored sessions.
For adopters, the state behind this is consolidated: ChatModel exposes an observable, aggregated status per session (idle, running, awaitingApproval, awaitingToolCall, awaitingInput, failed) derived from the session’s last request, together with a statusChanged event and the predicates ChatSessionStatus.isInProgress and requiresUserAction. Session list items, tooltips, and the welcome overview read that instead of re-deriving state from request flags, and notifications are handled by a single ChatSessionNotificationContribution reacting to status transitions. Sessions also track their root and immediate parent, threaded through serialization and the session store, so custom session views can render the hierarchy as well.
AI Tool Sketchpad
When you design a custom agent, you can already iterate on system prompts, models, skills, and MCP servers at runtime. Custom tools were the exception: trying a different tool shape meant writing code, registering it, and rebuilding.
The new @theia/ai-tool-sketchpad package closes that gap with a dedicated AI Tool Sketchpad view in which you declare “sketched tools” that cover only what matters for exploring a design: name, description, input parameters, and return behavior. The implementation is left out on purpose. A sketched tool either returns a static value or asks you for the return value at runtime through a quick input dialog, which lets you simulate any tool response while the agent is running without writing an implementation.
Definitions are persisted as YAML in sketchedTools.yml in the prompt-templates folder of the Theia configuration directory, and can be edited there directly as well. The file is watched, so edits made outside the view are picked up live, and on every change all sketched tools are unregistered and re-registered in the ToolInvocationRegistry, making them immediately available to any agent or chat session under the usual ~{toolName} syntax.
As the Sketchpad is a tool for building agents rather than a feature for end users, it ships only as a package: it is included in the Theia framework’s example applications, but not in the Theia IDE. If you are building your own Theia-based application and want to prototype tools at runtime, you can simply add @theia/ai-tool-sketchpad to the dependencies of your application package.
Base Technology Updates
Electron 42 moves the desktop stack from 39.8.7 to 42.3.0, bringing newer Node.js, Chromium, and V8 versions along with it. Two details are worth knowing for adopters: the optional native cpu-features module no longer builds against Electron’s V8 and was dropped from the rebuild list (ssh2 falls back to its pure-JS crypto), and Electron now downloads its binary lazily instead of during install. VS Code API 1.130.0 raises API compatibility from 1.125.0, unblocking extensions that target that version; the public API surface did not change in between, so no adaptations were needed on the Theia side. Development now defaults to Node 24 and builds correctly with npm 12 (#17757, #17811, #17752).
Recent Workspaces in the Windows Jump List
On Windows, Electron-based Theia applications now list the recently opened workspaces in the jump list of their task bar entry, so users can reopen a workspace without going through the application first. The feature comes as an Electron frontend module of @theia/workspace and is picked up automatically if your application derives its module list from the theiaExtensions declarations of its dependencies, as the Yeoman generator and the Theia IDE do. For the jump list to also show up in the Windows menu, set appUserModelId in the Electron section of your frontend configuration to the same value as the appId you package with; if the two differ, the jump list remains limited to the task bar entry.

Security Hardening
Following the transport validation work in 1.73, this release closes the remaining gaps on the backend HTTP endpoints, so browser-based deployments should upgrade. The filesystem endpoints (POST /file-upload, the /files router, and GET /file) now require a valid connection token, enforced by a reusable HttpConnectionValidator in @theia/core that adopters can apply to their own routes (#17806), plugin resource requests are again scoped to the requesting plugin’s directory (#17799), and a broad dependency update resolves a set of security advisories (#17741).
One change is visible in daily use: rendered agent markdown in the AI chat no longer loads external resources automatically. Images, media, iframes, and CSS resource URLs are replaced with a placeholder that shows the blocked URL and lets you allow the content explicitly, while data URLs and the existing link opener handling stay intact.
A Native Telemetry Framework
The new @theia/telemetry package adds a small telemetry framework, with its public API marked @experimental. Features report through a TelemetryService using a hierarchical topic, an optional typed payload, and optional report options. The framework is deliberately independent of any telemetry vendor: it defines how features report telemetry, while where the data goes remains an adopter decision, expressed by contributing a sink. Users stay in control through the VS Code-compatible telemetry.telemetryLevel preference, which defaults to off, and telemetry.filters for switching individual sinks off or restricting them to certain topics. The existing @theia/metrics stopwatch measurements are already routed through it to validate the architecture. This is a framework capability, not a Theia IDE feature: the Theia IDE contributes no sink and therefore reports nothing.
Additional Improvements
Beyond that, 1.74 brings a long list of smaller platform and workbench improvements:
- Custom editors catch up with text editors: they support preview tabs, including promotion to a permanent tab on edit, pin, double-click, or drag (#17800), they report a correct
viewColumnand aCustomEditorInputtab kind to the plugin host (#17807), andeditor/titlecontributions with resource-basedwhenclauses finally render, becauseCustomEditorWidgetnow publishes its selection (#17748). - Explorer, clipboard, and terminal: Explorer context-menu paste works in browser deployments (#17829),
ClipboardServicenow signals in-app writes so paste no longer acts on stale content (#17837),files.excludematches workspace-relative paths like VS Code (#17839), terminal paste no longer triggers a clipboard permission prompt on every Ctrl/Cmd+V (#17830), and printing URLs no longer floods the log with link-detection errors (#17767). - Layout and workbench: restoring a layout containing plugin view containers no longer leaves the activity bar empty (#17772), the bottom panel toggle stays in the status bar when the panel is empty (#17749), toolbar items re-render on active-widget changes instead of keeping a stale enablement (#17833), the Problems view gains “Copy as Text” and JSON export (#17717), and custom title bar menus no longer overlap the window controls (#17835).
- Session-scoped preferences (#17731): a repeatable
--session-preference KEY=JSONVALUECLI flag feeds a newPreferenceScope.Sessionthat keeps values in memory at the highest precedence and never writes them to disk. Active overrides are marked in the Settings UI and listed in a status bar item, values are forwarded to remote backends, and only keys are logged so overrides cannot leak into logs or screenshots. - AI fixes: the
searchInWorkspacetool no longer hangs on a malformedfileExtensionsargument (#17774), a newAiConfigurationServicesuppresses workspace- and folder-scopedai-features.*values while the workspace is untrusted or its trust state is still being resolved, so an untrusted workspace can no longer widen the terminal command allowlist (#17768), the registry “From registry” link actually finds its server (#17740), and chat scrolling jiggles less (#17728). - For adopters: frontend-only applications now reject backend RPC requests immediately instead of deadlocking startup (#17794), awaiting an
ILoggercall for a disabled log level resolves rather than hanging (#17730, contributed on behalf of STMicroelectronics), and the coding guidelines now recommend an interface plus symbol over a concrete class for services that adopters are meant to replace (#17792). - Smaller fixes: Open VSX installs deploy under the versioned plugin id, so mixing install sources no longer breaks the plugin host (#17734), dead keys are honored in keyboard layout resolution (#17683), Korean IME composition no longer loses or duplicates characters (#17723), markdown preview heading styles no longer leak into the whole UI (#17824), the light theme selection color is corrected (#17778), the file dialog accepts typed absolute paths again (#17665),
TelemetryLoggerreports the real enablement state to extensions (#17693), preference merging stays restricted to plain own properties (#17845), and SSH configs listing several hosts on one line are parsed correctly (#17838).
For a complete overview of all changes in this release, please refer to the 1.74 milestone. All these features and improvements (in total 60) were the result of one month of intensive development. Eclipse Theia follows a monthly release schedule. We are looking forward to the next release due next month, stay tuned! To be notified about future releases, follow us on LinkedIn or follow Theia on Twitter and subscribe to our mailing list.
If you are interested in building custom tools or IDEs based on Eclipse Theia, EclipseSource provides consulting and implementation services for Eclipse Theia, for AI-powered tools, as well as for web-based tools in general.
Furthermore, if you want to extend Theia, Theia AI or the Theia IDE with new features or strategically invest into the project, EclipseSource provides sponsored development for Theia, too. Finally, we provide consulting and support for hosting web-based tools in the cloud.
👉 Get in contact with us, to discuss your use case!
👉 Subscribe to our YouTube channel
Stay Updated with Our Latest Articles
Want to ensure you get notifications for all our new blog posts? Follow us on LinkedIn and turn on notifications:
- Go to the EclipseSource LinkedIn page and click "Follow"
- Click the bell icon in the top right corner of our page
- Select "All posts" instead of the default setting