GlossaryMe is a browser extension for Chrome and Firefox that quietly builds a personal, searchable technical glossary as you browse. When you read a dense engineering page, it extracts and defines the domain-specific terms using a configurable LLM backend — Anthropic (Claude), OpenAI, or a fully local model via Ollama — then stores them locally so your knowledge compounds over time. There is no backend and no accounts: your glossary lives entirely in your browser, and full page text is never stored after extraction.
- Problem: Terms you look up while reading rarely stick, and nothing passively captures them. GlossaryMe turns everyday browsing into a durable, searchable glossary you can answer "where did I read this?" from in two clicks.
- AI integration: A background worker sends cleaned page text to your chosen provider through a swappable extractor registry (Anthropic, OpenAI, or a local Ollama model), enforcing a strict JSON schema with retry-on-invalid-JSON, confidence thresholds, and rejection of generic or quote-less terms. Every capture is logged regardless of outcome, so a provider error never interrupts browsing.
- Architecture: Built with WXT (Vite + React + TypeScript), producing both the Chrome (MV3) and Firefox builds from a single source. The code follows a hexagonal ports-and-adapters design: a browser/DB/HTTP-agnostic domain core sits behind ports, with adapters — IndexedDB repositories, the settings store, and the provider registry — wired in one composition root, so any piece can be swapped or faked in tests without touching business logic.
- Data model: IndexedDB with separate stores for terms, sources, and mentions (indexed by term, source, and a compound key). Term keys are normalized (lowercase, Unicode NFC, punctuation-stripped) and merged with alias detection, so the same concept from multiple pages appears once, with a mention linking back to each source. Settings live separately in chrome.storage.local.
- Privacy & cost: Only terms, definitions, source metadata, and short context quotes are persisted — never full article text. With the Ollama backend, extraction runs entirely on a local model, so page data never leaves your machine at all. Any API key stays in local settings, and each capture shows an estimated cost (zero for local models).
- Outcome: Built end-to-end with a Vitest test suite — the capture pipeline, dedupe/merge logic, side-panel UI, and Markdown/JSON export all function against real technical pages (AWS docs, engineering blogs, GitHub READMEs).