github l0ng-ai/openidea v0.1.40
OpenIDEA v0.1.40

one hour ago

OpenIDEA 0.1.40 adds an opt-in built-in MCP server, Ruby debugging, .NET workflows, Docker dashboards in Services, attached projects and a shared Java language server across builds, makes switching editor tabs and long agent conversations faster, and ships Plugin API 1.4.

Download

Architecture Windows macOS Linux
x86-64 (64-bit) EXE   MSI   Portable Intel AppImage   DEB   RPM
AArch64 (ARM64) EXE   MSI   Portable Apple Silicon AppImage   DEB   RPM

Remote development: openidea-server for Linux x86-64 · Linux ARM64 · macOS x86-64 · macOS ARM64, each with a .sha256 file.

Already installed? OpenIDEA updates itself: use Check for Updates.

What's new

AI and MCP

  • Built-in MCP server (opt-in): agents can read, search and edit files through the IDE's documents (keeping unsaved changes and undo), and run or build after you allow it in the project window; ACP agents get it automatically while it is on.
  • Agents: the model list and thinking level share one popover, and Claude's models, effort levels and commands are ready before the first task.
  • Long conversations switch tabs quickly and keep following the newest message until you scroll away.
  • Codex skills appear in command completion, and composer commands and skills are grouped.

Plugins (Preview)

  • Plugin API 1.4 (openidea:plugin@1.4.0); plugins built for earlier 1.x versions keep loading.
  • Workbench and editor: status items, Output channels, content tabs, decorations, tree badges, search, Problems, VCS reads and new menu locations.
  • Runs and tests: plugin-owned run lifecycles, keyed terminals, run targets that also host language servers and debugging, dynamic configurations, test parsers and rerun selection.
  • Language features: formatters, signature help, lenses, links, symbols and colours, and language servers inside plugin-injected ranges.
  • Plugins can own database sources and add tools to the built-in MCP server; new permissions cover plain HTTP, local sockets and IDE commands.
  • Indexer gutter markers carry their plugin's icon, and a plugin's Homepage is a link.

Run and debug

  • Debug Ruby programs and tests with rdbg.
  • Run All, Restart All, Stop All and Open in Browser on a run-configuration type group; a grouped Add Service menu and configuration picker.
  • Before-launch Build Module and Build Artifacts, shared Java launch preparation with incremental build policies, and Tomcat skips the build when the WAR is up to date.
  • Import JetBrains Go Application and Go Test run configurations.
  • Find in every console, and clickable file and URL links in the debug console.
  • Hot Swap: Reload Changed Classes can be cancelled, and reloading while a changed method is on the stack is reported as a reload with old frames still running, not as a failure.
  • Gradle debugs forked JVMs on a dynamic JDWP port; Maven supports a toolchains file and active profiles, and Maven test forks get a fixed JDWP port.
  • Debug adapters start more reliably (no port races, no launch deadline, shared breakpoint updates).

Languages and editor

  • Java: one JDT LS can serve all builds in a project window; projects with only a JDT .classpath list their libraries and JDK; Find Usages and usage counts are faster in large projects.
  • .NET: workspace, NuGet and test workflows.
  • Missing build tools, SDKs and debuggers now lead somewhere: Maven/Gradle errors open their settings, an incompatible Gradle JVM points to Choose Gradle JVM, and tool installs (Delve, gopls, npm, gem and pip tools) use the project's selected SDK.
  • Highlighting: tags in doc comments, Kotlin declarations, Go semantic colours, SCSS in Vue <style lang="scss">, HTTP request lines with JSON bodies; colour schemes' semantic token styles apply.
  • Switching tabs keeps recently used editors alive: inlay hints and code lenses no longer pop in after each switch.
  • Configurable caret mouse gestures, and editor tooltips no longer hide behind panels.
  • Vim: a Space or comma mapleader works, and special-key names are accepted in any case.

