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

latest releases: nightly, v0.1.41-nightly.202611130929
54 minutes ago

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, artifactId and version of pom.xml dependencies; 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 .kt source; 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.$refs targets 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_files returns fresh diagnostics after an edit; read_file returns 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-diff opens two texts in the diff viewer; decorations.set-file-note shows a note after a file's name in the project tree.
  • Plugin html views 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:

Full Changelog: v0.1.43...v0.1.44

Don't miss a new openidea release

NewReleases is sending notifications on new releases.