Manifest V3 generator

Manifest V3 activeTab permission

activeTab grants temporary access to the tab the user is looking at, only after they invoke the extension — by clicking its toolbar icon, running a keyboard command, or choosing its context-menu entry. For that one tab and that one interaction the extension may read the URL, inject scripts with chrome.scripting, and capture the visible page.

It costs no install warning, and it is the recommended replacement for broad host permissions whenever the extension acts on demand rather than on every page. Pair it with the scripting permission to inject code; declare host_permissions instead only when the extension has to run on pages the user never clicked it on.

Active tab at a glance

Manifest key
"permissions": ["activeTab"]
What it enables
Act on the tab the user is looking at, but only after they click the extension. The cheapest way to touch a page.
Install warning
None — granted silently at install.
Cross-browser API
browser.activeTab via webextension-polyfill

The manifest that declares it

Manifest with this permission

manifest.json
{
  "manifest_version": 3,
  "name": "my-extension",
  "version": "0.1.0",
  "action": {
    "default_popup": "src/popup.html"
  },
  "background": {
    "service_worker": "src/background.ts",
    "type": "module"
  },
  "permissions": [
    "activeTab"
  ]
}

This manifest installs with no permission warning.

activeTab, answered

The longer version is in the guide Manifest V3 permissions: a practical guide.

What does the activeTab permission do in Manifest V3?
Act on the tab the user is looking at, but only after they click the extension. The cheapest way to touch a page. It is declared as the string "activeTab" in the manifest's permissions array; the browser grants it at install time, and the extension's service worker, popup and other pages can then call the matching API.
Does activeTab show an install warning?
No. activeTab is granted silently — it appears in the manifest but adds nothing to the install prompt. Host permissions and warning-bearing permissions such as tabs or downloads are what change the prompt.
Can I request activeTab at runtime instead?
Yes. Move it from permissions to optional_permissions and call browser.permissions.request({ permissions: ["activeTab"] }) from a user gesture when the feature is first used. The manifest generator emits the install-time form; optional grants are an edit to that JSON.

Build the whole manifest

The Chrome extension manifest generator declares every permission with its install warning shown up front, adds the surfaces the browser opens, and validates content-script match patterns before they can reject the whole extension. In the Nodlume workspace the same selection becomes a complete Manifest V3 project with a service worker and a Vite build.

Open the generator

Other Manifest V3 permissions

We'd like to use Google cookies to understand how Nodlume is used and to measure our advertising. Nothing loads until you choose, and declining does not affect anything in the app.