Inspiration

<1% of the World uses AI Properly , and less than 0.01% of that 1% use the Frontier Versions of AI via Codex or Claude Code or any proper platform , most of us are still stuck at using AI on browsers. Current AI Companies care less trying to optimize browser versions but that requires the most focus as 9 out of 10 people you know only use AI via browsers and thats where we come in

The missing layer isn't another chatbot. It's a private memory and organization layer that sits on top of the apps you already use — without uploading your chats to someone else's cloud.

That's why we built Tecora.

What it does

Tecora is a Manifest V3 Chrome extension that captures chats from claude.ai, chatgpt.com, and gemini.google.com into one on-device library.

With it you can:

  • Browse chats across platforms in a side panel
  • Organize with folders, tags, pins, and derived titles
  • Resume work via a cross-platform "Continue where you left off" list
  • Search titles + captured message text with Ctrl/Cmd+K
  • Export markdown, portable JSON archives, or ZIP (with an honest MISSING.md when assets can't be fetched)
  • Bulk-delete with a safety-gated queue
  • Toggle message capture per platform, or wipe all Tecora data anytime

What it is not: an AI wrapper, a model router, or a sync SaaS. Tecora does not call models. There is no Tecora account and no Tecora backend. Data lives in IndexedDB in your browser.

How we built it

Stack: WXT (MV3) · React · TypeScript · Dexie (IndexedDB) · MiniSearch · fflate (ZIP)

Architecture in one glance:

page (main world)     patches fetch/XHR — catches chat list + detail JSON
       -> postMessage
content script        adapters normalize data, hosts palette + τ dock
       -> runtime messages
service worker        Dexie writes, folders/tags, MiniSearch, bulk queue
       -> IndexedDB (on device)
side panel            React UI over local data
  • Claude / ChatGPT: main-world fetch/XHR intercept for lists + messages
  • Gemini: DOM scrape for lists; messages when the chat is open
  • UI surfaces: side panel, Shadow DOM command palette, floating τ dock
  • Privacy controls and local usage estimates (never fake platform quota)

Landing page: chat-local-organizer.lovable.app
Repo: github.com/nothariharan/Tecora

Challenges we ran into

  • Three different host UIs. Each platform exposes history differently. Claude/ChatGPT lend themselves to network intercept; Gemini needed scrape + open-chat capture.
  • MV3 service worker lifecycle. Idle kills are real — anything that must survive goes to IndexedDB, not memory.
  • Host CSS leakage. Palette and dock mount in Shadow DOM so Claude/ChatGPT styles don't break our UI.
  • Honest export. ZIP asset harvest fails sometimes — we surface that in MISSING.md instead of pretending every file made it.
  • Scope discipline. Easy to drift into "another AI product." We kept Tecora as the organization layer only.

Accomplishments that we're proud of

  • A usable v0.1 across all three platforms
  • Real local organization: folders, tags, pins, resume, search, export/import
  • Privacy model that matches the pitch: no account, no backend, wipe anytime
  • Product surfaces that feel like one system: side panel + ⌘K palette + τ dock
  • A clear story for judges: install → capture → organize → search → export

What we learned

  • Multi-model users don't need another chat box — they need memory that travels with them
  • "Local-first" is a product decision, not a slogan: every feature has to work without a server
  • Extension work is mostly adapters + resilience (selectors change, workers die, hosts fight your CSS)
  • Honesty beats hype: estimates labeled as estimates, missing assets documented, no fake quota meters

What's next for Tecora

  • Chrome Web Store packaging and install polish
  • Richer project / workspace support where platforms allow
  • Real usage meters only where APIs make that honest
  • Deeper artifact / Canvas export
  • Keep the core promise: one local library for the AI apps you already use

Built With

Share this project:

Updates