CefBrowser#getDevTools() is not available since IDEA 2025.3. How can I embed DevTools in my plugin UI?
Hi and welcome!
Can you be more specific about unavailability of that method? I can investigate, but I cannot find any reference to the method being unavailable, neither in the documentation nor in the Incompatible API Changes.
Hello again,
indeed, you are right. The underlying library, CEF, has made an incompatible API change in the corresponding commit.
As per java-cef maintainers,
DevTools are unsupported in an Alloy-style window by CEF at the moment, thus it’s no longer possible to integrate the DevTools into Java windows.
That CefBrowser#getDevTools is gone now. I suggest looking at openDevTools method as a possible replacement.
I have a plugin that lets developers browse and debug any website directly inside the IDE.
One of the key features is the ability to use DevTools within the same window. It’s been working without any problem for years.
However, openDevTools() opens DevTools in a separate window, and it does not follow the focus of the project window.
This makes the user experience less ideal.
I fully understand your concerns. However, JCEF / java-cef is an open-source third-party library not maintained by JetBrains. The removal of this capability is a technical limitation and a breaking change in this third-party library.
For now, I have reached JetBrains Platform developers, if there is any way how to circumvent this, if possible.
The Devtools is a Web Application. I wonder if you could just do a remote connection and display the web page as a Web Application in a ToolWindow. I have done something like that in a electron app. If you like please take a look: GitHub - sandipchitale/AnyDevtoolsApp: Electron based Chrome Devtools App . I may even take a crack at it.
The recipe is:
Run Chrome like this:
chrome -user-data-dir=~/.google/devtools --remote-debugging-port=9222 --remote-allow-origins=http://127.0.0.1:9222
Load page:
https://www.google.com
Then make a call to:
GET http://127.0.0.1:9222/json
This will return something like this:
[
{
"description": "",
"devtoolsFrontendUrl": "https://chrome-devtools-frontend.appspot.com/serve_rev/@302067f14a4ea3f42001580e6101fa25ed343445/inspector.html?ws=127.0.0.1:9222/devtools/page/12DF8A0BB93278B9C58C6718EBAF2083",
"faviconUrl": "https://www.gstatic.com/images/branding/searchlogo/ico/favicon.ico",
"id": "12DF8A0BB93278B9C58C6718EBAF2083",
"title": "Google",
"type": "page",
"url": "https://www.google.com/",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/page/12DF8A0BB93278B9C58C6718EBAF2083"
}
]
Use the webSocketDebuggerUrl value and then transform it to URL of form:
http://127.0.0.1:9222/devtools/inspector.html?experiments=true&ws=127.0.0.1:9222/devtools/page/12DF8A0BB93278B9C58C6718EBAF2083
and load that in JCef browser.
Hope this helps.
@sandipchitale Thanks for the information.
I tried the method you mentioned, and I managed to open up a DevTools inside the Chromium running on my IntelliJ IDEA. However, a thumbnail of the target web page is showing on the left side, and elements I’m focusing on are highlighted in the thumbnail, not in the actual web view.
Any clue?
Oh cool, that is good. It is simple…just click on the icon to the left of Elements and you will get back standard view of devtools. That icon is a mechanism to let you preview the page in different form factors like iPad or tablet or phone.
It worked, thanks!
I also managed to toggle the property programmatically. So I will be able to bring the DevTools UI back in the IDE Window ![]()
Wow, thank you everybody for working this out!
Awesome! I am glad I was able to help. Is this in a plugin that is available on JB Marketplace ?
This is the plugin: https://plugins.jetbrains.com/plugin/22685-tamacat-web-browser
I’ve just submitted v2025.3.1 which includes the workaround ![]()


