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,Matchandnoneauth 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
@fileand/skilltags, 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.modandgo.workare highlighted, with version completion ingo.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
diffcommand-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:
- @chaoes made their first contribution in #1866
- @mushketer888 made their first contribution in #1874
- @elfadl made their first contribution in #1695
- @wildcatDownstairs made their first contribution in #1741
- @lidwt721 made their first contribution in #1671
- @RuyimgByCN made their first contribution in #1845
- @sidalit made their first contribution in #1903
- @jalja27 made their first contribution in #1990
- @panda-student made their first contribution in #2064
Full Changelog: v0.1.38...v0.1.39