🌐 Browser Extensions
Bring your web life into your own memory. The Companion Browser Extension captures what you browse, save, read, and watch — and files it into your private Companion Memory, where you and your local AI can search it.
Overview
The Companion Browser Extension is available for Chrome, Safari, Firefox, Edge, and Brave. It captures browsing activity and site-specific personal data, and sends it to your own Companion Memory server.
Your data goes to your server and nowhere else. There is no Lifescope endpoint, no analytics service, and no third party in the path.
Key Features
- Browser history sync — page visits with title, time spent, and scroll depth, both live and as a backfill of your existing history
- Bookmarks and downloads — independent switches, off by default
- Save highlights — select text, right-click, and the excerpt is saved with the page it came from
- Site profiles — read your own data out of services that lock it up, like Netflix viewing history or GitHub activity (see below)
- Offline queue — captures that fail to upload are stored locally and retried on the next sync
- Ignore lists — exclude any site or page from capture entirely
Supported Browsers
| Browser | Status | Install |
|---|---|---|
| Chrome | ✅ Available | Chrome Web Store |
| Brave | ✅ Available | Chrome Web Store |
| Edge | ✅ Available | Chrome Web Store |
| Firefox | ✅ Available | Firefox Add-ons |
| Safari | ✅ Available | Mac App Store |
Use Cases
- Build a searchable, private archive of your browsing
- Ask your local AI “what was that article about X I read last week?”
- Recover what you watched, read, or booked months ago from services that show only a rolling window
- Keep a durable copy of data that lives inside someone else’s account
Architecture
Browser Tab
│
├── Content script ──► page metadata, scroll depth, selected text
│ site profiles (your data on supported sites)
▼
Extension Background Worker
│ classify, batch, retry-queue
│
├──► CI-Portal sign-in (OIDC), "where is my Memory server?"
│
▼
Your Companion Memory server
/api/v1/browser-activity visits, downloads
/api/v1/contents bookmarks, highlights, scraped items
/api/v1/ingest/finish makes the batch searchableThe extension talks to exactly two places: CI-Portal, to sign you in and to look up where your Memory server runs; and your Memory server, to store what it captures.
Setup
Install the extension
Chrome / Brave / Edge
Install from the Chrome Web Store . Search for Companion Intelligence or use the direct link in the Hub dashboard under Apps → Browser Extension.
Sign in
Click the Companion icon in your toolbar and choose Sign in with Companion account. This opens a normal Companion sign-in; the extension never sees your password.
Once you are signed in, the extension asks the Portal where your Memory server runs and configures itself. If you have Memory on more than one machine, it asks which to use. If you need to point it somewhere manually — a dev server, or a Portal other than the default — open Advanced.

Enable history sync
Once signed in, the popup shows Browser History Sync. Toggle Auto-sync all browser history on, pick a Sync time range, and choose which data types to include — History, Bookmarks, and Downloads are each independent switches. Click Start History Sync to run it immediately.

While a sync runs, the popup shows live progress; when it finishes, it reports how many visits were sent and the last-sync timestamp.


Configure privacy rules
Open Ignored Pages and Sites from the popup to exclude specific sites or pages from capture — add the current site in one click, or type a domain and add it manually. An ignored site is never captured by anything, including site profiles.

