OpenIDEA 0.1.44 adds relative line numbers, pinned and grouped agent tasks, agent commands in Run tool window tabs over MCP, Snowflake data sources, pom.xml dependency completion, Open on GitHub / GitLab from Open In, Prisma, header completion and DTO request bodies in the HTTP Client, in-place updates of portable Windows installs, and ships Plugin API 1.7.
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
Editor and languages
- Relative and hybrid line numbers; rendered documentation comments; the date of the last change in the code vision author hint.
- Fix ESLint Problems, and fix-all on save runs for every language server that offers it.
- Maven: complete
groupId,artifactIdand version ofpom.xmldependencies; go from a dependency, plugin or parent to its own POM; import external Maven modules from Project Structure. - Java uses of Kotlin classes open the
.ktsource; JAR Applications run on the project JDK; builds fall back to Maven when JDT's annotation processing recreates a file (MapStruct-Plus). - Vue: go to
this.$refstargets and their components' members;@/imports resolve in projects without Vue CLI (Vue CLI 2, webpack, Vite). - Python: manage every interpreter from one settings page; virtual environments are excluded from source roots whatever their name.
- Prisma support; Go files get a gopher icon.
AI agents and MCP
- Pin tasks and arrange them in groups; a task's project, checkout and branch as chips; the context window's size in the usage meter; review a task's commits in the Changes pane.
- Choose whether new tasks start asking for approval; permissions are judged by request kind and command, only commands every shell reads alike are auto-approved, and agents' environment values live in the credential store.
- MCP: agent commands run in Run tool window tabs with streamed progress and no timeout cap;
check_filesreturns fresh diagnostics after an edit;read_filereturns exactly the requested range; search results carry the matched line and context.
Version control
- Open a file on GitHub, GitLab, Bitbucket or Gitee from Open In.
- ⌘D on a changed file in the Git Log shows the commit's diff; each repository's branch on its node in the Commit tool window; a resizable Branches popup whose search matches words.
- Mode-only changes are explained in the diff viewer; a file added to the index and then deleted is no longer committed.
Run, HTTP Client and databases
- Console lines coloured by log level; the Debug console uses the Run console's font and echoes the Java launch command; a running-services badge on the Services button.
- HTTP Client: header name and value completion; request bodies generated from DTOs in other modules, with superclass fields; the server port read from the active Spring profiles.
- Snowflake data sources; a context menu on query result tabs; MySQL servers that advertise DEPRECATE_EOF connect; PostgreSQL lists every schema the user may use.
Remote, platform and workbench
- SSH sessions use the built-in client and saved credentials; Open in Browser and the preview are served from the remote host; faster remote tree listing before runs.
- Portable Windows installs update in place; configuration, data and logs can be moved with environment variables; no system error boxes for processes that fail to load on Windows; DMA-BUF rendering kept on Wayland with NVIDIA.
- Themes switch without flicker and preview at once (the built-in One themes are removed); a resizable New Project dialog; External Libraries in a stable order, refreshed after a build sync.
Plugin API 1.7
views.open-diffopens two texts in the diff viewer;decorations.set-file-noteshows a note after a file's name in the project tree.- Plugin
htmlviews run their inline scripts in release builds.
All changes (127 pull requests)
- fix(ssh): update russh to 0.65 (RUSTSEC-2026-0495) by @l0ng-ai in #2935
- test(i18n): whitelist Bun product names in own-script locales by @arookieofc in #2931
- fix(run): keep a blank output line free of a zero-width space by @aconeshana in #2906
- fix(vcs): show changes in submodules whose git dir path exceeds MAX_PATH on Windows by @HL-slc in #2902
- fix(plugins): don't block Find Usages on a failed plugin index batch by @l0ng-ai in #2941
- fix(debugger): use the same console font as the Run window by @arookieofc in #2865
- fix(editor): move through the completion lookup with ⌃N / ⌃P on macOS by @l0ng-ai in #2944
- feat(run): colour console log lines by level by @qtvbwfn in #2924
- fix(java): state the installed jdtls' JDK requirement in the language server JDK settings by @l0ng-ai in #2876
- feat(vcs): show each repository's branch on its node in the Commit tool window by @mansur-akhmadi in #2911
- fix(debugger): echo the Java launch command in the debug console by @kradme in #2930
- feat(services): show a running-services badge on the window button by @qtvbwfn in #2891
- feat(editor): render documentation comments, as IDEA does by @Clarence404 in #2934
- fix(editor): keep hover documentation inside its popup near the window edge by @l0ng-ai in #2946
- fix(vcs): don't commit a file that was added to the index and then deleted by @l0ng-ai in #2947
- fix(db): do not require TLS when SQL Server SSL is disabled by @persicaTao in #2938
- fix(editor): 修复无占位符补全后的光标位置 (#2936) by @jiejie1133 in #2939
- feat(search): colour Find in Files preview matches with the editor's search result colour by @formiat in #2949
- fix(lsp): run every server's fix-all on save, and give ESLint its codeActionOnSave setting by @l0ng-ai in #2950
- fix(vcs): Commit… from Local Changes includes the selected files and focuses the message by @l0ng-ai in #2952
- feat(languages): add Prisma by @l0ng-ai in #2955
- fix(remote): finish SSH runs whose channel outlives the process by @l0ng-ai in #2957
- perf(remote): list the deployment tree concurrently and report sync phases by @l0ng-ai in #2959
- fix(remote): serve Open in Browser and the built-in preview from the remote host by @l0ng-ai in #2961
- fix(maven): an aggregator in a subfolder holds the root POM it lists as ../ by @l0ng-ai in #2963
- feat(app): resizable New Project dialog by @l0ng-ai in #2965
- fix(http-client): show the request in the tool window while it is sent by @l0ng-ai in #2966
- feat(maven): import external Maven modules from Project Structure by @hwlLL0703 in #2922
- fix(agents): move the caret with Home and End in the agent composer on macOS by @EjaYF in #2943
- fix(editor): keep narrow editor groups usable with vertical tabs by @Mr0Bread in #2962
- fix(vcs): don't flag files as modified when only exec bit changed by @arookieofc in #2864
- feat(agents): review a task's commits in the Changes pane by @panda-student in #2960
- fix(lsp): answer Java usages without waiting for jdtls' background work by @l0ng-ai in #2945
- fix(editor): keep Enter for new lines in a completion's snippet by @l0ng-ai in #2967
- fix: Python interpreters follow the workspace and survive deletion by @muutot in #2920
- fix(code-insight): show a language server busy only once it stays busy by @l0ng-ai in #2953
- fix(theme): switch themes without flicker, preview them at once, drop the built-in One themes by @l0ng-ai in #2981
- fix(ssh): open SSH sessions with the built-in client and saved credentials by @l0ng-ai in #2982
- fix(console): keep the scroll width of long output fixed by @l0ng-ai in #2983
- test(sdk): drop a stray mut in the interpreter lookup test by @l0ng-ai in #2984
- fix(libraries): write no Cargo.lock into crates outside the project's workspace by @formiat in #2976
- fix(agents): refresh a task's changes only for its own checkout by @panda-student in #2979
- fix(agent): apply a case-only rename on a case-sensitive disk by @arookieofc in #2970
- fix(plugins): show a plugin's secrets on its settings page and in a project window by @lifeir in #2980
- feat(database): add Snowflake data sources by @vvnadolskyy in #2972
- fix(terminal): clear PowerShell scrollback from explicit signal by @ffgenius in #2882
- fix(database): list the PostgreSQL schemas a user may use, not only owned ones by @l0ng-ai in #2985
- perf(remote): list the remote tree with one find before a run by @l0ng-ai in #2986
- fix(vue): go to the ref and its component's members from this.$refs by @l0ng-ai in #2989
- style: format the plugin settings test by @arookieofc in #2992
- test(e2e): stop the 'Plain PHP documentation' strict-mode flake by @arookieofc in #2994
- fix(java): open the Kotlin source for a Kotlin class used from Java by @l0ng-ai in #3026
- fix(ci): satisfy clippy 1.100's needless_bool in the Windows build by @rohitdanda in #3018
- feat(maven): complete groupId, artifactId and version of pom.xml dependencies by @Inf1mum in #2995
- fix(agents): auto-approve only commands every shell reads alike by @rohitdanda in #3005
- fix(agents): judge permission requests by their kind and command, not their title by @rohitdanda in #3006
- fix(agents): keep worktree Accept out of git's own files and links by @rohitdanda in #3004
- fix(plugins): judge sandbox paths from their text before opening them by @rohitdanda in #3007
- fix(agents): keep agents' environment values in the credential store by @rohitdanda in #3003
- fix(ci): build the first nightly when no nightly tag exists yet by @l0ng-ai in #2747
- fix(agents): keep agent permissions out of project settings by @rohitdanda in #3000
- fix(linux): keep the DMA-BUF renderer on Wayland with NVIDIA by @brunobelloni in #2179
- fix(windows): don't show system error boxes for processes that fail to load by @l0ng-ai in #2550
- feat(agents): choose whether new tasks start asking for approval by @rohitdanda in #3001
- feat(python): manage every interpreter from a Python settings folder by @muutot in #2987
- fix(search): disable ligatures on Find mono previews by default by @GGVidal in #3010
- fix(i18n): restore the commas between merged locale entries by @l0ng-ai in #3029
- fix(agents): keep worktree tasks refreshing on project VCS events by @panda-student in #2988
- fix(editor): keep server code lenses mapped across edits by @GGVidal in #3011
- feat(vcs): resize Git Branches by its edges and corner, as in IDEA by @formiat in #3025
- fix(database): select neighboring result when closing active tab by @Mr0Bread in #3017
- fix(database): inset result tabs from Services pane edges by @Mr0Bread in #3013
- 3014: Add hybrid/relative line numbers support by @pxc1984 in #3015
- fix(database): connect to MySQL servers that advertise DEPRECATE_EOF but send EOF packets by @l0ng-ai in #3030
- feat(editor): code vision author hint shows the date of the last change by @muutot in #2918
- feat(database): add context menu for query result tabs by @Mr0Bread in #3012
- feat: move configuration, user data and logs with environment variables by @l0ng-ai in #3035
- feat(agents): show the context window's size in the usage meter by @panda-student in #3021
- fix(agents): let the conversation use the whole editor panel by @panda-student in #3022
- feat(agents): show a task's project, checkout and branch as chips by @panda-student in #3020
- feat(agents): pin tasks and arrange them in groups by @panda-student in #3016
- fix(run): run JAR Applications on the project JDK by default by @l0ng-ai in #3037
- feat(editor): add Fix ESLint Problems, and let ESLint fix-all fix every rule by @l0ng-ai in #3038
- fix(plugins): raise HTTP response body limit to 16 MiB by @dengliu in #3033
- fix(plugins): list the official marketplace in debug builds too by @l0ng-ai in #2977
- fix(agents): keep the conversation at its end after a send or an opened section by @l0ng-ai in #2975
- fix(java): build with Maven when JDT's annotation processing recreates a file by @l0ng-ai in #3043
- fix(index): keep the symbol index across releases that leave extraction unchanged by @l0ng-ai in #3027
- fix(vcs): position commit history above message input by @ffgenius in #3040
- fix(remote): decide routing, trust and accepted events on the desktop by @rohitdanda in #2999
- feat(vcs): Backend trait for the Changes-view surface by @arookieofc in #2958
- feat(ui): show Go files with a gopher icon by @l0ng-ai in #3047
- test(database): let FSEvents deliver the startup events before checking ignored files by @l0ng-ai in #3048
- test(e2e): load the app modules of the Branches resize spec through variables by @l0ng-ai in #3050
- style(vcs): format inline blame by @l0ng-ai in #3051
- feat(plugins): open two texts in the diff viewer (API 1.7) by @l0ng-ai in #3055
- fix(maven): go from a dependency, plugin or parent to its own POM by @l0ng-ai in #3057
- perf(editor): don't rescan rendered doc comments on every keystroke by @Clarence404 in #3052
- fix(python): exclude virtual environments from detected roots whatever their name by @l0ng-ai in #3058
- fix(vcs): show the commit's diff on ⌘D in the Git Log's changed files by @l0ng-ai in #3065
- fix(vcs): fill the diff dialog with the editors by @l0ng-ai in #3066
- fix(terminal): keep the first shifted character a macOS IME commits directly by @l0ng-ai in #3067
- fix(clipboard): read the clipboard natively for Paste from menus by @l0ng-ai in #3068
- feat(vcs): open a file on its Git remote from Open In by @l0ng-ai in #3069
- fix(vcs): keep a commit's details shown while a refresh reloads them by @l0ng-ai in #3070
- fix(mcp): a run point in a Cargo workspace member runs that member's tests by @guoyucode in #3059
- fix(run): decode Windows programs' piped output in any system language (code page and UTF-16) by @guoyucode in #3060
- fix(keymap): list the Git log's Show Diff in the VS Code preset by @l0ng-ai in #3071
- fix(agents): shorten the command permissions copy by @l0ng-ai in #3072
- feat(mcp): agent commands in Run tool window tabs, with streamed progress and no timeout cap by @guoyucode in #2997
- feat(mcp): check_files for fresh diagnostics, exact read_file ranges, search results with the matched line and context by @guoyucode in #3061
- fix(updater): preserve Windows portable installs during updates by @caojcm in #2846
- fix(ui): keep Select All in a reading pane out of the composer by @l0ng-ai in #3073
- fix(security): stop other pages from embedding the app's own pages by @rohitdanda in #2998
- fix(libraries): keep External Libraries in a stable order and reload after a build sync by @l0ng-ai in #3077
- feat(http-client): request bodies from DTOs in other modules, header completion by @l0ng-ai in #3078
- fix(http-client): take the server port from the active Spring profiles' files by @l0ng-ai in #3079
- fix(vue): resolve the @ alias in Vue projects without Vue CLI by @l0ng-ai in #3080
- feat(plugins): notes after file names in the project tree (API 1.7) by @l0ng-ai in #3085
- fix(vcs): Branches popup search matches words, not scattered letters by @Clarence404 in #3076
- fix(plugins): run the scripts of plugin html views in release builds by @l0ng-ai in #3087
- fix(editor): translate the code vision usage counts by @l0ng-ai in #3088
- fix: trusted interpreters only, plugin diffs off the disk, fresh check_files diagnostics, dotted Maven artifact ids by @l0ng-ai in #3093
- fix(agent): don't overwrite a file at a case-only rename's new name on accept by @l0ng-ai in #3095
- fix(database): Snowflake runs nothing in another database and keeps sessions per data source by @l0ng-ai in #3096
- fix(mcp): a late diagnostics publication for an older text version isn't fresh by @l0ng-ai in #3097
- fix: Snowflake transactions and lost sessions, accept never writes over unreadable files by @l0ng-ai in #3098
New contributors
Thanks to everyone who contributed for the first time:
- @kradme made their first contribution in #2930
- @persicaTao made their first contribution in #2938
- @jiejie1133 made their first contribution in #2939
- @hwlLL0703 made their first contribution in #2922
- @Mr0Bread made their first contribution in #2962
- @lifeir made their first contribution in #2980
- @vvnadolskyy made their first contribution in #2972
- @pxc1984 made their first contribution in #3015
- @caojcm made their first contribution in #2846
Full Changelog: v0.1.43...v0.1.44