All posts
extensioncore

Phase 2: The Browser Extension — Meeting Users Where They Are

The API worked, but nobody wants to make HTTP calls mid-conversation. So we built a Chrome extension that lives inside every AI chat.

Phase 2: The Browser Extension — Meeting Users Where They Are

From API to Action

Phase 1 gave us a working semantic memory API. The problem was obvious: developers might use a REST API directly, but most people interact with AI through chat interfaces in their browser. We needed to be inside ChatGPT, Claude, Gemini, and Perplexity — not alongside them.

A Chrome extension was the natural choice. Content scripts can inject into any web page, which means we can add functionality directly into the AI chat interfaces people already use.

The /remember and /recall Commands

The interaction model is intentionally simple. In any supported AI chat, the user types:

  • /remember followed by what they want to save — and it's stored as a memory
  • /recall followed by a query — and relevant memories appear inline

No context switching. No opening a separate app. You're in ChatGPT, you learn something worth keeping, you type /remember and keep going. The barrier between "I should save this" and actually saving it dropped to near-zero.

The extension intercepts these commands before they reach the AI, processes them against the memset API, and renders the response directly in the chat interface. From the user's perspective, it feels native — like the AI itself gained a memory feature.

Ghost Memory: The Invisible Layer

The /remember and /recall commands are explicit — the user decides when to save and search. But the most powerful feature turned out to be the one users never see.

Ghost Memory watches your conversations in the background. When you start a new chat, the extension silently checks your memory for anything relevant to the conversation topic. If it finds something, it injects that context into the AI's prompt — before the AI even responds.

The effect is striking. You open ChatGPT and ask about your project's database setup. ChatGPT responds with specifics about your PostgreSQL configuration, your pgvector setup, your connection pooling preferences. It shouldn't know any of this — but it does, because memset told it.

We call this "Ghost Memory" because the AI's knowledge appears to come from nowhere. The user didn't search for anything. The AI didn't learn it in training. memset simply injected the right context at the right moment.

Content Script Architecture

Making this work across multiple AI platforms required careful engineering. Each AI chat interface has different DOM structures, different ways of handling input, and different response rendering patterns.

The extension uses a content script architecture with per-site adapters:

  • Site detection — identify which AI platform the user is on
  • Input interception — watch for /remember and /recall command patterns
  • Context injection — find the system prompt or first-message slot and inject memories
  • Response rendering — show memset results inline using the host site's visual style

Each adapter handles the quirks of its platform. ChatGPT renders markdown differently than Claude. Gemini's input handling is different from Perplexity's. But from the user's perspective, /remember works the same everywhere.

The Popup

Beyond the in-chat commands, the extension popup provides a quick-access interface:

  • Brain status — how many memories stored, recent activity
  • Quick remember — save something without being in a chat
  • Quick recall — search your memory from anywhere
  • Settings — API key, Ghost Memory toggle, preferences

The popup is intentionally minimal. The real interaction happens inside the AI chats, not in a separate UI. The popup is there for utility, not as a destination.

What Changed

The extension transformed memset from a developer tool into something anyone could use. The capture friction we worried about in Phase 1 essentially disappeared — saving a memory is literally typing a few words in the same chat you're already using.

But we quickly realized people wanted more than just save and search. They wanted to see their memories, organize them, and understand patterns in what they'd learned. That meant building a proper dashboard.