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

32 minutes ago

OpenIDEA 0.1.39 adds dev containers, an editable database result grid, Tomcat Server run configurations, a Project Structure dialog, JetBrains settings import and a rebuilt agent conversation view, and ships Plugin API 1.3.

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

Remote

  • Dev containers: reopen a local project in its dev container and forward the container's ports.
  • SSH reads ProxyCommand, Include, Match and none auth from ~/.ssh/config.

Plugins (Preview)

  • Plugin API 1.3 (openidea:plugin@1.3.0); plugins built for earlier 1.x versions keep loading.
  • Editor: add semantic colours, hover text, inlay hints, gutter icons and live diagnostics in any language; indexed workspace symbols, usages and rename.
  • Files and processes: write files, read outside the project, private persistent directories, batched file events, long-running processes and PTY sessions.
  • UI: multi-page settings, plugin-backed content and log editor tabs, tool-window web views with their own header, detail panes, sortable tables, notification actions, submenus and grouped views.
  • Plugins can ship translations, take part in the commit workflow, share HTTP endpoints, and create, rename and delete files from a code action.

Agents

  • A new conversation view with folded tool runs, inline @file and /skill tags, jump to latest, retract, and project drag-and-drop.
  • Rename tasks, roll back to a fresh session, and choose the thinking level before a task starts.
  • Question cards for Claude's AskUserQuestion, Codex and Qwen Code; background tasks shown above the composer; Mermaid diagrams in replies.
  • Command approvals show the script inside a shell wrapper, and full-access settings are honoured for tool approvals.

Run and debug

  • Tomcat Server run configurations with application server dialogs.
  • Debug Python on Docker and Compose targets, and keep service debugging in the Services tool window.
  • Run and debug Pest tests from the gutter.
  • Click a value in Variables or inline to see all of it; structured values copy with their contents.
  • Go: exact reruns, benchmark results, build tags, subtests and workspace modules all behave in run and build.
  • Maven thread count and JRE settings, and file locations are links in the build console; the Build window builds the selected CMake targets.

Languages and editor

  • Clipboard: whole-line paste, paste history, a copy-path chooser, and escaping and imports on paste.
  • Edit files directly in the Find in Files preview.
  • Python: create environments with uv, Poetry and Conda, and add an existing virtual environment as an interpreter.
  • Java: ${...} placeholders navigate to configuration files and Spring XML, Lombok members appear in Structure, Maven POM properties go to their declaration, and kmp-lsp is available as an alternative language server.
  • Laravel LSP runs next to Intelephense in Laravel projects; C# navigates to decompiled assemblies; Arduino sketches, go.mod and go.work are highlighted, with version completion in go.mod; Angular inline templates are highlighted and auto-close tags.
  • Go usages reach other modules and build-constrained files; Vue CLI aliases resolve in projects without a tsconfig.
  • macOS: navigate editor history with trackpad swipes.

Database

  • Editable result grid for single-table query results.
  • Choose the active schema per SQL console.

Version control

  • The Worktrees panel groups by repository and merges linked roots.
  • The Git Log shows GitHub commit checks and branch actions in its commit menu; copy file names and paths from the changes tree.
  • Show History works past Windows' command-line limit, stage and unstage failures are reported, and overwriting a local branch is an explicit choice.

Desktop

  • Project Structure dialog.
  • Import JetBrains settings.zip: colour schemes, editor font and options; the colour scheme settings are split into sub-pages.
  • macOS project tabs are native window tabs, with fixes for full screen and Spaces, and the pinned Dock icon survives updates.
  • A portable zip for Windows, and the diff command-line option.
  • Terminals keep their working directory across restarts.
  • Faster typing, scrolling, list navigation, Git Log, console output and start-up.
  • Settings and dialogs stay readable and aligned in compact windows.
