back to home

lfnovo / open-notebook

An Open Source implementation of Notebook LM with more flexibility and features

19,871 stars
2,238 forks
113 issues
TypeScriptPythonJinja

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing lfnovo/open-notebook in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind-ai.vercel.app/repo/lfnovo/open-notebook)
Preview:Analyzed by RepoMind

Repository Summary (README)

Preview

<a id="readme-top"></a>

<!-- [![Contributors][contributors-shield]][contributors-url] -->

Forks Stargazers Issues MIT License

<!-- [![LinkedIn][linkedin-shield]][linkedin-url] --> <!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/lfnovo/open-notebook"> <img src="docs/assets/hero.svg" alt="Logo"> </a> <h3 align="center">Open Notebook</h3> <p align="center"> An open source, privacy-focused alternative to Google's Notebook LM! <br /><strong>Join our <a href="https://discord.gg/37XJPXfz2w">Discord server</a> for help, to share workflow ideas, and suggest features!</strong> <br /> <a href="https://www.open-notebook.ai"><strong>Checkout our website Β»</strong></a> <br /> <br /> <a href="docs/0-START-HERE/index.md">πŸ“š Get Started</a> Β· <a href="docs/3-USER-GUIDE/index.md">πŸ“– User Guide</a> Β· <a href="docs/2-CORE-CONCEPTS/index.md">✨ Features</a> Β· <a href="docs/1-INSTALLATION/index.md">πŸš€ Deploy</a> </p> </div> <p align="center"> <a href="https://trendshift.io/repositories/14536" target="_blank"><img src="https://trendshift.io/api/badge/repositories/14536" alt="lfnovo%2Fopen-notebook | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> </p> <div align="center"> <!-- Keep these links. Translations will automatically update with the README. --> <a href="https://zdoc.app/de/lfnovo/open-notebook">Deutsch</a> | <a href="https://zdoc.app/es/lfnovo/open-notebook">EspaΓ±ol</a> | <a href="https://zdoc.app/fr/lfnovo/open-notebook">franΓ§ais</a> | <a href="https://zdoc.app/ja/lfnovo/open-notebook">ζ—₯本θͺž</a> | <a href="https://zdoc.app/ko/lfnovo/open-notebook">ν•œκ΅­μ–΄</a> | <a href="https://zdoc.app/pt/lfnovo/open-notebook">PortuguΓͺs</a> | <a href="https://zdoc.app/ru/lfnovo/open-notebook">Русский</a> | <a href="https://zdoc.app/zh/lfnovo/open-notebook">δΈ­ζ–‡</a> </div>

A private, multi-model, 100% local, full-featured alternative to Notebook LM

New Notebook

In a world dominated by Artificial Intelligence, having the ability to think 🧠 and acquire new knowledge πŸ’‘, is a skill that should not be a privilege for a few, nor restricted to a single provider.

Open Notebook empowers you to:

  • πŸ”’ Control your data - Keep your research private and secure
  • πŸ€– Choose your AI models - Support for 16+ providers including OpenAI, Anthropic, Ollama, LM Studio, and more
  • πŸ“š Organize multi-modal content - PDFs, videos, audio, web pages, and more
  • πŸŽ™οΈ Generate professional podcasts - Advanced multi-speaker podcast generation
  • πŸ” Search intelligently - Full-text and vector search across all your content
  • πŸ’¬ Chat with context - AI conversations powered by your research
  • 🌐 Multi-language UI - English, Portuguese, Chinese (Simplified & Traditional), Japanese, and Russian support

Learn more about our project at https://www.open-notebook.ai


πŸ†š Open Notebook vs Google Notebook LM

FeatureOpen NotebookGoogle Notebook LMAdvantage
Privacy & ControlSelf-hosted, your dataGoogle cloud onlyComplete data sovereignty
AI Provider Choice16+ providers (OpenAI, Anthropic, Ollama, LM Studio, etc.)Google models onlyFlexibility and cost optimization
Podcast Speakers1-4 speakers with custom profiles2 speakers onlyExtreme flexibility
Content TransformationsCustom and built-inLimited optionsUnlimited processing power
API AccessFull REST APINo APIComplete automation
DeploymentDocker, cloud, or localGoogle hosted onlyDeploy anywhere
CitationsBasic references (will improve)Comprehensive with sourcesResearch integrity
CustomizationOpen source, fully customizableClosed systemUnlimited extensibility
CostPay only for AI usageFree tier + Monthly subscriptionTransparent and controllable

Why Choose Open Notebook?

  • πŸ”’ Privacy First: Your sensitive research stays completely private
  • πŸ’° Cost Control: Choose cheaper AI providers or run locally with Ollama
  • πŸŽ™οΈ Better Podcasts: Full script control and multi-speaker flexibility vs limited 2-speaker deep-dive format
  • πŸ”§ Unlimited Customization: Modify, extend, and integrate as needed
  • 🌐 No Vendor Lock-in: Switch providers, deploy anywhere, own your data

Built With

Python Next.js React SurrealDB LangChain

πŸš€ Quick Start (2 Minutes)

Prerequisites

  • Docker Desktop installed
  • That's it! (API keys configured later in the UI)

Step 1: Get docker-compose.yml

Option A: Download directly

curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml

Option B: Create the file manually Copy this into a new file called 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=root
      - SURREAL_NAMESPACE=open_notebook
      - SURREAL_DATABASE=open_notebook
    volumes:
      - ./notebook_data:/app/data
    depends_on:
      - surrealdb
    restart: always

