Although the APIs are based on the Chrome devtools APIs, there are still many features that are not yet implemented in Firefox, and therefore are not documented here. To see which features are currently missing please see Limitations of the devtools APIs.

The devtools.panels API lets a devtools extension define its user interface inside the devtools window.

The devtools window hosts a number of separate tools - the JavaScript Debugger, Network Monitor, and so on. A row of tabs across the top lets the user switch between the different tools. The window hosting each tool's user interface is called a "panel".

With the devtools.panels API you can create new panels in the devtools window.

Like all the devtools APIs, this API is only available to code running in the document defined in the devtools_page manifest.json key, or in other devtools documents created by the extension (such as the panel's own document). See Extending the developer tools for more.


Represents the HTML/CSS inspector in the browser's devtools.
Represents a devtools panel created by the extension.
Represents a pane that an extension has added to the HTML/CSS inspector in the browser's devtools.


A reference to an ElementsPanel object.
The name of the current devtools theme.


Creates a new devtools panel.


Fired when the devtools theme changes.

Browser compatibility

ChromeEdgeFirefoxFirefox for AndroidOpera
ElementsPanel.createSidebarPane Yes No57 No Yes
ElementsPanel.onSelectionChanged Yes No56 No Yes
ExtensionPanel.onHidden Yes No54 No Yes
ExtensionPanel.onSearch Yes No No No Yes
ExtensionPanel.onShown Yes No54 No Yes
ExtensionSidebarPane.onHidden Yes No571 No Yes
ExtensionSidebarPane.onShown Yes No571 No Yes
ExtensionSidebarPane.setExpression Yes2 No573 No Yes
ExtensionSidebarPane.setObject Yes4 No575 No Yes
create Yes No54 No Yes
elements Yes No56 No Yes
onThemeChanged No No55 No No
themeName54 No55 No41

1. This event is only fired when the user switches between sidebar panes, not when the user switches between devtools panels. See bug 1412317.

2. The expression must evaluate to a JavaScript object or a DOM node, or nothing is shown in the sidebar.

3. The expression must evaluate to an object that can be serialized to JSON, or nothing is shown in the sidebar. In particular, JavaScript cyclic objects and DOM nodes are not supported. See bug 1403130.

4. If the jsonObject parameter is a string, it is not displayed.

5. If the jsonObject is a string, then rootTitle must also be given, or jsonObject will not be displayed. See bug 1412310.


This API is based on Chromium's chrome.devtools.panels API.

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

Document Tags and Contributors

Contributors to this page: wbamberg, andrewtruongmoz
Last updated by: wbamberg,