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
| Feature | Open Notebook | Google Notebook LM |
|---|---|---|
| Privacy | Self-hosted, your data | Google cloud only |
| AI Provider | 18+ (OpenAI, Anthropic, Ollama, LM Studio…) | Google models only |
| Podcast Speakers | 1–4 with custom profiles | 2 speakers only |
| Transformations | Custom and built-in | Limited options |
| API Access | Full REST API | No 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:8502Powered by SurrealDB as the backing store and Esperanto library for provider abstraction.
Links
- GitHub
- Discord
- Website
- Installation Guide
- API Docs (local)