Searching your old AI chats works fine right up until you have a second account, and then it's pretty much useless :')

I had a ChatGPT for work, another one for myself, Claude for code, Gemini because it came with the Google account, and Grok for that one thing Grok is weirdly good at. Every one of them has a search box, and every one of them searches only itself. So "where did I work out those payment terms?" meant opening four sites, switching accounts in two of them and typing the same word eight times.

I did that for months. Then I built Hubort to fix it. Alone, with Claude Code.

Disclosure: Hubort is mine, and it's what this post ends up walking through. I've tried hard to be fair to the other tools, and everything I say about them comes from their own pages, with the date I read them.

In this post we'll go through why your chats end up scattered, what each service gives you on its own, the other tools that search across services (one of them is the better pick for a lot of you,
and I'll say which), how to set Hubort up, and how it works under the hood for the devs who'd rather read the code than the pitch.

What is covered?

  1. Why are your AI chats scattered in the first place?
  2. Can ChatGPT, Claude, Gemini or Grok search your other accounts?
  3. Which tools search across AI services? (compared)
  4. The video, if you'd rather watch
  5. Setting up Hubort, step by step
  6. Searching every account at once
  7. Claude Code and Codex sessions in the same search
  8. Letting your AI apps search your old chats (MCP)
  9. How it works under the hood
  10. Is it local? What leaves your computer?
  11. Things to know before you install

1. Why are your AI chats scattered in the first place?

Three things split them up, and most of us have all three going at once.

Several services. Each company keeps its own history on its own servers and none of them reads the others'. OpenAI ain't gonna ship a search box that finds your Claude chats, and honestly if I were them I wouldn't either.

Several accounts of one service. A work ChatGPT and a personal ChatGPT are two separate histories. OpenAI's own help page on switching accounts says switching doesn't share memory or conversation history between them. Claude's search covers whichever account you're signed in to.

Several browser profiles. A browser profile is signed in to one account per service at a time, so people who keep work and personal apart usually keep a profile for each. Very tidy, right up until you need something and can't remember which profile it was in.

Five AI accounts side by side, ChatGPT Work, ChatGPT Personal, Claude, Gemini and Grok, each searching "payment terms" on its own and each labelled "Searches only itself"
Same question, five search boxes, and each one can only see inside its own account.

Your answer is in there somewhere. The problem is that "there" is five different places, and none of them knows the other four exist.

2. Can ChatGPT, Claude, Gemini or Grok search your other accounts?

No. Each one's search is fine inside its own walls:

  • ChatGPT searches the chats of the account you're signed in to.
  • Claude's chat search looks at the account you're signed in to.
  • Gemini keeps each Google account's chats in that account.
  • Grok shows the history of the account signed in to that browser.

None of them searches another service, or even another account of its own. Each one does let you export your data, but that's a zip you download by hand, which is a backup and not something you can search when you need it.

3. Which tools search across AI services?

A few browser extensions search more than one service. These are the ones I'd look at, with what their own sites said when I read them on 2 November, 2026:

Tool Services Where your chats are kept Several accounts of one service? Free tier
LLMnesia 15 web tools, plus Claude Code and Codex sessions In the browser (IndexedDB), on each device Not mentioned on its site Free local search; paid Vault adds encrypted sync
AI Toolbox 4 In the browser, with cloud sync Not mentioned on its site First 5 results of every search; paid per module
Echoes 7 On the device; cloud sync on its paid plan; a desktop app too Its site says it manages accounts together 20 searches, 10 summaries, 5 exports a month
Hubort 4, plus Claude Code and Codex sessions One SQLite file on your own computer, outside the browser Yes, across browser profiles too Two sources, every feature

If you use one account per service, LLMnesia is probably the better pick. It's free, it's local, and it covers way more services than Hubort does. I mean that. Where Hubort is different is the one thing I built it for: several accounts and several browser profiles, in one search, kept in one file on your own computer rather than inside each browser.

I keep a longer, dated comparison at hubort.app/vs, and each page there starts with where the other product is the better choice.

4. The video, if you'd rather watch

The whole thing, from install to searching, in one go:

Chapters: 0:00 The problem · 0:31 Install and pair · 1:56 Search across accounts · 2:32 Claude Code and Codex sessions · 2:53 Ask your AI apps with MCP.

5. Setting up Hubort, step by step

Hubort is two installs: a desktop app (Windows 10 and 11, or macOS 11 and later) and a browser extension (Chrome, Edge or Firefox). The extension reads your chats with the session you're already signed in with. The app keeps them in a file on your computer and searches them.

Step 1. Install the app. Get it from hubort.app/download. It isn't code-signed yet, so Windows shows "Windows protected your PC": choose More info, then Run anyway. On a Mac, macOS says it can't be opened; go to System Settings → Privacy & Security and choose Open Anyway. The download page lists each file's SHA-256 if you want to check it's really mine.