What gets captured
Two rules govern everything: your ignore list always wins, and nothing is captured while you are signed out.
From your browser
| Source | Default | What is captured |
|---|---|---|
| History | On | URL, title, visit time, time spent, scroll depth, meta description |
| Bookmarks | Off | URL, title, folder, date added |
| Downloads | Off | URL, filename, size, state, start time |
| Highlights | On | Text you explicitly save, plus the page it came from |
History covers both a live feed as you browse and a backfill of your existing browser history. Backfill preserves the original visit times, so importing on a Wednesday does not make Monday’s browsing look like it happened Wednesday.
Never captured
- Passwords, form contents, and payment fields
- Full page text or HTML — only the title and meta description
- Cookies or session tokens belonging to the sites you visit
- Anything on an ignored site, or anything at all while signed out
Site profiles
Some of the most valuable parts of your history are locked inside individual services. Netflix knows what you watched; your browser history only knows you were on netflix.com. A site profile closes that gap: a small recipe that reads your own data from your own logged-in account and files it into Memory with a meaningful type.
A profile only runs when you are on one of its specific pages (Netflix’s viewing-activity page, not every Netflix page), you are signed in, and the site is not ignored.
Available today
| Category | Sites | What it captures |
|---|---|---|
| Streaming | Netflix, Hulu, Disney+, Max, Paramount+, Prime Video | Viewing history, watchlist, recommendations |
| News & reading | CNN, WSJ, Slashdot | Articles read |
| Work | GitHub | Repositories, issues, pull requests, commits, activity |
| Social | Quora | Questions, answers, who you follow |
| Travel | Airbnb | Trips, wishlist, hosting activity |
| Finance ⚠️ | Robinhood | Portfolio, orders, watchlist |
Sensitive profiles are opt-in
Profiles marked ⚠️ read data most people would not expect an extension to touch. They are off by default and do nothing until you enable Include financial accounts in the popup.
The check happens before the page is read. The extension does not read your brokerage data and then discard it — it does not read it at all unless you have opted in. Any future profile touching balances, health records, or private messages will be gated the same way.
What’s coming, and what deliberately isn’t
The extension exists for the data you cannot get any other way. When a service offers a good bulk export, the better tool is the Memory Data Importer — an export is more complete than a scraper and doesn’t break when the site redesigns.
That means some obvious candidates are intentionally not on the roadmap. Google and YouTube (Takeout), Spotify, Strava, Goodreads, Steam, X, and Uber all publish good exports. Import those; don’t scrape them.
What we’re building next is the opposite case — services whose export is missing, truncated, or paywalled:
| Next up | Why |
|---|---|
| Kindle highlights | An export exists, but publishers cap it at 10–20% of a book. Your highlights are the most concentrated record of what you actually thought was worth keeping. |
| Travel — Booking.com, Expedia, airlines | No export exists anywhere in this category, and Google removed Timeline’s export. A dated trail of where you were is the backbone of remembering when things happened. |
| Amazon orders | Item-level purchase history — a surprisingly complete record of moves, hobbies, and life changes. |
| Audible | No export at all. What you finished, and when, is otherwise gone. |
| Reddit saved posts | The official export returns bare links with no titles or content. |
| Letterboxd | Dated, rated, reviewed — far richer than a streaming service’s undated title list. Export is paid-tier only. |
| Reservations & events — OpenTable, Resy, Eventbrite | No consumer export. Eventbrite has already deleted pre-2022 order history. |
| Groceries & delivery — Instacart, DoorDash | Item-level food history that nothing else records. |
| Courses — Coursera, Udemy, edX | No consumer export exists. |
Some data is valuable and still not ours to take. We will not ship profiles for LinkedIn or Meta (their terms prohibit extension scraping, and enforcement lands on your account), for banks or credit cards (use CSV import — automated access gets accounts locked), for health portals, or for private messages and employer-owned systems. Messages in particular contain other people’s words, and those people never agreed to be in your memory.
Usage
Saving a highlight
Select text on any page, right-click, and choose Save highlight to Companion Intelligence. The excerpt is stored with the page URL and title. Nothing is captured just because you selected text — saving is always explicit.
Reviewing captured data
Everything the extension captures appears in Companion Memory, searchable alongside the rest of your data.
Troubleshooting
“Signed in, but no Memory app was found” Your Companion account has no Memory app registered, or the Portal could not reach it. Install Memory from the Portal, or set the Memory server URL manually under Advanced.
Sign-in succeeds but nothing syncs
Your Memory server must be running with Portal sign-in enabled (PORTAL_OIDC_ENABLED=true). Without it the server rejects the extension’s token with a bare authorization error.
Pages not appearing in Memory Check that History sync is on and the site is not on your ignore list. If you are browsing in a private/incognito window, the extension needs incognito access enabled in your browser’s extension settings.
A site profile isn’t picking anything up Profiles run only on specific pages — Netflix’s viewing-activity page, GitHub’s profile page, and so on, not everywhere on the site. Sites also change their layout, which can break a profile until its selectors are updated. Financial profiles additionally require the Include financial accounts opt-in.
Safari extension not working after macOS update Re-enable the extension in System Settings → Privacy & Security → Extensions after any major macOS update.