Respond to commands

Commands are key combinations that invoke an extension feature. Register commands in the manifest under the "commands" key. For example:

{
  "name": "Open developer.chrome.com",
  "version": "0.1",
  "manifest_version": 3,
  "description": "Opens developer.chrome.com when you use Cmd/Ctrl + Shift + Z",
  "background": {
    "service_worker": "background.js"
  },
  "commands": {
   "open-tab": {
     "suggested_key": {
       "default": "Ctrl+Shift+Z",
       "mac": "Command+Shift+Z"
     },
     "description": "Open developer.chrome.com"
   }
  }
}

This key combination triggers the commands.onCommand event in the service worker.

chrome.commands.onCommand.addListener((command) => {
  if (command !== "open-tab") return;
  chrome.tabs.create({ url: "https://developer.chrome.com" });
});

To see responding to commands in action, download the The Tab Flipper sample and load it unpacked.