All changes (204 pull requests and commits)
  • fix(vcs): keep Show History working past Windows' command-line limit by @jaw52 in #1831
  • fix(plugins): let find-files reach hidden folders by @a-rookie-of-C-language in #1855
  • fix(smoke): wait for the server before deleting its data directory by @a-rookie-of-C-language in #1858
  • fix(workbench): keep the active tab close button visible when the editor area narrows by @Inf1mum in #1784
  • fix(editor): cover edge cases of multiline paste with multiple cursors by @Inf1mum in #1853
  • fix(vcs): show GitHub commit checks in the Git Log by @shohruh-genius in #1861
  • feat(build): link file locations in the build console by @a-rookie-of-C-language in #1869
  • feat(debugger): flash the taskbar when a breakpoint is hit in an unfocused window by @Inf1mum in #1810
  • fix(mybatis): skip method-level annotations when parsing method declarations by @Inf1mum in #1793
  • feat(website): add responsive homepage and GitHub Pages deployment by @jaw52 in #277
  • Revert "feat(website): add responsive homepage and GitHub Pages deployment" by @a-rookie-of-C-language in #1872
  • fix(debugger): tell when the PHP has no Xdebug by @DanielADK in #1801
  • fix(windows): center the main window on startup by @ppxb in #1664
  • fix(smoke): reap the server's child processes on teardown by @a-rookie-of-C-language in #1873
  • feat(debugger): show full values on click in Variables and inline values by @ppxb in #1699
  • fix(window): give a fullscreen project window group its own Space on macOS by @jaw52 in #1729
  • fix(lsp): register .vue files and Vue CLI aliases in config-less tsserver projects by @jaw52 in #1771
  • feat(terminal): persist the working directory of terminal sessions across restarts by @Inf1mum in #1783
  • feat(agents): render mermaid diagrams in agent messages by @Inf1mum in #1787
  • fix(services): show the service port for debug sessions like for run by @Inf1mum in #1789
  • fix(terminal): restore ZDOTDIR for login zsh so history lands in the home directory by @Inf1mum in #1791
  • feat(settings): add an option for smaller indents in trees by @Inf1mum in #1795
  • feat(build): add Maven thread count setting by @Inf1mum in #1800
  • feat(app): support the diff command line option by @Inf1mum in #1811
  • ci(release): add portable zip artifact for Windows builds by @Inf1mum in #1864
  • fix(debugger): name the Java project in debug requests by @chaoes in #1866
  • fix(vcs): open Commit dialog diffs in a front window by @a-rookie-of-C-language in #1875
  • feat(app): add a report-an-issue link to the About dialog by @ppxb in #1669
  • feat(csharp): navigate to decompiled assembly definitions by @hacbit in #1689
  • feat(vcs): copy file names and paths from the changes tree (#1877) by @a-rookie-of-C-language in #1879
  • fix(clipboard): write file names as the copied files' text flavor (#1878) by @a-rookie-of-C-language in #1880
  • feat(plugins): let plugins colour tokens in files of other languages by @yzPeedro in #1882
  • fix(welcome): close the project switcher before the remove confirmation (#1883) by @a-rookie-of-C-language in #1884
  • feat(agents): show the agent's background tasks above the composer by @NealimeKenna in #1860
  • fix(run): Windows system python, pytest templates in gutter configs, pixi env detection by @a-rookie-of-C-language in #1886
  • feat(sdk): create Python environments with uv and Poetry in Add Interpreter by @a-rookie-of-C-language in #1888
  • feat(sdk): add Conda to the Add Python Interpreter env tools by @a-rookie-of-C-language in #1889
  • feat(maven): go to declaration for POM properties and parent-managed dependencies by @Inf1mum in #1887
  • feat(agents): show AskUserQuestion as a question card by @NealimeKenna in #1758
  • fix(vcs): surface stage/unstage failures instead of swallowing them by @a-rookie-of-C-language in #1893
  • fix(editor): Copy Reference emits bare member name, '#' for Kotlin/Scala by @a-rookie-of-C-language in #1894
  • feat(java): add kmp-lsp as an alternative language server by @jaw52 in #1891
  • fix(run): report Go benchmark and repeated test results by @shohruh-genius in #1868
  • fix(tests): serialize Windows SDK mapped-drive fixtures by @l0ng-ai in #1870
  • feat(plugins): services views in the Services tool window, with tabs, text and process bodies by @arnaud-ritti in #1760
  • fix(editor): show usage counts when the project finishes loading at launch by @jaw52 in #1809
  • fix(editor): let plugin completions and definitions own the strings they answer by @yzPeedro in #1364
  • perf(java): keep background usage counts and implementation markers out of the dependencies by @l0ng-ai in #1900
  • fix(run): keep Stop and window close in effect until the process is gone by @misswell in #1763
  • fix(spelling): keep dictionary saves on read-only documents by @muutot in #1756
  • fix(vcs): allow explicitly overwriting a local branch by @shohruh-genius in #1851
  • fix(vcs): show branch actions in the Git Log commit menu by @shohruh-genius in #1852
  • fix(app): keep the pinned Dock icon after an update on macOS by @l0ng-ai in #1906
  • perf: speed up Angular typing, Git Log, console output and start-up; measure more interactions by @l0ng-ai in #1901
  • fix(agents): improve chat copying, selection and scrolling by @l0ng-ai in #1905
  • feat(editor): highlight Arduino sketches as C++ by @mushketer888 in #1874
  • feat(editor): add syntax highlighting for go.mod and go.work files by @elfadl in #1695
  • chore(project): align the Project view's Always Select Opened File with IDEA by @jaw52 in #1694
  • fix(workbench): even out the tool window stripes' spacing and draw their icons at 20px by @wildcatDownstairs in #1741
  • feat(angular): highlight inline templates and auto-close tags by @jaw52 in #1897
  • test(run): fix flaky process shutdown tests in CI by @l0ng-ai in #1908
  • fix(lsp): find Go usages without reopening gopls' files, and in other modules by @l0ng-ai in #1909
  • fix(lsp): find Go usages in build-constrained files and list their callers by @l0ng-ai in #1911
  • fix(vcs): keep Git Log rows painted while dragging the scrollbar by @l0ng-ai in #1914
  • fix(vfs): warn when the inotify watch limit leaves folders unwatched by @a-rookie-of-C-language in #1918
  • fix(debugger): copy structured variable values with their contents by @jaw52 in #1917
  • fix(vcs): reopen the repository when the pack directory changes by @a-rookie-of-C-language in #1920
  • fix(editor): remove remaining gutter icon hover backgrounds by @l0ng-ai in #1923
  • feat(run): run and debug Pest tests from the gutter by @yzPeedro in #1925
  • feat(plugins): let plugins add to the hover of any language by @yzPeedro in #1931
  • fix(lsp): drop language servers whose workspace root was deleted by @a-rookie-of-C-language in #1935
  • fix(keymap): clear shortcuts when a focused tree is removed by @jaw52 in #1940
  • feat(plugins): commit workflow API for plugins by @l0ng-ai in #1941
  • fix(window): hide the macOS title bar toolbar in native full screen by @ntbang0901 in #1932
  • fix(plugin): report missing files as not-found and add project exists/stat by @a-rookie-of-C-language in #1964
  • fix(plugins): allow 64 MiB of persistent storage per plugin by @arnaud-ritti in #1967
  • fix(plugins): keep each stored value in its own file by @l0ng-ai in #1971
  • refactor(plugins): name the services pane export detail-provider by @l0ng-ai in #1972
  • fix(appimage): drop env entries of a previous update's mount by @a-rookie-of-C-language in #1969
  • feat(plugins): let plugins show inlay hints in any language by @yzPeedro in #1937
  • chore(bindings): regenerate after the detail-provider rename by @l0ng-ai in #1973
  • feat(plugins): let a plugin ship translations and read the UI language by @arnaud-ritti in #1781
  • feat(plugins): group a plugin's context menu entries under a submenu by @lidwt721 in #1671
  • feat(plugin): multi-line text input via ui.input-multiline by @a-rookie-of-C-language in #1968
  • fix(remote): keep auxiliary windows' remote routing when they hold no project by @Inf1mum in #1975
  • feat(ssh): support ProxyCommand, Include, Match, and none auth from ~/.ssh/config by @dengliu in #1704
  • feat(settings): restructure the color scheme page into JetBrains-style sub-pages by @muutot in #1734
  • perf: keep typing, scrolling and list navigation within a frame by @l0ng-ai in #1902
  • feat(project-structure): add IDEA-style Project Structure dialog by @RuyimgByCN in #1845
  • feat(plugins): clickable column headers with sort events for plugin tables by @Inf1mum in #1785
  • feat(settings): import JetBrains settings.zip (colour schemes, editor font and options) by @wildcatDownstairs in #1709
  • feat(plugins): let a code action create, rename and delete files by @arnaud-ritti in #1778
  • fix(plugins): show plugin text as written instead of through the IDE catalog by @l0ng-ai in #1999
  • fix(window): open the next tab's Space before a fullscreen group's host closes by @l0ng-ai in #2002
  • feat(plugins): let window commands choose folders and open projects by @arnaud-ritti in #1998
  • feat(plugins): add command actions to notifications by @arnaud-ritti in #1974
  • fix(java): stop Show Usages waiting seconds on the configuration index after a change by @l0ng-ai in #2011
  • fix(plugins): run process: programs through their PATH-found link by @a-rookie-of-C-language in #2007
  • feat(plugins): share project HTTP endpoints with the HTTP client by @arnaud-ritti in #1991
  • fix(terminal): respect shell environment opt-out by @sidalit in #1903
  • fix(window): show the window buttons in full screen on macOS by @l0ng-ai in #2015
  • fix(editor): complete dependency versions in go.mod by @shohruh-genius in #1871
  • fix(agents): sign-in hint names the CLI the IDE actually runs by @l0ng-ai in #2018
  • feat(plugins): filter file events and resolve document projects by @arnaud-ritti in #2003
  • feat(plugins): add readonly fields and table row interactions by @arnaud-ritti in #2013
  • feat(plugins): let a plugin read files outside the project by @chaoes in #2006
  • fix(app): update macOS submenus in place when switching projects by @youngledo in #1929
  • feat(maven): choose the JRE Maven runs with by @l0ng-ai in #2020
  • feat(plugins): let a plugin write files, inside and outside the project by @chaoes in #2016
  • fix(libraries): discover dependencies across project modules by @l0ng-ai in #2022
  • feat(agents): choose the thinking level before a task starts by @l0ng-ai in #2023
  • fix(run): rerun exact Go tests in each package by @shohruh-genius in #1978
  • fix(go): run file-scoped tests in their real package by @shohruh-genius in #1987
  • feat(run): debug Python on Docker and Compose run targets by @andreabasile in #1757
  • feat(database): select active schema per SQL console by @Inf1mum in #1807
  • feat(run): keep service debugging in the Services tool window by @xtr-hub in #1844
  • fix(run): give each Maven module its own Spring Boot scan budget by @qtvbwfn in #2021
  • feat(plugins): prepare PATH in run_process and raise MAX_VIEW_MESSAGE to 8 MiB by @dengliu in #1942
  • feat(search): edit files in the Find in Files preview by @l0ng-ai in #2031
  • feat(macos): navigate editor history with trackpad swipes by @jaw52 in #1934
  • fix(tools): resume partial downloads with curl -C - by @a-rookie-of-C-language in #2029
  • feat(remote): reopen a local project in its dev container by @andreabasile in #1843
  • fix(lsp): leave documents open on a server out of its watched-file changes by @Inf1mum in #1995
  • feat(database): editable result grid for single-table query results by @Inf1mum in #1854
  • fix(run): preserve Go declaration and subtest scopes by @shohruh-genius in #1988
  • fix(build): compile all Go workspace modules by @shohruh-genius in #1992
  • fix(go): use directory output for build-only configurations by @shohruh-genius in #1994
  • fix(go): inherit project build tags in detected launches by @shohruh-genius in #1996
  • feat(plugins): group views and apply visibility conditions by @arnaud-ritti in #2019
  • fix(agents): answer Qwen Code's questions in the question card by @jalja27 in #1990
  • feat(plugins): allow prompts while resolving code actions by @arnaud-ritti in #2025
  • feat(plugins): add fixed filenames and file template variables by @arnaud-ritti in #2032
  • fix(plugins): collapse the tables fixture field guard by @arnaud-ritti in #2041
  • fix(java): show Lombok generated members in Structure by @l0ng-ai in #2046
  • fix(run): drop a moved file's temporary context configuration by @a-rookie-of-C-language in #2037
  • refactor(lsp): register per-language semantics under lsp/semantic by @muutot in #1687
  • fix(test): complete syntax parsing across language helpers by @arnaud-ritti in #2042
  • feat(run): match IntelliJ IDEA Tomcat Server configuration and dialogs by @RuyimgByCN in #1963
  • feat(plugins): let a plugin keep a process running behind a handle by @chaoes in #2027
  • feat(plugins): allow custom gutter marker icons by @arnaud-ritti in #2044
  • feat(plugins): expose indexed workspace symbol search by @arnaud-ritti in #2040
  • feat(plugins): support detail panes for tree and list views by @arnaud-ritti in #2033
  • feat(java): navigate ${...} placeholders to configuration files and Spring XML by @Inf1mum in #2010
  • feat(plugins): PTY session bridge for plugin web views by @dengliu in #2038
  • fix(lsp): skip widening for indexed source files by @l0ng-ai in #2052
  • feat(plugins): generic streaming log editor tab for plugin web views by @dengliu in #2043
  • feat(plugins): refresh diagnostics while typing by @arnaud-ritti in #2048
  • feat(plugins): renew the background budget while a task reports by @chaoes in #2055
  • fix(build): build selected CMake targets in the Build window by @l0ng-ai in #2061
  • fix(build): normalize Go workspace member working directories by @arnaud-ritti in #2058
  • fix(test): synchronize plugin diagnostics deadline coverage by @arnaud-ritti in #2069
  • fix(test): isolate plugin process environment rejection fixture by @arnaud-ritti in #2059
  • fix(lsp): retire instances within their generation by @arnaud-ritti in #2068
  • fix(ui): readable selection colours, unified agent control sizing and Home width by @panda-student in #2064
  • fix(test): use home-relative fixture so write_capabilities passes on Windows by @a-rookie-of-C-language in #2036
  • feat(agents): rename tasks, roll back to a fresh session, and show Codex questions as one card by @panda-student in #2065
  • fix(i18n): translate the CTest, URL and JRE labels in Chinese by @l0ng-ai in #2071
  • feat(vcs): group the Worktrees panel by repository and merge linked roots by @panda-student in #2063
  • feat(composer): inline @file and /skill tags, commands anywhere, project drag-and-drop by @panda-student in #2066
  • fix(editor): keep tab titles in sync with renamed agent tasks by @panda-student in #2062
  • feat(editor): clipboard: whole-line paste, paste history dialog, copy path chooser, escape and imports on paste by @l0ng-ai in #2014
  • fix(smoke): allow graceful server shutdown before forced cleanup by @arnaud-ritti in #2054
  • feat(plugins): add persistent private filesystem directories by @arnaud-ritti in #2051
  • feat(agents): chat-style conversation view with folded tool runs, tags, jump-to-latest and retract by @panda-student in #2067
  • feat(remote): forward ports of a dev container by @andreabasile in #2072
  • feat(plugins): deliver batched filesystem events by @arnaud-ritti in #2049
  • feat(plugins): use indexed anchors for usages and rename by @arnaud-ritti in #2050
  • feat(workbench): tool-window corner actions for full-bleed views by @dengliu in #2047
  • feat(plugins): generic plugin-backed content editor tab with reload, diff, and apply actions by @dengliu in #2045
  • fix(plugins): preserve uninstall retries and bound mock private paths by @arnaud-ritti in #2073
  • feat(plugins): add declarative multi-page settings by @arnaud-ritti in #2074
  • fix(vcs): show history works with long paths on windows by @Inf1mum in #2075
  • fix(editor): keep indent guides straight and drop the column-0 guide by @lleviathe in #1525
  • feat(interpreters): support python virtual environments by @Inf1mum in #2076
  • feat(plugins): tidy the unreleased 1.3 API before it freezes by @l0ng-ai in #2079
  • feat(plugins): let plugin code open streaming log tabs by @l0ng-ai in #2082
  • fix(agents): flatten the conversation and tidy command approvals by @l0ng-ai in #2083
  • fix(agents): show the script inside a shell wrapper for every command approval by @l0ng-ai in #2088
  • fix(agents): restore the conversation card layout by @l0ng-ai in #2089
  • fix(agents): honor full-access settings for tool approvals by @xtr-hub in #2109
  • fix(run): preserve pnpm test selection arguments by @l0ng-ai in #2092
  • fix(settings): keep Python interpreter dialog rows aligned by @l0ng-ai in #2099
  • fix(database): keep credential dialog fields inside the form by @l0ng-ai in #2103
  • fix(settings): contain long names in configuration lists by @l0ng-ai in #2104
  • fix(settings): keep interpreter controls from overlapping by @l0ng-ai in #2105
  • fix(ui): constrain long dropdowns to the viewport by @l0ng-ai in #2106
  • fix(settings): wrap header controls without splitting labels by @l0ng-ai in #2107
  • fix(github): expose review settings in the native settings window by @l0ng-ai in #2113
  • fix(settings): keep compact inline controls readable by @l0ng-ai in #2114
  • fix(settings): preserve both panes in compact windows by @l0ng-ai in #2115
  • fix(templates): keep postfix descriptions inside their rows by @l0ng-ai in #2116
  • fix(agents): plain agent replies, neutral prompts and a toolbar-style jump button by @l0ng-ai in #2118
  • fix(icons): drop the light rounded-square backing from the app icon by @a-rookie-of-C-language in #2112
  • fix(window): make macOS project tabs native window tabs by @l0ng-ai in #2123
  • feat(languages): start Laravel LSP next to Intelephense in Laravel projects by @a-rookie-of-C-language in #2117
  • fix(window): stop the app panicking when windows close and open together by @l0ng-ai in #2124
  • fix(icons): restore the light rounded-square backing on the app icon by @l0ng-ai in #2125
  • fix(e2e): match the plain agent reply style in the approval test by @l0ng-ai in #2120
  • fix(run): canonicalize complete Windows Tomcat roots by @shohruh-genius in #2096
  • fix(window): closing a project tab group returns to the welcome screen by @l0ng-ai in #2130
  • fix(welcome): ask to remove a recent project whose folder is gone by @l0ng-ai in #2131
  • docs(readme): remove Java language server note by @l0ng-ai in 96eaced
  • docs(readme): remove Oracle setup note by @l0ng-ai in fdb07e5
  • Revert "perf(java): keep background usage counts and implementation markers out of the dependencies (#1900)" by @l0ng-ai in f96ca46

New contributors

Thanks to everyone who contributed for the first time:

Full Changelog: v0.1.38...v0.1.39

Don't miss a new openidea release

NewReleases is sending notifications on new releases.