Step 2: Set Your Encryption Key

Edit docker-compose.yml and change this line:

- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string

to any secret value (e.g., my-super-secret-key-123)

Step 3: Start Services

docker compose up -d

Wait 15-20 seconds, then open: http://localhost:8502

Step 4: Configure AI Provider

  1. Go to Settings β†’ API Keys
  2. Click Add Credential
  3. Choose your provider (OpenAI, Anthropic, Google, etc.)
  4. Paste your API key and click Save
  5. Click Test Connection β†’ Discover Models β†’ Register Models

Done! You're ready to create your first notebook.

Need an API key? Get one from: OpenAI Β· Anthropic Β· Google Β· Groq (free tier)

Want free local AI? See examples/docker-compose-ollama.yml for Ollama setup


πŸ“š More Installation Options


πŸ“– Need Help?


Star History

Star History Chart

Provider Support Matrix

Thanks to the Esperanto library, we support this providers out of the box!

ProviderLLM SupportEmbedding SupportSpeech-to-TextText-to-Speech
OpenAIβœ…βœ…βœ…βœ…
Anthropicβœ…βŒβŒβŒ
Groqβœ…βŒβœ…βŒ
Google (GenAI)βœ…βœ…βŒβœ…
Vertex AIβœ…βœ…βŒβœ…
Ollamaβœ…βœ…βŒβŒ
Perplexityβœ…βŒβŒβŒ
ElevenLabsβŒβŒβœ…βœ…
Azure OpenAIβœ…βœ…βŒβŒ
Mistralβœ…βœ…βŒβŒ
DeepSeekβœ…βŒβŒβŒ
VoyageβŒβœ…βŒβŒ
xAIβœ…βŒβŒβŒ
OpenRouterβœ…βŒβŒβŒ
OpenAI Compatible*βœ…βŒβŒβŒ

*Supports LM Studio and any OpenAI-compatible endpoint

✨ Key Features

Core Capabilities

  • πŸ”’ Privacy-First: Your data stays under your control - no cloud dependencies
  • 🎯 Multi-Notebook Organization: Manage multiple research projects seamlessly
  • πŸ“š Universal Content Support: PDFs, videos, audio, web pages, Office docs, and more
  • πŸ€– Multi-Model AI Support: 16+ providers including OpenAI, Anthropic, Ollama, Google, LM Studio, and more
  • πŸŽ™οΈ Professional Podcast Generation: Advanced multi-speaker podcasts with Episode Profiles
  • πŸ” Intelligent Search: Full-text and vector search across all your content
  • πŸ’¬ Context-Aware Chat: AI conversations powered by your research materials
  • πŸ“ AI-Assisted Notes: Generate insights or write notes manually

Advanced Features

  • ⚑ Reasoning Model Support: Full support for thinking models like DeepSeek-R1 and Qwen3
  • πŸ”§ Content Transformations: Powerful customizable actions to summarize and extract insights
  • 🌐 Comprehensive REST API: Full programmatic access for custom integrations API Docs
  • πŸ” Optional Password Protection: Secure public deployments with authentication
  • πŸ“Š Fine-Grained Context Control: Choose exactly what to share with AI models
  • πŸ“Ž Citations: Get answers with proper source citations

Podcast Feature

Check out our podcast sample

πŸ“š Documentation

Getting Started

User Guide

Advanced Topics

<p align="right">(<a href="#readme-top">back to top</a>)</p>

πŸ—ΊοΈ Roadmap

Upcoming Features

  • Live Front-End Updates: Real-time UI updates for smoother experience
  • Async Processing: Faster UI through asynchronous content processing
  • Cross-Notebook Sources: Reuse research materials across projects
  • Bookmark Integration: Connect with your favorite bookmarking apps

Recently Completed βœ…

  • Next.js Frontend: Modern React-based frontend with improved performance
  • Comprehensive REST API: Full programmatic access to all functionality
  • Multi-Model Support: 16+ AI providers including OpenAI, Anthropic, Ollama, LM Studio
  • Advanced Podcast Generator: Professional multi-speaker podcasts with Episode Profiles
  • Content Transformations: Powerful customizable actions for content processing
  • Enhanced Citations: Improved layout and finer control for source citations
  • Multiple Chat Sessions: Manage different conversations within notebooks

See the open issues for a full list of proposed features and known issues.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

πŸ“– Need Help?

🀝 Community & Contributing

Join the Community

  • πŸ’¬ Discord Server - Get help, share ideas, and connect with other users
  • πŸ› GitHub Issues - Report bugs and request features
  • ⭐ Star this repo - Show your support and help others discover Open Notebook

Contributing

We welcome contributions! We're especially looking for help with:

  • Frontend Development: Help improve our modern Next.js/React UI
  • Testing & Bug Fixes: Make Open Notebook more robust
  • Feature Development: Build the coolest research tool together
  • Documentation: Improve guides and tutorials

Current Tech Stack: Python, FastAPI, Next.js, React, SurrealDB Future Roadmap: Real-time updates, enhanced async processing

See our Contributing Guide for detailed information on how to get started.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

πŸ“„ License

Open Notebook is MIT licensed. See the LICENSE file for details.

Community Support:

  • πŸ’¬ Discord Server - Get help, share ideas, and connect with users
  • πŸ› GitHub Issues - Report bugs and request features
  • 🌐 Website - Learn more about the project
<p align="right">(<a href="#readme-top">back to top</a>)</p> <!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->