Skip to content

monorepo for recall ai app that is a browser extension that captures web pages and converts them into a semantic knowledge graph, enabling search, visualization, and AI chat over your captured content.

Notifications You must be signed in to change notification settings

lewiscasewell/recall

Repository files navigation

Memory Web

A browser extension that converts webpages into a semantic knowledge graph. Built as a Turborepo monorepo.

Architecture

  • apps/extension - Browser extension (Chrome/Firefox) for capturing web pages
  • apps/backend - Python FastAPI service for processing pages, extracting entities/concepts, and building the graph
  • apps/dashboard - Next.js dashboard for visualizing the knowledge graph
  • packages/shared - Shared TypeScript types

Getting Started

Prerequisites

  • Bun (for JS/TS packages)
  • Python 3.11+ (for backend)
  • Docker (for PostgreSQL database)
  • OpenAI API key (for LLM and embeddings)

Quick Start

  1. Install dependencies:
# Install JS/TS dependencies
bun install

# Install Python dependencies
cd apps/backend
uv sync
cd ../..
  1. Set up environment variables (REQUIRED):
cd apps/backend
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY
# Get your API key from: https://platform.openai.com/api-keys

⚠️ IMPORTANT: The backend will not start without an OpenAI API key. This is required for:

  • Entity and concept extraction from pages
  • Vector embeddings for semantic search
  1. Start everything:
bun run dev

This will:

Manual Setup

If you prefer to start things manually:

# Start database
bun run db:up

# Run migrations
bun run db:migrate

# Start backend
cd apps/backend
uv run uvicorn app.main:app --reload --port 8000

# Start dashboard (in another terminal)
cd apps/dashboard
bun run dev

# Build extension (in another terminal)
cd apps/extension
bun run dev

Loading the Extension

  1. Build the extension:
cd apps/extension
bun run build
  1. Load in browser:
    • Chrome: chrome://extensions/ → Enable Developer mode → Load unpacked → Select apps/extension/dist
    • Firefox: about:debugging → This Firefox → Load Temporary Add-on → Select apps/extension/dist/manifest.json

Usage

  1. Navigate to any webpage
  2. Click the extension icon
  3. Click "Capture" - the page will be:
    • Extracted (clean text via Readability)
    • Processed (entities/concepts extracted via LLM)
    • Embedded (vector embeddings generated)
    • Stored (in PostgreSQL graph database)
  4. View in dashboard at http://localhost:3000
  5. Search and explore the knowledge graph

Project Structure

.
├── apps/
│   ├── extension/        # Browser extension
│   ├── backend/          # FastAPI backend
│   └── dashboard/        # Next.js dashboard
├── packages/
│   └── shared/          # Shared TypeScript types
├── docker-compose.yml    # PostgreSQL + pgvector
├── turbo.json           # Turborepo configuration
└── package.json         # Root package.json

Features

  • Page Capture: Browser extension captures HTML, URL, and timestamp
  • Content Extraction: Backend extracts clean article text using Readability
  • Entity/Concept Extraction: LLM extracts named entities and abstract concepts
  • Embeddings: Vector embeddings for semantic search (OpenAI)
  • Graph Storage: PostgreSQL with pgvector for graph storage
  • Visualization: Interactive graph visualization in dashboard
  • Search: Vector search with graph traversal

Development

  • bun run dev - Start everything (database + all apps)
  • bun run dev:apps - Start just the apps (assumes DB is running)
  • bun run build - Build all apps
  • bun run db:up - Start database
  • bun run db:down - Stop database
  • bun run db:migrate - Run database migrations

Environment Variables

Create apps/backend/.env with:

OPENAI_API_KEY=your_key_here
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/memory_web

License

MIT

About

monorepo for recall ai app that is a browser extension that captures web pages and converts them into a semantic knowledge graph, enabling search, visualization, and AI chat over your captured content.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •