Build log · GEO · updated 13 June 2026
I built a Chrome extension to see the searches ChatGPT and Claude run for you
A free Chrome extension that reveals the web-search queries and cited sources ChatGPT and Claude use when they browse, captured live and on-device.
By Piers Butler, Laurelin Labs
When you ask ChatGPT or Claude a question that needs current information, it searches the web. But it does not search for your words. It rewrites your prompt into its own search queries first, and those queries, not your original question, decide what gets retrieved and ultimately cited.
That rewriting step is invisible. You see the answer and, if you are lucky, a few source links. You never see the queries that produced them. So I built a small, free Chrome extension that surfaces them, for ChatGPT and Claude, and I have open-sourced it. This is what it does, why that hidden layer matters, and what I learned building it.
The thing nobody can see: query fan-out
Ask "what is the best electric SUV for towing in 2026?" and a modern AI assistant does not run one search. It runs several, each probing a different facet of the question. Define the category. Compare the options. Check the towing-specific angle. Confirm a recent fact. This decomposition of one prompt into a spread of search queries is called query fan-out, and it is rapidly becoming the most important part of search that no one optimises for, because no one can observe it.
Traditional SEO is built around the keywords people type into a search box. AI search quietly moves the decisive moment somewhere else: to the keywords the model types on the user's behalf. If you want your content to appear in AI answers, the discipline people are starting to call GEO, the model's reformulated queries are the most direct signal you can get of how it conceives of a topic, and which phrasings and entities it anchors on.
Everyone in this space is theorising about fan-out. I wanted to just watch it.
What the extension does
While you use ChatGPT or Claude normally, it reads the background responses the page receives, extracts the search queries the assistant runs and the URLs it cites, and shows them live, in a popup and an optional on-page ticker. You can filter by queries or sources and export the lot to CSV.
The important constraint: nothing leaves your browser. There is no server, no account, no telemetry. Captured items live in your browser local storage and nowhere else. That is a deliberate design choice, not a missing feature. The data is derived from your own prompts, and it should stay yours.
The build: where it got interesting
The pattern is standard for a Manifest V3 extension: a small script in the page reads the streaming responses, hands what it finds to a content script, which stores it and renders the popup and ticker.
The first version captured nothing, silently. The reason is a good lesson in how these interfaces work: ChatGPT streams its responses as Server-Sent Events, a stack of partial JSON fragments arriving over time, not one tidy object. The naive parser threw on every response, and because the error was swallowed, it looked like there was simply nothing to find. The fix was a defensive, incremental parser that handles the stream as it arrives.
Claude added its own wrinkle. It exposes its searches as web_search tool calls, and the tool input arrives as a series of fragments that have to be reassembled before the query is readable. Once handled, Claude turned out to expose the fan-out cleanly, along with rich cited sources. That was the validation that made a multi-assistant version worth shipping.
One small security note I was glad I got right: the extension renders captured strings as text, never as HTML. A query string is untrusted input, and that one choice means a hostile string cannot inject anything into the interface.
What the captures reveal
Two things stand out, and both have direct GEO implications.
One prompt becomes a fan, not a query. Three to six searches per question is typical, each angling at a different facet. The practical consequence: you are not optimising to match a single query, you are optimising to be retrievable across a cluster of reformulations around a topic. That rewards genuinely comprehensive, well-structured content over thin exact-match pages.
The model anchors on entities and specific phrasings. The reformulations lean heavily on named entities and precise terminology. If your content clearly owns the entities in a topic, you are far more likely to surface across the whole fan rather than catching one stray query.
None of this is theory. It is observed behaviour, captured straight from the browser, and you can run the same experiment on the prompts you want to be found for. That captured list is, quietly, one of the better content briefs you can get.
A note on collecting data at scale
The obvious commercial thought is to collect this data from everyone who installs the extension. The answer is mostly no. The moment it stops being local and starts sending captured queries to a server, those queries, derived from real people's private prompts, become sensitive personal data you are responsible for. Doing that quietly would breach UK GDPR and the Chrome Web Store Limited Use policy, and a tool that silently exfiltrates what people search is spyware, however useful the dataset would be. A legitimate, consent-based research panel is possible, but that is a deliberate product with real compliance obligations, not a quiet toggle. For now, local-only is the right call.
Try it
It is free and live on the Chrome Web Store, so it installs in one click: Add to Chrome. Pin the icon, go to ChatGPT or Claude, ask something that needs a live web search, and watch the queries and sources land. It is also open source if you would rather run it from the repo.
This is what Laurelin Labs is for: build the small instrument, publish what it teaches, and let the useful experiments graduate. The queries are the signal. Go read yours.
Built by Laurelin Labs. Not affiliated with OpenAI or Anthropic. See the privacy policy.
The field notes
Frameworks, builds and what is changing in AI search.
Sent occasionally, never noise. The thinking behind the work, and the experiments before they ship.
No spam. Unsubscribe anytime.