Step 2. Add the extension to each browser profile you use: Chrome from the Chrome Web Store, Edge from Microsoft Edge Add-ons, Firefox from Firefox Add-ons. The links are on the same download page.

Step 3. Pair them. Ask the app for a code (in the app, or from Hubort's icon in the tray, or the menu bar on a Mac) and type the seven digits into the extension. The extension finds the app by itself.

Hubort's "Pair a Browser" window showing a seven-digit pairing code One code per browser profile. It lasts ten minutes, and it only works on this computer.

Step 4. Tick the services and name each account. The names are only for you: "Work", "Personal", whatever tells them apart in a result.

The Hubort extension popup: Claude, ChatGPT and Grok ticked and named Work, Personal and Side project, with a Sync now button The extension's popup in one browser profile. Each service gets a name only you ever see.

Step 5. Press Sync now. The first read of a big account takes a while: Hubort reads a few chats a minute from ChatGPT, Gemini and Grok, so the service never has a reason to slow you down. Claude's goes faster. Anything it has read is searchable straight away, so you don't have to wait for the whole thing.

A second account of the same service lives in another browser profile, so repeat steps 2 to 4 there. Gemini is the exception: one profile can hold several Google accounts, and the popup lists each one.

The full guide, with every snag I've seen people hit, is at hubort.app/help/setup.

6. Searching every account at once

This is the bit the whole thing exists for. One search box, every account, every service:

Typing "invoice" in Hubort and the results coming in from Claude, ChatGPT and Gemini accounts in one list

Searching "invoice" in Hubort: five chats from four accounts across Claude, ChatGPT and Gemini in one list, each labelled with its account "invoice" finds five chats in four accounts on three services. Each result says which account it came from.

Open a result to read the whole chat, with your search word highlighted and a link back to it on its own site, where you can carry on talking:

An opened chat in Hubort: "Invoice template for consulting work" from the Work Claude account, with four matches highlighted The chat opens beside the results. Pin it, file it in a folder, or add a note.

Two accounts of the same service is where it earns its keep. Two ChatGPT accounts can't search each other at all, and in Hubort they just show up in one list, each result tagged Work or Personal. There's a Short of exactly that here: Search two ChatGPT accounts at once.

Hubort only reads. It never sends, renames, archives or deletes anything in ChatGPT, Claude, Gemini or Grok. If you want to keep going with a chat, its link opens it on the service itself, and the next read brings the new replies in.

7. Claude Code and Codex sessions in the same search

If you code with agents, a lot of your best thinking lives in terminal sessions that no web search will ever see. You remember it was "something about time zones, last month", and that's it. Hubort reads Claude Code's and Codex's session files from the computer they ran on (words only, nothing else) and puts them in the same search as your chats:

Searching "streak": two coding-agent sessions from Claude Code and Codex at the top, then Grok chats about the same habit app "streak" finds the Claude Code and Codex sessions for a habit app, right above the Grok chats that planned it.

The "time zones" search is its own Short: Find a Claude Code session from last month.

That's a Pro feature, and each tool stays off until you switch it on. More at hubort.app/coding-agents.

8. Letting your AI apps search your old chats (MCP)

This one is black magic sorcery the first time you see it work. The MCP Connector lets the AI apps on your computer (Claude, Cursor, VS Code, Codex, Windsurf, Gemini CLI and others) search and read your chats from every account. So you ask Claude "what did I decide about payment terms last month?" and it goes and looks through ChatGPT, Gemini and Grok too.

In Settings you switch on "Let AI apps search your chats", then connect each app:

Hubort's "Connect an app" window listing Claude, VS Code, Cursor, Codex, Antigravity, Claude Code in a terminal, Windsurf, Gemini CLI, LM Studio and Another app Pick the app and Hubort writes its setup for you. Each app gets its own key, and you can take it away any time.

It's read-only, and these are all the tools an app gets:

text search_chats    find chats by words, across the accounts the key allows read_chat       read one chat in full recent_chats    what you talked about lately related_chats   chats about the same thing, in any account list_accounts   which accounts there are list_folders    your folders

Each key can be narrowed to some accounts or folders, and the usual shapes of API keys and passwords in your chats are masked before an app sees them (best effort, so don't treat it as a vault). The details of what it can and can't reach are at hubort.app/mcp. This one is Pro too.

9. How it works under the hood

For the devs. Here's the whole picture:

Hubort's architecture: on the internet, chatgpt.com, claude.ai, gemini.google.com and grok.com; on your computer, an extension in each browser profile and Claude Code and Codex session files feed the Hubort app on 127.0.0.1, which keeps hub.db, one SQLite file with full-text search, and serves the dashboard and your AI apps over MCP. No Hubort server anywhere. No Hubort server anywhere in this picture, and that's on purpose.

Three parts, roughly:

text extension-chromium/        one install per browser profile (a Firefox twin sits beside it) background.js            does the reading: each service's web app, with your own session content.js               watches claude.ai's rate-limit banner, nothing else options.js               the popup server/ server.js                the hub: Express + better-sqlite3, listening on 127.0.0.1 only lib/                     the bits that stand alone: export, MCP, Ask, related chats... web/                     the dashboard, React 19 + Tailwind desktop/                   a Tauri shell that runs the hub and pairs browsers from the tray

Search is SQLite's FTS5, nothing fancier. One table, with Porter stemming so "invoices" finds "invoice":

sql CREATE VIRTUAL TABLE IF NOT EXISTS search_index USING fts5( conversation_id UNINDEXED, title, body, tokenize = 'porter' );

and the highlighted bit under each result is FTS5's own snippet():

sql snippet(search_index, 2, '<mark>', '</mark>', '…', 12)

The server has three dependencies (better-sqlite3, express, cors) and that's the whole list. The zip export, the Google Drive client and the bits that talk to Anthropic and OpenAI are all hand-rolled on plain fetch. Claude Code one-shotted more of that than I'd like to admit.

A few things that weren't obvious until they bit me:

Why a desktop app at all, and not just an extension? Because a browser profile can't see another profile's storage. If your Work ChatGPT is in one Chrome profile and your Personal one is in another, an extension that keeps everything in the browser has two separate piles. The only way to get one search is somewhere outside both, so each extension hands its chats to the app on 127.0.0.1.

127.0.0.1 is shared by everyone on the PC. I learned this one on a real machine: with two Windows accounts signed in, the second account's Hubort found a hub already running, adopted it and showed the first person's chats. Oops. So now every request needs a credential (a pairing code buys a browser a token that only opens the extension's routes), the hub refuses any Host header but its own, and both the app and the extension make the hub prove who it is with a challenge before they send it anything.

The services don't publish an API for your chat history. Hubort reads the same requests their own web apps make, with your own signed-in session, and reads a few chats a minute so it never looks like a flood. ChatGPT, Claude and Grok are friendly enough. Gemini has no REST API at all, and every field is a position in an array with no names in it, so that adapter was the final boss.

10. Is it local? What leaves your computer?

Yes, it's local, and it's one computer. There's no Hubort server to send your chats to. The extension reads them from the service you're signed in to and hands them to the app on 127.0.0.1, which writes them to a SQLite file on your own disk. Your chats, your searches and your account names never reach me.

That also answers the cross-device question: a browser on your laptop can't reach the app on your desktop, because the app only listens on its own machine. Two computers means two Huborts.

I'm a bit paranoid about this for a reason. In December 2025 Koi Security found four extensions with 8M+ installs between them quietly copying people's AI chats, and in January 2026 OX Security found two more, one of them carrying Google's Featured badge. If you're about to give any extension, mine included, access to your chats, ask where what it reads goes. I wrote the questions I'd ask down at hubort.app/is-hubort-safe.

The only chat text that ever leaves your computer goes because you switched an optional Pro feature on, and it goes where you pointed it:

  • Ask Your Archive and Sum up send the chats that answer your question to Anthropic or OpenAI, on your own API key. - The MCP Connector gives what it finds to the AI app you connected, which sends it to that app's own AI. - Live Sync writes to your own Notion if you set it up.

The privacy policy lists every case. And since it's a plain SQLite file, it's yours: you can export everything as Markdown on every plan, free included.

11. Things to know before you install

I'd rather you hear these from me than find them yourself:

  • Two installs. An app and an extension, and the extension once per browser profile. - It isn't code-signed or notarized yet, so Windows and macOS warn you the first time. - It can't bring back what you deleted before installing it. It keeps what it has read, from then on. - The services' terms. Reading each service's web app on a schedule may be inconsistent with that service's terms. Read them and decide for yourself. - No Linux, no phones. Windows and Mac only, for now.

Pricing: free for two sources, and every install starts with 14 days of Pro, no card. For more accounts, Personal is $4.99 a month, $29 a year, or $79 once. Pro (coding agents, MCP, Ask Your Archive and the rest) is $9.99 a month, $59 a year, or $149 once.

Why I built it

It started in early September as a side project that searched my Claude accounts and nothing else. The other three services came after, and it grew from there. My own copy now holds 49 accounts and about 4,500 chats, which is the only reason I trust the search to hold up.

If your AI history lives in one account, you don't need any of this, and your service's own search will do the job. If it's spread over a few services, a couple of accounts and more than one browser profile, like mine was, give it a go at hubort.app.

Let me know if you have any questions or feedback in the comments, I read every one. If something breaks, the Report a problem link in the extension comes straight to me, or write to support@hubort.app.

Have a great day! Until next time :)