Browser Extension
Capture web pages, selections, and links directly into Cortexa from Chrome, Edge, or Brave with the companion browser extension.
Prerequisites
- Cortexa desktop app running with the HTTP API enabled (default:
http://127.0.0.1:7373) - Your bearer token from Settings → External in the Cortexa app
- A Chromium-based browser (Chrome, Edge, Brave)
Step 1 — Load the Extension
The extension is shipped as an unpacked Manifest V3 extension in the extension/ folder of the Cortexa repository.
- Open your browser's extension page:
- Chrome:
chrome://extensions - Edge:
edge://extensions - Brave:
brave://extensions
- Chrome:
- Toggle Developer mode on (top-right corner).
- Click Load unpacked.
- Select the
extension/folder from the Cortexa repository.
The Cortexa icon appears in your browser toolbar. You may need to click the puzzle-piece icon and pin it for easy access.
Step 2 — Configure the Connection
- Click the Cortexa icon in the toolbar.
- Click the gear icon to open settings.
- Enter your settings:
- API URL:
http://127.0.0.1:7373(or whatever your Cortexa app shows in Settings → External) - Bearer token: paste the token from Settings → External
- API URL:
- Click Test connection. You should see
OK -- Cortexa vX.Y.Z. - Save.
Options page
You can also configure these settings from the extension's options page: right-click the toolbar icon → Manage extension → Extension options.
Step 3 — Start Capturing
Keyboard Shortcut
Ctrl+Shift+L captures the current text selection from any tab. No popup, no clicks -- just select text and press the shortcut.
The captured content includes the selected text, page title, and URL.
Toolbar Popup
Click the Cortexa toolbar icon to open the popup:
| Button | What it captures |
|---|---|
| Capture selection | Selected text + page title + URL |
| Capture page | Page title + URL (no text content) |
Right-Click Context Menu
Right-click to access capture options:
| Menu item | What it captures |
|---|---|
| Capture selection to Cortexa | Selected text + page title + URL |
| Capture link to Cortexa | The link URL + the page it was found on (right-click on a hyperlink) |
Capture Pipeline
Every capture from the extension goes through the same pipeline as all other Cortexa inputs:
- Sent to the HTTP API at
POST /api/ingestwithX-Cortexa-Source: extension - Encrypted with AES-256-GCM on disk
- Queued for embedding (semantic vector)
- Per-source defaults for
extensionapply (configure in Settings → Notifications → Per-source defaults) - Slash templates work if you prefix your capture with
/trigger:syntax
A browser notification confirms successful capture or reports errors.
Per-Source Defaults
The extension identifies itself as the extension source. You can configure specific auto-actions for extension captures in Settings → Notifications → Per-source defaults:
- Auto-summarize web clippings
- Auto-research to find related context
- Auto-share to Hive
Security Notes
- The extension only communicates with
http://127.0.0.1andhttp://localhost. It cannot reach the public internet. - The bearer token is stored in
chrome.storage.sync, which Chrome syncs across your signed-in browsers. If you prefer local-only storage, you can switch tochrome.storage.localby editingpopup.jsandoptions.jsin the extension folder. - Notifications fire on capture success/failure. Disable them in your browser's notification settings if they become noisy.
Troubleshooting
"Test connection" fails — Make sure the Cortexa desktop app is running and the API URL and token are correct. The default URL is http://127.0.0.1:7373.
Ctrl+Shift+L doesn't work — Another extension may be using the same shortcut. Go to chrome://extensions/shortcuts (or the equivalent for your browser) to check for conflicts or reassign the shortcut.
"Capture selection" is greyed out — You need to select text on the page first. The button is only active when there's a text selection.
Extension not visible in toolbar — Click the puzzle-piece icon in the browser toolbar and pin the Cortexa extension.
Captures not appearing in Cortexa — Check that the Cortexa app is unlocked (idle lock returns 423 Locked). Also verify the token hasn't been revoked in Settings → Tokens.