packages/examples/browser-extension/README.md
A cross-platform browser extension that lets you chat with any webpage using AI. Powered by ElizaOS with support for multiple AI providers.
# Navigate to the chrome directory
cd chrome
# Install dependencies
npm install
# Build the extension
npm run build
# Load in Chrome:
# 1. Open chrome://extensions
# 2. Enable "Developer mode"
# 3. Click "Load unpacked"
# 4. Select the `chrome/` folder
See safari/README.md for Safari-specific build instructions. Safari extensions require Xcode and must be converted from the Chrome extension.
# First build the Chrome extension
cd chrome && npm install && npm run build
# Then convert for Safari
cd ../safari
npm run convert
# Open in Xcode and build
| Provider | API Key Required | Models |
|---|---|---|
| ELIZA (Classic) | No | Pattern matching (offline) |
| OpenAI | Yes | GPT-4o, gpt-5-mini |
| Anthropic | Yes | Claude Sonnet, Claude Haiku |
| Google Gemini | Yes | Gemini 2.0 Flash |
| Groq | Yes | GPT-OSS 120B |
| xAI (Grok) | Yes | Grok-3, Grok-3-mini |
browser-extension/
├── shared/ # Shared TypeScript code
│ ├── types.ts # Type definitions
│ └── eliza-runtime-full.ts # ElizaOS runtime and page context
├── chrome/ # Chrome extension
│ ├── manifest.json # Extension manifest (MV3)
│ ├── popup.html/css # Chat UI
│ ├── src/
│ │ ├── popup-full.ts # Popup logic
│ │ ├── background.ts # Service worker
│ │ └── content.ts # Page content extraction
│ └── package.json
├── safari/ # Safari extension
│ ├── README.md # Safari build instructions
│ └── package.json
└── README.md # This file
content.ts) - Runs on every page and extracts the main content (title, URL, text)background.ts) - Manages communication between popup and content scriptspopup-full.ts) - The chat interface that users interact withcd chrome
# Watch mode - rebuilds on file changes
npm run dev
# In Chrome, reload the extension after changes
Some pages block content scripts:
chrome:// pagesIf the page content seems empty:
MIT - See the root LICENSE file.