Reef for Browsers
A cross-browser extension that turns any website into a searchable, automatable workspace. Everything runs 100% locally in your browser — zero server costs, zero accounts, zero telemetry.
Keyboard-First Search
Ctrl+Shift+K opens a 380px popup to search the current page, all open tabs, or your saved library — all without touching the mouse.
Local Library
Bookmarks, snippets, page notes, and recent pages persisted in chrome.storage.local with tag-based filtering and full-text search.
Agent Automation
Click buttons, fill forms, and execute multi-step workflows directly from the extension popup on any site.
Deep Integrations
Omnibox suggestions, five context menu actions, selection toolbar, and element highlighting — all native browser surfaces.
Sensitive Guardrails
Hard-excludes password fields, credit card inputs, SSN fields, and data-reef-agent="off" regions from indexing.
Cross-Tab Crawl
Optional mode indexes pages from the same origin across multiple open tabs into a shared site-level search index.
Theme Support
Light, Dark, and System theme modes across the popup, options page, and in-page UI with CSS custom properties throughout.
Agent-Ready Sites
Sites publishing window.__reefAgentManifest get authoritative records — no dynamic extraction needed.
Page & Tab Search
Press Ctrl+Shift+K to open the search popup. Three modes let you search the current page, all open tabs, or your saved library — all from a single keyboard-first interface.
Current Page Index
Searches the live DOM of the active tab. Extracts sections, actions, fields, links, files, media, and structured data. Filter results by type with tab chips.
- 6 filter tabs: All, Sections, Actions, Fields, Links, Files
- Each result shows type pill, heading, body snippet
- Execute / Fill / View action button per result
- Bookmark star to save individual results
- Click highlights the element in-page with teal outline
Cross-Tab Search
Searches all open browser tabs by title, URL, and cached index content. Weighted scoring: title match (+10), URL match (+5), index content match (+8).
- Shows matched records from each tab's index
- "Switch to tab" button for cross-window focus
- Finds content across dozens of open tabs instantly
- No server needed — all data is in-browser
Saved Content Search
Full-text search across bookmarks, snippets, notes, and recent pages. Filter by tags aggregated from all saved items.
- 4 library tabs: Bookmarks, Snippets, Notes, Recent
- Tag-based filtering across all content types
- Copy-to-clipboard for snippets
- Inline edit and delete for all items
How pages are indexed
The content script extracts records from the live DOM on every search. If the site publishes an authoritative manifest via window.__reefAgentManifest, Reef uses that directly. Otherwise it falls back to dynamic extraction with deduplication.
In-page selection toolbar
Select any text on a page and a floating toolbar appears with four actions: Bookmark, Snippet, Search, and Copy. The toolbar positions above the selection and dismisses on Escape, outside click, scroll, or resize.
Bookmarks, Snippets & Notes
All library data is persisted in chrome.storage.local under namespaced keys. Nothing leaves the browser. CRUD operations for every content type with tag-based filtering.
Page & Selection Bookmarks
URL, title, selected text, CSS selector, surrounding context (before/after), note, tags, and favicon. Full CRUD with search.
Reusable Text Snippets
Text content with title, tags, source URL, and source title. Copy-to-clipboard support. Created from the selection toolbar or context menu.
Per-Page Notes
One note per URL with title. Created from context menu or the popup. Get/set/list/delete via message passing to the background service worker.
Recent Page History
Auto-recorded on each page visit. Capped at 30 entries. Shows URL, title, favicon, record count, and visit timestamp.
Shadow DOM toast notifications
A Shadow DOM-based toast system renders fixed-position notifications in the top-right corner. Three types: info (dark), success (green), error (red). Auto-dismiss after 2.2 seconds with a fade-out transition.
Agent Automation Layer
The extension hosts an Agent instance in every page's content script. Execute clicks, fill forms, and chain multi-step workflows directly from the popup — all grounded to the live DOM with semantic selector candidates and fuzzy fallback.
Full Action Mode
All indexed actions are executable. Click buttons, follow links, fill form fields, and trigger multi-step workflows. Destructive actions prompt for confirmation if the guardrail toggle is enabled.
- Click any indexed button or link
- Fill text inputs, textareas, and selects
- Native property setters for React/Vue compat
- Multi-step workflow execution with retry
Safe Navigation Mode
Only navigation actions are allowed. Destructive verbs (delete, remove, submit, etc.) are excluded from the index. Form fields are not fillable. Safe for automated exploration.
- Only links and navigation buttons indexed
- Destructive verbs filtered at extraction
- No form field interaction
- Ideal for read-only agent workflows
Selector resolution & fallback
Agent actions are grounded to live DOM elements using a multi-layer strategy. If the primary CSS selector fails after a re-render, the agent falls back through semantic candidates, ARIA labels, fuzzy live-text matching, open Shadow DOM traversal, and same-origin iframe paths.
Multi-tab site indexing
When enabled in settings, the extension indexes pages from the same origin across all open tabs into a shared site-level index. Uses the core Indexer class with sitemap discovery and breadth-first fallback crawl.
Browser Integrations
Reef hooks into five native browser surfaces: the omnibox, context menus, selection toolbar, element highlighting, and the keyboard shortcut system.
Type reef in the address bar
The omnibox integration provides up to 5 suggestions from the current page's index. Press Enter to execute the top result — click for actions and links, type for fields.
| # | MENU ITEM | TRIGGER | ACTION |
|---|---|---|---|
| 01 | Bookmark selection in Reef | Text selected | Creates a bookmark from the selected text with surrounding context and CSS selector. |
| 02 | Save selection as snippet | Text selected | Saves selected text as a reusable snippet with title and tags. |
| 03 | Search "%s" in Reef | Text selected | Opens the popup with the selection pre-filled as the search query. |
| 04 | Add note to this page | Any context | Opens the note editor for the current page URL. |
| 05 | Bookmark this page in Reef | Any context | Bookmarks the entire current page with title and favicon. |
Visual result grounding
When a search result card is clicked in the popup, the corresponding DOM element is scrolled into view and highlighted with a 3px solid #00a8b5 (teal) outline for 2 seconds. This provides immediate visual confirmation of which element a search result refers to.
| PERMISSION | PURPOSE |
|---|---|
| activeTab | Inspect current tab DOM for extraction |
| scripting | Execute in-page agent actions (click/type) |
| storage | Persist settings and library data locally |
| tabs | Query and manage open browser tabs |
| contextMenus | Right-click menu items for bookmark, snippet, search, note |
| unlimitedStorage | Library data persistence without quota limits |
| <all_urls> | Content script injection on any site for indexing and automation |
Settings & Options
A full options page with sidebar navigation and six configuration sections. Import/export settings as JSON. Keyboard shortcut Ctrl+S to save.
Action Execution
- Action mode: Execute / Navigate Only
- Destructive action confirmation toggle
- Auto-execute on Enter toggle
Privacy & Security
- Custom exclusion selectors (CSS)
- Blocked domains list
- Telemetry opt-in toggle (off by default)
Search Configuration
- Results per page: 5–100
- Scoring: Default / BM25 / BM25F
- Fuzzy matching toggle
- MMR result diversity toggle
- Cross-tab indexing toggle
Theme & Display
- Theme: Light / Dark / System
- Compact mode toggle
- CSS custom properties throughout
Data Management
- Clear cache
- Clear browsing history
- Reset all settings to defaults
Version & Info
- Extension version
- Manifest version (MV3)
- Runtime type detection
- Configured shortcut key
Import & Export
Export all settings as a JSON file for backup or migration. Import a previously exported JSON to restore configuration. Available from the options page header.
Install the Extension
Google Chrome
Install from the Chrome Web Store or load the unpacked extension from plugin/dist/.
Mozilla Firefox
Install from Firefox Add-ons or load the temporary add-on from plugin/dist/ via about:debugging.
Microsoft Edge
Compatible with Chrome builds. Install from Edge Add-ons or load unpacked from plugin/dist/.
Load from source
Clone the repository, build the extension, and load it as an unpacked extension for development.
Keyboard shortcut
After installing, press Ctrl+Shift+K (or Cmd+Shift+K on Mac) to open the search popup. You can customize this in chrome://extensions/shortcuts.