Skip to content

Permissions

Browy is a browser-automation agent. The side panel runs a chat UI; a companion native messaging host (a small Node.js process you install separately) runs the GitHub Copilot CLI as the LLM backend and returns tool calls that the extension executes against your browser.

This page explains why each permission in extension/manifest.json is required. The same text is the basis for the Chrome Web Store listing’s permission justification.

Browy’s primary UI is the Chrome side panel (chat, history, settings). Required to register sidepanel.html.

The agent uses the Chrome DevTools Protocol (via chrome.debugger.attach) to take page snapshots, click and type by accessibility index, evaluate JavaScript, and capture network and console events. It’s how Browy reads and drives pages without brittle CSS selectors.

Read tab titles and URLs to populate the agent’s context (list_tabs, switch_tab), open new tabs (new_tab, navigate), and route the agent to the correct tab when you ask it to operate on “this page”.

Used in addition to tabs so the side panel can identify the currently focused tab without prompting on every action.

Inject content scripts when the agent needs to evaluate JS in the page context (the evaluate_js tool) or extract structured data the snapshot can’t express.

Persist chat history, user settings (model, reasoning effort, theme), and last-used tab. All storage is local (chrome.storage.local); nothing is uploaded.

Connect to the locally-installed Browy native host (com.browy.host), which runs the GitHub Copilot CLI on your machine. All LLM traffic flows through your own Copilot subscription, not a Browy server.

Surface “host disconnected”, “sign-in required”, and other actionable status messages outside the side panel so you don’t miss them while working in another tab.

Save artifacts the agent produces (e.g. exported scrapes, generated files) to your Downloads folder via chrome.downloads.download.

Periodic keep-alive pings for the background service worker. Chrome aggressively suspends MV3 service workers; alarms keep the native messaging port responsive without a busy loop.

You’ll point Browy at any site you visit, so the extension declares permission for all URLs. The agent only attaches to tabs you target from the side panel. <all_urls> is the gate, not a license to crawl in the background.

Local native host

Page content goes to GitHub Copilot via the local Copilot CLI, exactly as if you ran gh copilot from a terminal.

No background activity

The agent acts only when you send a message in the side panel.

Strict tool allowlist

The native host runs every model call through a strict allowlist. Browser-driving tools are on by default and can each be turned off in Settings → Tools; host-touching tools (shell, filesystem, web_fetch) are off by default and only enabled if you opt in per-tool.