extension_reload
Reload a running extension's background context, or a tab.
Quick start
Reload the extension and confirm the worker came back
Asked to reload, the agent reloads the background and confirms the worker came back.
How the agent uses it
Rides the dev session's control channel, on unless extension_dev was called with allowControl:false. A background reload answers once the engine's ready.json shows the new background attached to the dev server again (value.reattached, value.reattachedMs), so the next read or assertion meets the new generation and not the gap between them; if it has not come back within the budget (timeout, at most 5 seconds) the answer is status reloading with the contract's own stamps.
Page text in the answer
Part of this tool's answer is text a web page or the extension wrote. The server fences it between <untrusted-data-ID> and </untrusted-data-ID> with a fresh random ID per call, named in untrusted.boundary. A fence is a signal to the model, not a gate: pair it with --no-ship when the agent reads pages you do not trust. See Server flags and telemetry.
Reference
| Group | local, on by default |
| Tier | Act |
| Needs | a dev session, which carries control unless started with allowControl: false |
| Read only | no |
| Destructive | no |
| Idempotent | yes |
| Reaches the open web | no |
Inputs
| Input | Type | Required | Default | What it does |
|---|---|---|---|---|
projectPath | string | yes | Extension project root (needs a live dev session) | |
context | "background" | "content" | "page" | no | "background" | |
tab | number | no | For content/page: a specific tab id | |
browser | string | no | Session browser; defaults to this project's live session | |
timeout | number | no | Command timeout in ms. When omitted, the default depends on the route: 30000 through the dev session's control channel, 10000 over the Firefox debugger protocol, and 15000 per command over the Chromium debug port. |
When it fails
- The call is refused because no session is live. Start one with
extension_devorextension_startand call again. - The control channel is off. The session was started with
allowControl: false. Start it again without that flag.
Next
- MCP server: install, the two groups and the session gates
- Install in your client
extension_eval: Evaluate an expression in a running extension context.extension_open: Open an extension surface, or replay an event, in a running session.extension_storage: Read or write chrome.storage in a running extension.