Database

  • Procedures and functions get their own folders in the schema tree.
  • Bundled SQLite updated to 3.54.1 (RUSTSEC-2026-0459).

Docker

  • Services dashboards for Docker with image layers, container processes, view filters and logs in editor tabs.

Version control

  • Multi-repository Push lets you pick each repository's remote and target branch.
  • Soft-wrap in the diff viewer, remembered diff window size, and ⌘↓ jumps to source on macOS.
  • Clearer branch sync indicators and line-ending badges in diffs; reorder Git Log columns by dragging.
  • Edit the whole commit message, delete every selected branch, and remove the worktree holding a branch you delete.

Desktop

  • Attach projects to the current project window, and find projects under a chosen folder.
  • Install the openidea command on macOS, Windows and Linux.
  • The IDE checks for updates while it stays open.
  • View › Appearance toggles the toolbar, status bar and tool window bars; Increase/Decrease Font Size applies to editors, terminals and web views.
  • Installed JetBrains Mono and Inter fonts are preferred over the bundled ones.
  • Terminal: smoother scrolling and pasting, Windows ConPTY compatibility, and Shift+Enter sends Esc+Return.
  • Windows: choose the installation scope; loose files open in the focused project window.
All changes (150 pull requests and commits)
  • feat(app): install the openidea command on macOS, Windows and Linux by @l0ng-ai in #2009
  • fix(terminal): send a Pinyin input-source switch commit once, as typed by @StarryKira in #2110
  • fix(notifications): cap toast height so a long body can't push its close off-screen by @a-rookie-of-C-language in #2138
  • feat(editor): make caret mouse gestures configurable by @l0ng-ai in #2143
  • fix(agents): preserve sign-in failure details by @l0ng-ai in #2141
  • fix(editor): take a JSX block comment back out on the second toggling by @aconeshana in #2121
  • fix(terminal): deliver the whole text of a multi-character key event by @hiennq12 in #2122
  • fix(vcs): delete every selected branch, not only the right-clicked one by @muutot in #2108
  • fix(keymap): open shortcut menu when activating an action by @l0ng-ai in #2148
  • fix(vcs): 修复 Git 对比定位与选区异常,优化跳转反馈 by @PLZY in #2093
  • fix(vcs): prevent removing worktrees containing the open project by @l0ng-ai in #2150
  • fix(vcs): offer to delete the worktree holding a branch being deleted by @muutot in #2119
  • fix(editor): honor semantic token scheme styles by @shohruh-genius in #2098
  • fix(menu): keep submenus open during diagonal pointer movement by @l0ng-ai in #2153
  • fix(java): scope launch compile errors to module dependencies by @misswell in #2147
  • fix(http): recognize request lines and highlight JSON bodies by @shohruh-genius in #2142
  • fix(kotlin): highlight declarations and semantic roles by @shohruh-genius in #2097
  • feat(vcs): clearer branch sync indicators and diff line-ending badges by @muutot in #1667
  • fix(build-tools): 优化 Maven 命令分组与跳过测试的视觉反馈 by @PLZY in #2095
  • fix(run): 优化 Run/Debug 启动动画反馈 by @PLZY in #2087
  • fix(go): enable semantic colors and Go scheme settings by @shohruh-genius in #2017
  • feat(vcs): reorder Git log columns by dragging headers by @muutot in #1856
  • fix(workbench): 优化侧栏悬停、选中和提示框样式 by @PLZY in #2094
  • feat(mcp): add an opt-in built-in IDE server by @l0ng-ai in #2149
  • fix(windows): reveal verbatim UNC paths in Explorer by @Yvesjava in #2132
  • fix(debugger): debug Python with python, not python3, on Windows by @Bortlesboat in #2159
  • fix(app): surface startup failures before the workbench loads by @l0ng-ai in #2030
  • fix(installer): allow choosing the Windows installation scope by @l0ng-ai in #2161
  • fix(agents): group all composer commands and skills by @l0ng-ai in #2163
  • fix(agents): discover Claude commands before the first task by @l0ng-ai in #2166
  • feat(workspace): discover projects in selected folders by @l0ng-ai in #2167
  • fix(terminal): send Esc+Return for Shift+Enter by @mansur-akhmadi in #2164
  • fix(vcs): honour the modal commit interface for Commit File… and diffs by @manini-1 in #2158
  • feat(run): add Build Module and Build Artifacts before launch by @misswell in #2155
  • fix(debugger): share breakpoint flushes across concurrent starts by @l0ng-ai in #2171
  • feat(run): Run All / Restart All / Stop All and Open in Browser on a type group by @qtvbwfn in #2090
  • feat(gradle): debug forked JVMs on a dynamic JDWP port by @misswell in #2154
  • feat(maven): support toolchains file and active profiles by @misswell in #2151
  • test(agents): keep ide-agent tests off the user's profile and git settings by @panda-student in #2168
  • fix(menu): draw macOS menu shortcuts in the native shortcut column by @lleviathe in #2086
  • fix(app): show a manual update check when update balloons are off by @emanyzwww in #2169
  • feat(hotswap): make Reload Changed Classes cancellable by @misswell in #2152
  • feat(debugger): debug Ruby programs and tests with rdbg by @krmbzds in #2173
  • feat(run): grouped Add Service menu and the configuration picker by @qtvbwfn in #2091
  • fix(workbench): fill the workbench when maximizing tool windows by @l0ng-ai in #2176
  • fix(run): list an Add Service category once by @l0ng-ai in #2175
  • feat(settings): toggle main menu focus on a lone Alt press by @a-rookie-of-C-language in #2174
  • fix(debugger): preserve Ruby output and session cleanup by @l0ng-ai in #2182
  • feat(zoom): route Increase/Decrease Font Size across editors, terminal tabs, and plugin webviews by @dengliu in #2172
  • fix(terminal): refit once a tool window drag settles by @brunobelloni in #2178
  • fix(terminal): queue child input without blocking the UI by @l0ng-ai in #2183
  • feat(run): share Java preparation and add incremental build policies by @misswell in #2156
  • fix(java): reject unusable language server JDKs by @l0ng-ai in #2184
  • fix(debugger): wait for slow launch and attach requests by @l0ng-ai in #2186
  • feat(plugins): support secondary split on [[contributes.views]] and default headerless side views to secondary by @dengliu in #2185
  • fix(build-tools): discover linked workspace projects by @l0ng-ai in #2187
  • fix(agents): list native Codex skills in command completion by @l0ng-ai in #2190
  • fix(editor): hide mouse-only caret action from Find Action by @l0ng-ai in #2191
  • fix(http-client): index Spring endpoints from workspace members by @l0ng-ai in #2192
  • feat(plugins): brand document-indexer gutter markers with marker icons by @yzPeedro in #2196
  • feat(plugins): make Homepage a clickable hyperlink in Settings > Plugins by @dengliu in #2195
  • test(plugins): cover indexed marker icon races and fallback by @l0ng-ai in #2198
  • fix(lsp): end the earlier task when a progress token begins again by @lleviathe in #2199
  • fix(editor): keep the scroll position when the editor gets focus back on macOS by @lleviathe in #2201
  • feat(editor): highlight tags inside doc comments by @lleviathe in #2200
  • fix(plugins): refuse indexed-only renames of code identifiers the language server can't rename by @yzPeedro in #2205
  • fix(settings): use IntelliJ's codes for .icls effect types by @lleviathe in #2203
  • fix(plugins): cover indexed code names and translate rename refusals by @l0ng-ai in #2209
  • feat(workbench): toggle the toolbar, status bar and tool window bars from View › Appearance by @lleviathe in #2206
  • ci(plugins): skip the scheduled plugin index refresh on forks by @ldg030201 in #2211
  • feat(agents): load Claude's models and effort before the first task by @panda-student in #2212
  • feat(agents): show the model list and effort in one popover by @panda-student in #2213
  • feat(plugins): plugin API 1.4 by @l0ng-ai in #2207
  • fix(terminal): configure ConPTY compatibility on Windows by @l0ng-ai in #2180
  • fix(process): don't spawn taskkill when the child started nothing by @chaoes in #2056
  • fix(terminal): resume pasted input as soon as the PTY accepts more by @l0ng-ai in #2220
  • fix(plugins): report Problems to plugins in remote projects by @l0ng-ai in #2223
  • fix(vue): highlight SCSS in <style lang="scss"> blocks by @a-rookie-of-C-language in #2221
  • fix(agents): stop defaulting new tasks to bypass by @l0ng-ai in #2232
  • Revert "fix(agents): stop defaulting new tasks to bypass" by @l0ng-ai in #2234
  • feat(plugins): let test frameworks select tests to rerun by @l0ng-ai in #2228
  • fix(vcs): edit the full commit message, not only the subject by @a-rookie-of-C-language in #2242
  • feat(debugger): support clickable file and URL links in debug console by @elfadl in #2245
  • perf(agents): make switching to a long conversation tab cheap by @l0ng-ai in #2252
  • fix(java): run jdtls on a new-enough JDK behind Scoop shims and project JAVA_HOME by @a-rookie-of-C-language in #2230
  • fix(run): scroll the configuration list and form independently by @a-rookie-of-C-language in #2255
  • perf: add a scenario for switching between and scrolling long agent conversations by @l0ng-ai in #2259
  • fix(delve): retry removing __debug_bin leftovers on Windows by @a-rookie-of-C-language in #2257
  • feat(lsp): language servers inside plugin-injected ranges by @l0ng-ai in #2235
  • perf(search): switch editors in the frame the Switcher closes by @l0ng-ai in #2267
  • fix(dap): avoid free-port race when starting debug adapters by @ppxb in #2262
  • fix(plugins): give test selection the command budget by @l0ng-ai in #2258
  • feat(lsp): run language servers in a plugin run target by @l0ng-ai in #2250
  • fix(agents): keep following a conversation's end unless the user scrolls away by @l0ng-ai in #2269
  • fix(run): pin the JDWP port for Maven test forks (#2215) by @a-rookie-of-C-language in #2268
  • feat(debug): debug programs in a plugin run target by @l0ng-ai in #2264
  • fix(sdk): list conda environments from the conda on PATH (#2240) by @a-rookie-of-C-language in #2273
  • perf(editor): keep recently used editor views across tab switches by @l0ng-ai in #2282
  • fix(agents): leave a conversation's end for scrolls no layout caused by @l0ng-ai in #2283
  • perf(terminal): skip DOM work for rows whose markup did not change by @brunobelloni in #2239
  • feat(run): a Find entry on every console, not just the Run toolbar by @misswell in #1764
  • perf(java): count usage lenses in the project sources only by @l0ng-ai in #2244
  • feat(tomcat): skip the before-launch build when the WAR is up to date by @ppxb in #2276
  • perf(java): reuse usage search results and skip covered folders when widening by @l0ng-ai in #2278
  • fix(editor): keep the corner overlay from covering the end of long lines by @Moler1995 in #2289
  • fix(lightedit): merge the saved session with launched tabs instead of replacing them (#2229) by @a-rookie-of-C-language in #2290
  • fix(vim): accept special-key names in any case in rc mappings by @ppxb in #2291
  • feat(docker): add Services dashboards, layers, processes, view filters and log editor tabs by @dengliu in #2246
  • fix(installer): preserve legacy Windows installation scope by @l0ng-ai in #2225
  • fix(markdown): preserve mermaid style scope and marker suffix selectors on id rewrite by @dengliu in #2288
  • fix(run): read JetBrains working directories written as file: URLs by @Clarence404 in #2287
  • feat(unity): open scripts from external editor arguments by @hacbit in #2296
  • fix(java): pass m2e an effective settings file carrying the configured local repository by @a-rookie-of-C-language in #2301
  • fix(windows): route loose external files to active project window by @dengliu in #923
  • feat(vcs): soft-wrap long lines in the diff viewer by @atlas-u in #2286
  • fix(gradle): read dependencies from scripts a build applies by @zmh69695328 in #2277
  • feat(dotnet): add workspace, NuGet and test workflows by @l0ng-ai in #2303
  • fix(editor): restore an evicted tab's exact scroll offset by @l0ng-ai in #2324
  • fix(java): list JDT .classpath libraries and the JDK for manifest-less projects (#2300) by @a-rookie-of-C-language in #2304
  • fix(agents): notify subscribers when a session report changes the cached provider config by @a-rookie-of-C-language in #2308
  • fix(editor): keep the saved layout when a session restore meets open tabs by @l0ng-ai in #2325
  • feat(run): import JetBrains Go Application and Go Test configurations by @ppxb in #2309
  • fix(welcome): name the platform's file manager, not Finder by @emanyzwww in #2265
  • feat(java): share JDT LS across builds in a project window by @gudcks in #2272
  • fix(database): enable Go to Column / Submit / Revert right after a table opens (#2307) by @a-rookie-of-C-language in #2318
  • fix(run): drop the leftover vue kind from the category table by @qtvbwfn in #2302
  • feat(db): list procedures and functions in separate schema folders by @boenkkk in #2270
  • fix(debugger): report obsolete methods as a completed hot swap by @l0ng-ai in #2330
  • fix(editor): parent CodeMirror tooltips to the body so panels can't cover them by @a-rookie-of-C-language in #2327
  • fix(tools): install with the selected project SDK by @l0ng-ai in #2334
  • fix(build): link missing tool and JDK errors to recovery by @l0ng-ai in #2335
  • feat(app): check for updates while the IDE stays open by @l0ng-ai in #2329
  • fix(project): keep attachments in the current project by @l0ng-ai in #2320
  • fix(fonts): prefer installed JetBrains Mono/Inter over bundled variable webfonts by @a-rookie-of-C-language in #2311
  • fix(lsp): wait through planned server restarts by @l0ng-ai in #2348
  • fix(debug): wait for Windows debuggee trees to exit by @l0ng-ai in #2349
  • fix(lsp): respect Dart's own filesystem watcher by @l0ng-ai in #2350
  • fix(agents): attach pasted clipboard images on Linux by @NealimeKenna in #2336
  • feat(keymap): bind ⌘↓ to Jump to Source in the diff viewer on macOS by @ntbang0901 in #2341
  • feat(vcs): pick each repository's remote and target branch in the multi-repository Push dialog by @ntbang0901 in #2342
  • fix(vcs): remember the diff window's size between openings by @a-rookie-of-C-language in #2353
  • fix(editor): keep the page from scrolling with the editor by @l0ng-ai in #2356
  • fix(vim): let mapleader shadow built-in keys like and , (#2337) by @a-rookie-of-C-language in #2355
  • fix(deps): bundle patched SQLite for RUSTSEC-2026-0459 by @shohruh-genius in #2351
  • fix(vim): only shadow leader keys, not operators a mapping starts with by @l0ng-ai in #2360
  • fix(vim): keep shadowed leader built-ins across rc reloads by @l0ng-ai in #2361
  • fix(usages): keep the scope summary row from taking half of the Find Usages panel by @l0ng-ai in 8d5504b
  • docs(readme): update the WeChat group QR code by @l0ng-ai in ecba8af
  • Update README.md by @l0ng-ai in 88a1e41
  • test(e2e): reach the end of the diff with Meta+End by @l0ng-ai in 53f837b

New contributors

Thanks to everyone who contributed for the first time:

Full Changelog: v0.1.39...v0.1.40

Don't miss a new openidea release

NewReleases is sending notifications on new releases.