ReCall
Chrome extension that turns browser history into a semantic search and knowledge graph experience.
Metrics / Signals
Problem
What this project solves
Browser history search fails when users remember a page by description, topic, or context instead of title or URL.
Architecture
How it is put together
ReCall is a Plasmo Chrome extension with content scripts and background workers that analyze visited pages, store metadata and embeddings locally, use Cohere for semantic retrieval and reranking, route natural-language queries through Gemini, and visualize pages and keywords as a React Flow graph.
Extension
What It Does
ReCall helps users find previously visited websites even when they cannot remember the title or URL. Users describe the page, enter keywords, or ask a conversational agent, and the extension retrieves semantically relevant history items.
- Builds an interconnected knowledge graph from browsing history.
- Answers questions based on search history content.
- Shows connections between visited pages through a graph interface.
AI workflow
RAG Pipeline
The extension stores webpage content and metadata as vector embeddings in IndexedDB. Query flow uses Cohere embeddings and Cohere Rerank to retrieve and rank relevant pages, then uses Google Gemini to process natural language queries and present results conversationally.
- Background workers analyze and classify webpages in real time.
- Keyword extraction, summarization, and user preference checks happen as users browse.
- Graph visualization maps websites and keywords as nodes and relationships as edges.
Constraints
Privacy and Performance
- Browsing data stays on-device through local storage instead of a remote database.
- The team tuned for browser extension memory limits and latency constraints.
- Dynamic web content capture required iteration to produce useful embeddings.
Roadmap
Next Steps
- Multimodal search for images and videos from browsing history.
- Cross-browser support for Firefox and Safari.
- Mobile companion app and cross-platform search history sync.
Decisions
Technical choices
- Used a browser extension so capture happens where browsing context already lives.
- Stored history-derived data locally to keep sensitive browsing data user-controlled.
- Paired chatbot search with a graph view so users can both ask and explore.
Tradeoffs
Constraints and next choices
- Browser extension memory and permissions constraints made performance tuning more important than in a normal web app.
- RAG quality depends on page capture and chunking, so dynamic content required careful processing.
- Semantic search adds latency, so reranking and local storage design needed to balance speed and retrieval quality.