Manifest V3 generator

Manifest V3 alarms permission

alarms is the only reliable timer a Manifest V3 extension has. A service worker is stopped when idle, taking any setTimeout or setInterval with it; chrome.alarms is kept by the browser and wakes the worker when it fires, whether once or on a repeating period.

Periods have a minimum of roughly half a minute in current Chrome (a full minute in older versions), so an alarm is for polling, syncing and reminders rather than sub-second work. No install warning is shown.

Alarms at a glance

Manifest key
"permissions": ["alarms"]
What it enables
Wake the background worker on a schedule. The only reliable timer an MV3 extension has — a service worker is stopped when idle, so setTimeout does not survive.
Install warning
None — granted silently at install.
Cross-browser API
browser.alarms 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": [
    "alarms"
  ]
}

This manifest installs with no permission warning.

alarms, answered

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

What does the alarms permission do in Manifest V3?
Wake the background worker on a schedule. The only reliable timer an MV3 extension has — a service worker is stopped when idle, so setTimeout does not survive. It is declared as the string "alarms" 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 alarms show an install warning?
No. alarms 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 alarms at runtime instead?
Yes. Move it from permissions to optional_permissions and call browser.permissions.request({ permissions: ["alarms"] }) 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.