Installation
This page covers the current local extension setup. The repository does not contain a FastAPI backend; the extension talks directly to an OpenAI-compatible /chat/completions endpoint configured in the settings UI.
Prerequisites
Section titled “Prerequisites”- Chrome, Edge, or another Chromium browser for the current MV3 build.
- Node.js and npm for local extension development.
- An OpenAI-compatible provider endpoint, or a local server such as Ollama exposing a compatible chat completions API.
Extension manifest
Section titled “Extension manifest”This is the MV3 WXT Extension build used by the current source.
The WXT build targets Manifest V3. The generated manifest identifies the extension as Navvy with this description:
AI-powered browser automation assistant. Control web pages with natural language.Requested permissions:
| Permission | Why it is used |
|---|---|
tabs | Read and switch active tabs, open new tabs, close tabs, and inspect tab metadata. |
tabGroups | Create and update tab groups from tab-control tools. |
sidePanel | Render the React chat UI in the browser side panel. |
storage | Persist provider profiles, settings, history state, and the page integration auth token. |
<all_urls> host access | Inject the content script and run DOM automation on arbitrary pages. |
The content script matches <all_urls> and runs at document_end.
Step 1: Install dependencies
Section titled “Step 1: Install dependencies”From the repository root:
cd packages/extensionnpm installStep 2: Run or build the extension
Section titled “Step 2: Run or build the extension”For development:
npm run devFor a production-style local build:
npm run buildThen open the generated browser extension output in your browser’s extension manager:
- Chrome and Edge:
chrome://extensions - Enable developer mode.
- Load the unpacked directory produced by WXT.
Step 3: Configure a provider profile
Section titled “Step 3: Configure a provider profile”Open the Navvy side panel, then open Settings from the menu. Configure:
baseURL: the provider’s OpenAI-compatible API base URL.model: the model name sent in the chat completion request.apiKey: optional bearer token for hosted providers.
The LLM client sends requests to:
POST {baseURL}/chat/completionsThere is no SSE setup step. Progress in the side panel comes from extension-side agent activity events while each tool call is planned and executed.
Step 4: Run a task
Section titled “Step 4: Run a task”Open a normal webpage and enter a task in the side panel composer:
Find the search box and search for wireless headphones.The composer placeholder is:
Describe your task... (Enter to send)If the profile is valid, the status dot moves from Ready to Running, activity rows such as Thinking... and Executing click_element_by_index... appear, and completed sessions are saved in History.