devtools.inspectedWindow.tabId

The ID of the tab that this instance of the devtools is attached to, represented as a number.

This can be sent to the extension's background page, so that background page can use the tabs API to interact with the tab:

js
// devtools-panel.js

const scriptToAttach = "document.body.innerHTML = 'Hi from the devtools';";

attachContentScriptButton.addEventListener("click", () => {
  browser.runtime.sendMessage({
    tabId: browser.devtools.inspectedWindow.tabId,
    script: scriptToAttach,
  });
});
js
// background.js

function handleMessage(request, sender, sendResponse) {
  browser.tabs.executeScript(request.tabId, {
    code: request.script,
  });
}

browser.runtime.onMessage.addListener(handleMessage);

Browser compatibility

BCD tables only load in the browser

Note: This API is based on Chromium's chrome.devtools API.