Skip to content

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.

  • 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.

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:

PermissionWhy it is used
tabsRead and switch active tabs, open new tabs, close tabs, and inspect tab metadata.
tabGroupsCreate and update tab groups from tab-control tools.
sidePanelRender the React chat UI in the browser side panel.
storagePersist provider profiles, settings, history state, and the page integration auth token.
<all_urls> host accessInject the content script and run DOM automation on arbitrary pages.

The content script matches <all_urls> and runs at document_end.

From the repository root:

Terminal window
cd packages/extension
npm install

For development:

Terminal window
npm run dev

For a production-style local build:

Terminal window
npm run build

Then 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.

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/completions

There 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.

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.