Open Notebook

Repo: github.com/lfnovo/open-notebook Stars: 31,023 ⭐ License: MIT Language: TypeScript Website: https://www.open-notebook.ai

An open source, privacy-focused alternative to Google’s Notebook LM — self-hosted, full-featured, with 18+ AI providers.


Key Differentiators vs Google Notebook LM

FeatureOpen NotebookGoogle Notebook LM
PrivacySelf-hosted, your dataGoogle cloud only
AI Provider18+ (OpenAI, Anthropic, Ollama, LM Studio…)Google models only
Podcast Speakers1–4 with custom profiles2 speakers only
TransformationsCustom and built-inLimited options
API AccessFull REST APINo API

Supported Providers (18+)

OpenAI, Anthropic, Groq, Google (GenAI), Vertex AI, Ollama, Perplexity, ElevenLabs, Deepgram, Azure OpenAI, Mistral, DeepSeek, Voyage, xAI, OpenRouter, DashScope (Qwen), MiniMax, OpenAI Compatible (LM Studio, any OpenAI endpoint)

Core Features

  • 🔒 Privacy-First — no cloud dependency, data stays on your infra
  • 🎯 Multi-Notebook — organize multiple research projects
  • 📚 Universal Content — PDFs, videos, audio, web pages, Office docs
  • 🎙️ Professional Podcasts — multi-speaker with Episode Profiles (1–4 speakers)
  • 🔍 Intelligent Search — full-text + vector search across all content
  • 💬 Context-Aware Chat — AI conversations grounded in your research
  • 📝 AI-Assisted Notes — generate insights or write manually
  • ⚡ Reasoning Models — DeepSeek-R1, Qwen3, etc.
  • 🔧 Content Transformations — customizable actions to summarize/extract
  • 🌐 REST API — full programmatic access
  • 🔐 Password Protection — for public deployments
  • 📎 Source Citations — answers cite source material
  • 🌍 Multi-Language UI — English, Portuguese, Chinese, Japanese, Russian, Bengali

Quick Deploy (Docker)

# docker-compose.yml
services:
  surrealdb:
    image: surrealdb/surrealdb:v2
    command: start --log info --user root --pass root rocksdb:/mydata/mydatabase.db
    user: root
    ports:
      - "8000:8000"
    volumes:
      - ./surreal_data:/mydata
    restart: always
  open_notebook:
    image: lfnovo/open_notebook:v1-latest
    ports:
      - "8502:8502"
      - "5055:5055"
    environment:
      - OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
      - SURREAL_URL=ws://surrealdb:8000/rpc
      - SURREAL_USER=root
      - SURREAL_PASSWORD=***
      - SURREAL_NAMESPACE=open_notebook
      - SURREAL_DATABASE=open_notebook
    volumes:
      - ./notebook_data:/app/data
    depends_on:
      - surrealdb
    restart: always
# Start
docker compose up -d
# Open http://localhost:8502

Powered by SurrealDB as the backing store and Esperanto library for provider abstraction.