Chrome Extension

Install and configure the Foxl Chrome Extension for real browser control

The Chrome Extension is what gives Foxl access to your real Chrome browser with all your logged-in sessions. It connects your browser to the desktop agent via WebSocket.

The extension is open source at foxl-ai/browser-extension, under Apache-2.0. It is public on purpose: a "Load unpacked" install is only trustworthy if you can read what you are loading first.

Requirements

  • Chrome 116 or newer (the side panel API landed in 116). Edge and other Chromium browsers work; Firefox is not supported yet.
  • The Foxl desktop app running on the same machine, version 0.6.5 or newer - the side panel says so if yours is older. The extension has no AI of its own and nothing to talk to without the desktop.
  • The extension has its own version line, independent of the desktop release number, and updates from the Web Store on its own.

Installation

Install from the Chrome Web Store

Open the Foxl listing and click Add to Chrome. Foxl links to it from Settings > Web Access (the Settings tour points there as well).

That is the whole install: Chrome keeps the extension up to date on its own, and a store install does not raise the "Disable developer mode extensions" warning that an unpacked one does.

Or install it manually

The manual route is for a Chrome that cannot reach the Web Store - an enterprise policy that blocks it, or a Chromium fork that does not carry it - and for trying a build before it clears review. The store listing is the same code, one review behind.

  1. Download the source archive, then unzip it.
  2. Open Chrome and go to chrome://extensions
  3. Enable Developer mode (toggle in the top-right corner)
  4. Click Load unpacked
  5. Select the unzipped folder (the one containing manifest.json)

The archive is the repository as it stands, so what you load is exactly what you can read on GitHub - there is no build step and nothing is minified.

Chrome shows a "Disable developer mode extensions" warning on startup for any unpacked extension. That is Chrome's blanket notice, not specific to Foxl; installing from the Web Store instead is what clears it.

How the connection is secured

There is nothing to copy and nothing to configure. Chrome starts a small connector that Foxl installs (foxl-browser-bridge), the connector reads the connection key from a file only your own account can read, and it presents that key to the desktop on the extension's behalf. The secret never enters the browser, and there is no code on any screen.

Two facts do the work, and both are Chrome's rather than ours:

  • The connector's manifest names the permitted extension IDs, and Chrome refuses an unlisted caller before any Foxl code runs.
  • The connector is an ordinary process, so it can read a 0600 file - the one thing a browser extension cannot do, and the entire reason this used to need a person.

Settings > Web Access shows which browsers are set up, with a Reinstall button for when you add a browser or move the app. It does not print a key: earlier releases did, and the bridge is what removed the need for one.

Requires the Foxl extension 0.7.2 or newer. An older extension keeps working over the previous connection, and Settings says so when that is what is happening.

What this closes and what it does not. A program that cannot read your home directory cannot connect. A program running as you still can - it can read the key file just as it can read anything else of yours. That is the same posture as the rest of the desktop's local API, so this brings the extension socket up to it rather than making it exceptional.

Verify the connection

Once loaded, you should see the Foxl icon in your Chrome toolbar. Click it (or press Cmd+Shift+F / Ctrl+Shift+F) to open the side panel; the dot in its header is green when the desktop agent is connected and grey when it is not. With no desktop found, the panel says Foxl Desktop is required and offers Retry connection and Set a custom port.

What the Extension Does

Tab Management

The agent can open, close, switch between, and group your Chrome tabs. This lets it navigate between multiple sites during complex tasks.

Accessibility Tree

The extension extracts the accessibility tree from any page - a structured representation of all interactive elements (buttons, links, inputs, headings). This is how the agent "sees" and understands web pages.

Interaction

The agent can click buttons, type into input fields, scroll pages, and submit forms - all in your real Chrome browser with your actual sessions.

Visual Indicators

When the agent interacts with a page, visual highlights show exactly what it's clicking or typing. You can watch the agent work in real-time.

Screenshots

The extension can capture screenshots of any tab, which the agent uses for visual understanding and verification.

Side Panel

Click the Foxl icon in the Chrome toolbar to open the side panel. It is a chat with your desktop agent - ask anything or hand it a browser task from inside Chrome - with a connection dot in the header, a settings button that opens the extension's options (including the desktop port), and a notice if your desktop is older than the extension needs.

Security

The extension communicates with the desktop agent over a local WebSocket connection (localhost only). It does not send any data to external servers.

  • All communication is local (localhost WebSocket)
  • The connection key is presented by the browser bridge, not by you (see "How the connection is secured"). A program that cannot read your home directory cannot connect in the extension's place. A program already running as you still can - it reads the key file the same way it can read anything else you own - so this raises the cost rather than removing it, which is the same limit every local app has. Note the desktop still admits an unpaired connection in this release for compatibility with extensions older than 0.7.2; that window closes in a later release
  • The extension only activates when the desktop agent requests it
  • Financial sites are blocked by default
  • You can review all extension permissions in Chrome's extension settings

Troubleshooting

Extension shows "Disconnected"

Make sure the Foxl desktop app is running. The extension connects to the local agent server.

The connection key is not the cause in this release - the desktop still accepts an unpaired extension. It only becomes a possible cause if you started the desktop with FOXL_EXTENSION_ALLOW_UNPAIRED=0; see "How the connection is secured". If the extension reports that it cannot reach the connector, press Reinstall under Settings > Web Access - that rewrites the per-browser manifests, which is also what fixes it after the app has moved. Deleting ~/.foxl/.extension-pairing-secret makes the desktop mint a new key; the bridge picks the new one up on its next connect, so there is nothing to re-copy.

On macOS and Linux that file is created readable only by you (mode 600). Windows has no equivalent: chmod there sets only the read-only flag, so the file is protected by whatever your user profile folder grants, which normally means you and any administrator.

Extension not appearing in Chrome

Verify that Developer mode is enabled and the extension loaded without errors in chrome://extensions.

Pages not responding to agent commands

Some pages block automation (CAPTCHA, certain SPAs). Try refreshing the page. The agent may fall back to the Playwright-based browser tool for these cases.

On this page