Skip to main content

Disabling tools

The dashboard’s Tools page lists all 45 tools with a switch each. browser_extensions starts switched off on every profile; it is turned on by the Other extensions consent switch in Settings. A disabled tool stays visible to the agent but every call returns an error:
So the agent knows exactly what to ask for instead of guessing at workarounds. Typical uses: block browser_upload and browser_download on a shared machine, block devtools_cdp and devtools_evaluate when you do not want arbitrary code run, or keep only the read-only tools for a research agent. Each extension dashboard sends its disabled list to the companion whenever it connects or the list changes. Calls targeting an extension browser with browserId or its tab with tabId use that browser’s switches. Page tools that resolve an omitted tabId to the agent’s own or only usable tab also use the owning browser’s switches. Calls spanning browsers and calls in developer sessions use the combined disabled list: a tool disabled in any connected dashboard is disabled for those calls. The companion saves the combined list to ~/.browspark/tools.json so it applies after a restart, before dashboards reconnect. Sharing remains independent in each browser profile. See Using multiple browsers. The catalog comes from the companion on connect (tools.catalog request with name, description and companion version), including in HTTP-only mode before any agent connects. If it stays empty while connected, see troubleshooting.

Developer browser policy

Settings → Developer browser has three positions: An explicit user request can also authorize a launch in Only when needed mode; the agent marks it with userRequested: true. Never still refuses the launch. When several dashboards are connected, the most restrictive developer-browser setting applies: Never, then Only when needed, then Always. The setting travels with the same tools.policy message as the disabled list.

Emergency stop

Settings → Emergency stop detaches the debugger from that browser profile’s tabs, clears its shared list, switches Share everything off and disconnects that extension from the companion. Commands for those tabs fail. Other connected browser profiles and separate developer sessions remain available. Resume reconnects that profile but shares nothing until you share again.