No, apologies, it was me being confusing!
I meant that the julia panel is currently empty no matter what I do.
I’ve restarted the IDE. I’ve regenerated plots, but the julia panel just has “Nothing to show” in it.
Okay, that should not be the case. let me try to recreate it locally.
Can you check if there are any errors in your logs? (check Help - Show Log in Explorer and look for any errors)
I got a popup when I navigated to the julia panel saying that there were IDE internal errors. These were the two bits of info available …
Unhandled exception in EDT
com.intellij.openapi.diagnostic.UnhandledException: com/intellij/ui/jcef/JBCefBrowserBase
at com.intellij.openapi.application.impl.ExceptionsKt.processUnhandledException(exceptions.kt:56)
at com.intellij.platform.ide.bootstrap.StartupErrorReporter.processException(StartupErrorReporter.java:349)
at com.intellij.ide.IdeEventQueue.processException(IdeEventQueue.kt:476)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:738)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:637)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:568)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0$0(IdeEventQueue.kt:388)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:941)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:387)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1122)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1122)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:382)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:422)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.NoClassDefFoundError: com/intellij/ui/jcef/JBCefBrowserBase
at com.ilscipio.language.julia.sciview.JuliaScientificPanel.<init>(JuliaScientificPanel.java:64)
at com.ilscipio.language.julia.sciview.JuliaScientificToolWindowFactory.createToolWindowContent(JuliaScientificToolWindowFactory.java:23)
at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeeded(ToolWindowImpl.kt:788)
at com.intellij.openapi.wm.impl.ToolWindowImpl.scheduleContentInitializationIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:765)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doShowWindow(ToolWindowManagerImpl.kt:987)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpl(ToolWindowManagerImpl.kt:918)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:615)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow$intellij_platform_ide_impl$default(ToolWindowManagerImpl.kt:582)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activated$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:1877)
at com.intellij.openapi.wm.impl.SquareAnActionButton.setSelected(SquareStripeButton.kt:391)
at com.intellij.openapi.actionSystem.ToggleAction.actionPerformed(ToggleAction.java:62)
at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:283)
at com.intellij.openapi.actionSystem.impl.ActionButton.lambda$performAction$0(ActionButton.java:262)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks$lambda$1$0(ActionManagerImpl.kt:623)
at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
at com.intellij.openapi.application.ThrowableComputableToLambda.invoke(coroutines.kt:351)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.runWriteIntentReadAction(NestedLocksThreadingSupport.kt:710)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:1218)
at com.intellij.openapi.application.WriteIntentReadAction.computeThrowable(WriteIntentReadAction.java:55)
at com.intellij.openapi.application.WriteIntentReadAction.run(WriteIntentReadAction.java:23)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks$lambda$1(ActionManagerImpl.kt:812)
at com.intellij.concurrency.ThreadContext.installThreadContext(threadContext.kt:307)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:620)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:262)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:578)
at java.desktop/java.awt.Component.processEvent(Component.java:6396)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4932)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4562)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4503)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:734)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:731)
... 16 more
Caused by: java.lang.ClassNotFoundException: com.intellij.ui.jcef.JBCefBrowserBase PluginClassLoader(plugin=PluginMainDescriptor(name=Flexible Julia, id=com.flexible.julia, version=2026.9.44, isBundled=false, path=~\AppData\Roaming\JetBrains\IntelliJIdea2026.2\plugins\flexible-julia), packagePrefix=null, state=active, parents=ContentModuleDescriptor(id=intellij.libraries.groovy, loadingRule=EMBEDDED) <- PluginMainDescriptor(name=Groovy Scripting, id=com.intellij.groovy.scripting, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\groovy-scripting), ContentModuleDescriptor(id=intellij.platform.vcs.log.graph) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.xml.emmet) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.ssh.core, loadingRule=REQUIRED) <- PluginMainDescriptor(name=SSH, id=intellij.ssh.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-ssh-plugin), ContentModuleDescriptor(id=intellij.platform.ssh, loadingRule=REQUIRED) <- PluginMainDescriptor(name=SSH, id=intellij.ssh.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-ssh-plugin), ContentModuleDescriptor(id=intellij.platform.ssh.attach) <- PluginMainDescriptor(name=SSH, id=intellij.ssh.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-ssh-plugin), ContentModuleDescriptor(id=intellij.platform.vcs.log) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.smRunner, loadingRule=REQUIRED) <- PluginMainDescriptor(name=Test Runner, id=intellij.testRunner.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-testRunner-plugin), ContentModuleDescriptor(id=intellij.platform.structureView) <- PluginMainDescriptor(name=Structure View, id=intellij.structureView.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-structureView-plugin), ContentModuleDescriptor(id=intellij.platform.todo) <- PluginMainDescriptor(name=TODO Comments, id=intellij.todo.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-todo-plugin), ContentModuleDescriptor(id=intellij.platform.bookmarks, loadingRule=REQUIRED) <- PluginMainDescriptor(name=Bookmarks Manager, id=intellij.bookmarks.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-bookmarks-plugin), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.structuralSearch) <- PluginMainDescriptor(name=Structural Search, id=intellij.structuralSearch.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-structuralSearch-plugin), ContentModuleDescriptor(id=intellij.relaxng) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.vcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.vcs.log.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.spellchecker) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.spellchecker.xml) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.protocolReaderRuntime) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.backend) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.ui) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.tasks) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.tasks.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth.base) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), )
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:154)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
... 55 more
java.lang.NoClassDefFoundError: com/intellij/ui/jcef/JBCefBrowserBase
at com.ilscipio.language.julia.sciview.JuliaScientificPanel.<init>(JuliaScientificPanel.java:64)
at com.ilscipio.language.julia.sciview.JuliaScientificToolWindowFactory.createToolWindowContent(JuliaScientificToolWindowFactory.java:23)
at com.intellij.openapi.wm.impl.ToolWindowImpl.createContentIfNeeded(ToolWindowImpl.kt:788)
at com.intellij.openapi.wm.impl.ToolWindowImpl.scheduleContentInitializationIfNeeded$intellij_platform_ide_impl(ToolWindowImpl.kt:765)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.doShowWindow(ToolWindowManagerImpl.kt:987)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.showToolWindowImpl(ToolWindowManagerImpl.kt:918)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:615)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activateToolWindow$intellij_platform_ide_impl$default(ToolWindowManagerImpl.kt:582)
at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.activated$intellij_platform_ide_impl(ToolWindowManagerImpl.kt:1877)
at com.intellij.openapi.wm.impl.SquareAnActionButton.setSelected(SquareStripeButton.kt:391)
at com.intellij.openapi.actionSystem.ToggleAction.actionPerformed(ToggleAction.java:62)
at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:283)
at com.intellij.openapi.actionSystem.impl.ActionButton.lambda$performAction$0(ActionButton.java:262)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks$lambda$1$0(ActionManagerImpl.kt:623)
at com.intellij.openapi.application.WriteIntentReadAction.lambda$run$0(WriteIntentReadAction.java:24)
at com.intellij.openapi.application.ThrowableComputableToLambda.invoke(coroutines.kt:351)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.runWriteIntentReadAction(NestedLocksThreadingSupport.kt:710)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteIntentReadAction(ApplicationImpl.java:1218)
at com.intellij.openapi.application.WriteIntentReadAction.computeThrowable(WriteIntentReadAction.java:55)
at com.intellij.openapi.application.WriteIntentReadAction.run(WriteIntentReadAction.java:23)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks$lambda$1(ActionManagerImpl.kt:812)
at com.intellij.concurrency.ThreadContext.installThreadContext(threadContext.kt:307)
at com.intellij.openapi.actionSystem.impl.ActionManagerImpl.performWithActionCallbacks(ActionManagerImpl.kt:620)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:262)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:578)
at java.desktop/java.awt.Component.processEvent(Component.java:6396)
at java.desktop/java.awt.Container.processEvent(Container.java:2260)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2318)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4932)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4562)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4503)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2304)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4836)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:734)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:711)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:731)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:637)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:568)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0$0(IdeEventQueue.kt:388)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:941)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0$0$0(IdeEventQueue.kt:387)
at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$0(IdeEventQueue.kt:1122)
at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114)
at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1122)
at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$0(IdeEventQueue.kt:382)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:422)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
Caused by: java.lang.ClassNotFoundException: com.intellij.ui.jcef.JBCefBrowserBase PluginClassLoader(plugin=PluginMainDescriptor(name=Flexible Julia, id=com.flexible.julia, version=2026.9.44, isBundled=false, path=~\AppData\Roaming\JetBrains\IntelliJIdea2026.2\plugins\flexible-julia), packagePrefix=null, state=active, parents=ContentModuleDescriptor(id=intellij.libraries.groovy, loadingRule=EMBEDDED) <- PluginMainDescriptor(name=Groovy Scripting, id=com.intellij.groovy.scripting, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\groovy-scripting), ContentModuleDescriptor(id=intellij.platform.vcs.log.graph) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.xml.emmet) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.ssh.core, loadingRule=REQUIRED) <- PluginMainDescriptor(name=SSH, id=intellij.ssh.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-ssh-plugin), ContentModuleDescriptor(id=intellij.platform.ssh, loadingRule=REQUIRED) <- PluginMainDescriptor(name=SSH, id=intellij.ssh.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-ssh-plugin), ContentModuleDescriptor(id=intellij.platform.ssh.attach) <- PluginMainDescriptor(name=SSH, id=intellij.ssh.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-ssh-plugin), ContentModuleDescriptor(id=intellij.platform.vcs.log) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.smRunner, loadingRule=REQUIRED) <- PluginMainDescriptor(name=Test Runner, id=intellij.testRunner.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-testRunner-plugin), ContentModuleDescriptor(id=intellij.platform.structureView) <- PluginMainDescriptor(name=Structure View, id=intellij.structureView.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-structureView-plugin), ContentModuleDescriptor(id=intellij.platform.todo) <- PluginMainDescriptor(name=TODO Comments, id=intellij.todo.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-todo-plugin), ContentModuleDescriptor(id=intellij.platform.bookmarks, loadingRule=REQUIRED) <- PluginMainDescriptor(name=Bookmarks Manager, id=intellij.bookmarks.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-bookmarks-plugin), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.structuralSearch) <- PluginMainDescriptor(name=Structural Search, id=intellij.structuralSearch.plugin, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\plugins\platform-structuralSearch-plugin), ContentModuleDescriptor(id=intellij.relaxng) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.vcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.vcs.log.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.vcs.dvcs.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.spellchecker) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.spellchecker.xml) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.protocolReaderRuntime) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.backend) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.scriptDebugger.ui) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.tasks) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.tasks.impl) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth.base) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools.auth) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), ContentModuleDescriptor(id=intellij.platform.collaborationTools) <- PluginMainDescriptor(name=IDEA CORE, id=com.intellij, version=262.8665.337, isBundled=true, path=C:\Program Files\JetBrains\IntelliJ IDEA 2026.2.0.1\lib), )
at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:154)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
... 55 more
Thx that’s helpful. I think jetbrains removed the jcbef browser for this release. I need to check but that could be a genuine issue. Apart from that I am sure to fix it later today. I will post a direct link when I’m done. Thanks
Hotfix Release: Flexible Julia 2026.9.45
Fixes:
- Julia tool window failed to open (“Nothing to show”) on IntelliJ 2026.2 and other recent releases - the Docs panel no longer uses JCEF, restoring the tool window across the latest JetBrains IDEs
New Features:
- Julia tool window now keeps your plots, dataframes, and variables across IDE restarts; variables refresh once you run again, and Clear still empties the panel
Hotfix for 2026.9.44. The Docs panel redesign broke the Julia tool window on IntelliJ 2026.2 and other recent JetBrains releases - sorry about that. Fixed by dropping JCEF.
While I was in there, I also added persistence for the tool window - your plots, dataframes, and variables now survive IDE restarts.
@bigtoedsloth: Thanks for the heads-up - that was a real incompatibility with the latest releases.
Version 2026.9.45 has already been approved by JetBrains and is available on the marketplace.
I pulled the 2026.9.44 release, that were incompatible and switched to different classes.
New Release: Flexible Julia 2026.9.46
New Features:
- Joovy Incremental Eval: Saving a Julia file now re-evaluates only the definitions that changed instead of the whole file
- Joovy Speculative Compilation: The editor quietly pre-compiles the function under your caret and its dependencies; set
speculate = truein[Joovy]section of LocalPreferences.toml to also pre-compile whole modules after load - Joovy Smart Completion: Code completion now ranks functions your live session actually calls above cold ones - no visual change, just better ordering
- Bundled Joovy 0.3.0: Hardened IPC parameter validation, warmup trace compaction, and a first IPC test suite
Fixes:
- “Comment with Block Comment” now wraps the selection in
#= ... =#- previously it inserted only the opening marker
Joovy keeps getting smarter. The big one here is incremental re-evaluation - save a file and only the definitions you actually changed get re-evaluated. No more waiting for the whole file to reload.
I am also experimenting with speculative compiling: the editor watches where your cursor is and pre-compiles that function and its dependencies in the background. By the time you run it, it’s already warm. Enable speculate = true in your LocalPreferences.toml if you want it to go further and pre-compile whole modules.
The completion ranking is subtle but nice - functions you’ve actually been calling bubble up above ones you haven’t touched.
New Release: Flexible Julia 2026.9.47
New Features:
- Fatou Language Server: Added Fatou (https://fatou.dev/) as another Language Server option alongside LanguageServer.jl and JETLS
Fatou has been gaining some traction in the community, so I added it as a third language server option. You can switch between LanguageServer.jl, JETLS, and Fatou in Settings - Julia - Language Server. I also removed the “experimental” label from JETLS - i think it is well integrated by now.
Give it a try and let me know how it compares.
New Release: Flexible Julia 2026.9.48
New Features:
- AI Tab: Chat with Claude Code, Codex, Cursor, Gemini, Antigravity, Windsurf or Aider without leaving the IDE - the plugin auto-detects the CLI you already have installed
- Session History: Dropdown in the AI tab to reopen earlier chats or start a blank one
- Capture Button: Attach a screen region or current editor selection to your prompt
- MCP Server: Let external AI agents drive your live Julia session - run code in the REPL, read results, inspect workspace variables, run notebook cells, start runs, control the debugger - 27 tools in total
- One-Click MCP Install: Install the MCP server into a detected agent directly from Settings → Julia → AI
- Multi-Project MCP: Server serves every open project from one port, so multiple projects and IDE windows work simultaneously
- AI Settings: Single switch to turn off all AI features, plus MCP port, token, and auto-start options
Changes:
- Hidden REPL evaluation now runs every statement you send instead of only the first, captures printed output, and no longer blocks other IDE requests
Fixes:
- Exception on project close caused by a late UI update from the Packages panel

AI Features have arrived!
This is a major new feature: Based on my work on my own AIVory Genie, I decided to backport some of the AI features to Flexible Julia. But before I begin a heads up to the non-ai-users: everything can be disabled in the settings (File - Settings - Languages - Julia - AI - Enable AI features). If you do all AI features are permanently turned off.
But to the rest of us, here’s what you can do with it:
-
AI Chat: There is a new AI chat tab in our Julia panel, that lets you chat with whatever coding assistant you’re already using - Claude Code, Cursor, Codex, Gemini, Antigravity, Windsurf, Aider - without leaving the IDE. It finds your CLI automatically and gives you a dropdown to select the agent, permissions, model etc.
-
REPL & Context sharing: The AI chat hooks into your REPL session, open files and more - so it better understands what you are looking at. There is also a tiny “magic wand” you can use to give context - it takes screenshots, or when snapping parts of code, will give the agent a reference of the file and lines you are referencing.
-
MCP Server: This lets external AI agents actually control your Julia session: run code, read results, inspect variables, execute notebook cells, control the debugger. 27 tools in total. If you’re doing agentic coding, your AI can now talk directly to your live Julia environment. The MCP server can be installed via One-click install from the settings. It works across multiple projects and IDE windows.
-
Plots/Data/Variables: all session infos will be displayed in your IDE in our beloved Julia panel.
Anyway, let me know what you think about it.
New Release: Flexible Julia 2026.9.49
New Features:
- Joovy Compile-Time Inspections: Rules with quick fixes, configurable under Editor → Inspections → Julia → Joovy compile time
- Runtime Rules from Live REPL: Detects slow compilation, over-specialization, re-inference, allocation-heavy methods
- Joovy On by Default: No longer experimental - bundled Joovy updated to 0.4.1
I added compile-time inspections.
I was inspired by the excellent juliacon session from @gbaraldi on Optimizing the optimizing compiler. It sounded like something the IDE & Joovy could be helpful with. So Joovy and Flexible Julia now analyze your code as you write and flag performance issues before you even run anything: slow compilation, over-specialization, re-inference, allocation-heavy methods. Joovy gives runtime stats, while the plugin looks for obvious design issues in your code. You can configure them under Editor - Inspections - Julia - Joovy compile time.
These aren’t static rules either - they’re informed by your live REPL session. The inspector knows what’s actually happening at runtime.
Oh and: Joovy just graduated from experimental to default. I am now enabling it for everyone, because I think it is generally safe. You can disable it in settings or let me know if it ever causes issues.
New Release: Flexible Julia 2026.9.50
New Features:
- External AI Providers: Chat with Ollama, OpenAI API, Anthropic API, or Gemini API directly from the AI tab
- Ollama Auto-Detection: Local Ollama server detected on startup and appears automatically in settings
- Provider Management: Add/edit/remove dialog with test-connection button and per-provider API key storage (PasswordSafe)
- Model Switching: Model list refreshes when the active provider changes, including live model discovery from the server
- Unified AI Dropdown: Backend combo in toolbar and Settings now shows API providers alongside detected CLI agents
I’ve been working on the AI integration some more and added a broader support.
You can now connect directly to Ollama, OpenAI, Anthropic, or Gemini APIs from the AI tab. There’s a proper add/edit/remove dialog with connection testing and secure API key storage via PasswordSafe in our Settings now (File - Settings - Language - Julia - AI tab - External). And I also try to autodetect ollama on startup.
The model list updates live when you switch providers - including discovering what models your Ollama server actually has available.
Is there support for https://openrouter.ai/ ?
are the API keys stored in the OS keyring or via another method? just curious ![]()
Yes, you can add it via File - Settings - Languages - Julia - AI and add it as an external provider:
- Add a new provider, select OpenAI as the kind.
- Change the Base URL to
https://openrouter.ai/api - Enter your OpenRouter API key.
- The model list populates from OpenRouter’s catalog.
Tell me if you got any problems with it ![]()
The plugin stores API keys through the JetBrains PasswordSafe API. PasswordSafe delegates to the OS credential store. See: Persisting Sensitive Data | IntelliJ Platform Plugin SDK
As JetBrains is taking some time to approve my changes today, here’s a quick download link:
https://plugins.jetbrains.com/plugin/download?rel=true&updateId=1149379
Install via File - Settings - Plugins - Install from Disk




