返回目录
开源项目自动化与 Agent 类新手

GitHub - lfnovo/open-notebook: An Open Source implementation of Notebook LM with more flexibility and features

Open Notebook An open source, privacy-focused alternative to Google's Notebook LM! Join our Discord server for help, to share workflow ideas, and suggest features! Checkout our website » Follow @lfnovo on X for updates 📚 Get Started · 📖 User Guide · ✨

0 次阅读2026/09/10 发布
GitHub - lfnovo/open-notebook: An Open Source implementation of Notebook LM with more flexibility and features 来源图片

社区作者 · zZz

它解决什么问题

Open Notebook

An open source, privacy-focused alternative to Google's Notebook LM!

Join our Discord server for help, to share workflow ideas, and suggest features!

Checkout our website »

Follow @lfnovo on X for updates

📚 Get Started · 📖 User Guide · ✨ Features · 🚀 Deploy

Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

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

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 18+ 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, Russian, and Bengali support

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

🆚 Open Notebook vs Google Notebook LM

Feature Open Notebook Google Notebook LM Advantage

Privacy & Control Self-hosted, your data Google cloud only Complete data sovereignty

AI Provider Choice 18+ providers (OpenAI, Anthropic, Ollama, LM Studio, etc.) Google models only Flexibility and cost optimization

Podcast Speakers 1-4 speakers with custom profiles 2 speakers only Extreme flexibility

Content Transformations Custom and built-in Limited options Unlimited processing power

API Access Full REST API No API Complete automation

Deployment Docker, cloud, or local Google hosted only Deploy anywhere

Citations Basic references (will improve) Comprehensive with sources Research integrity

Customization Open source, fully customizable Closed system Unlimited extensibility

Cost Pay only for AI usage Free tier + Monthly subscription Transparent 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

🚀 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

Credentials default to root:root for a zero-config local setup. Before

exposing this instance to a network, set SURREAL_USER / SURREAL_PASSWORD

in a .env file (see .env.example) — they are applied here and to the

open_notebook service below, so the two always stay in sync.

List (exec) form so each interpolated value stays a single argument —

a password containing spaces would otherwise be split into several.

command : ["start", "--log", "info", "--user", "${SURREAL_USER:-root}", "--pass", "${SURREAL_PASSWORD:-root}", "rocksdb:/mydata/mydatabase.db"] user : root # Required for bind mounts on Linux ports :

Bound to localhost only: the open_notebook service reaches this over

the internal compose network regardless, so the host port is purely

for local debugging (e.g. Surrealist, surreal sql). Exposing this

on 0.0.0.0 would let anyone who can reach the host connect with the

default root:root credentials.

volumes :

  • " 127.0.0.1:8000:8000 "
可复制命令
./surreal_data:/mydata

environment :

可复制命令
SURREAL_EXPERIMENTAL_GRAPHQL=true

restart : always pull_policy : always

open_notebook : image : lfnovo/open_notebook:v1-latest ports :

environment :

  • " 8502:8502 " # Web UI
  • " 5055:5055 " # REST API

REQUIRED: Change this to your own secret string

This encrypts your API keys in the database

可复制命令
OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string

Database connection. SURREAL_USER / SURREAL_PASSWORD default to root:root

for local use; override them in a .env file before exposing the instance

(the same values configure the surrealdb service above).

可复制命令
SURREAL_URL=ws://surrealdb:8000/rpc
可复制命令
SURREAL_USER=${SURREAL_USER:-root}
可复制命令
SURREAL_PASSWORD=${SURREAL_PASSWORD:-root}
可复制命令
SURREAL_NAMESPACE=open_notebook
可复制命令
SURREAL_DATABASE=open_notebook

volumes :

可复制命令
./notebook_data:/app/data

depends_on :

restart : always pull_policy : always

  • surrealdb

Step 2

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

可复制命令
Go to Models and choose your provider (OpenAI, Anthropic, Google, etc.)
  • Click + Add Configuration
  • Paste your API key and other info as needed and click Add Configuration
  • Click Test to test connection
  • Click Sync Models and check models to include
  • Under Default Model Assignments , click Auto-Assign Defaults or manually specify which models to use for what

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

  • With Ollama (Free Local AI) - Run models locally without API costs
  • From Source (Developers) - For development and contributions
  • Complete Installation Guide - All deployment scenarios

📖 Need Help?

  • 🤖 AI Installation Assistant : CustomGPT to help you install
  • 🆘 Troubleshooting : 5-minute troubleshooting guide
  • 💬 Community Support : Discord Server
  • 🐛 Report Issues : GitHub Issues

Star History

Provider Support Matrix

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

Provider LLM Support Embedding Support Speech-to-Text Text-to-Speech

OpenAI ✅ ✅ ✅ ✅

Anthropic ✅ ❌ ❌ ❌

Groq ✅ ❌ ✅ ❌

Google (GenAI) ✅ ✅ ✅ ✅

Vertex AI ✅ ✅ ❌ ✅

Ollama ✅ ✅ ❌ ❌

oMLX ✅ ✅ ❌ ❌

Perplexity ✅ ❌ ❌ ❌

ElevenLabs ❌ ❌ ✅ ✅

Deepgram ❌ ❌ ✅ ✅

Azure OpenAI ✅ ✅ ✅ ✅

Mistral ✅ ✅ ✅ ✅

DeepSeek ✅ ❌ ❌ ❌

Cohere ✅ ✅ ❌ ❌

Voyage ❌ ✅ ❌ ❌

xAI ✅ ❌ ❌ ✅

OpenRouter ✅ ✅ ✅ ✅

DashScope (Qwen) ✅ ❌ ❌ ❌

MiniMax ✅ ❌ ❌ ❌

Novita ✅ ❌ ❌ ❌

PayPerQ (PPQ) ✅ ✅ ✅ ✅

OpenAI Compatible* ✅ ✅ ✅ ✅

*Supports LM Studio and any OpenAI-compatible endpoint. Prefer the native oMLX provider for oMLX (Apple Silicon); see docs/5-CONFIGURATION/omlx.md .

✨ 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 : 18+ 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
  • 🔐 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

📚 Documentation

Getting Started

  • 📖 Introduction - Learn what Open Notebook offers
  • ⚡ Quick Start with OpenAI - Get up and running in 5 minutes
  • 🔧 Installation - Comprehensive setup guide
  • 🎯 Run It Fully Local - Ollama/LM Studio, completely private

User Guide

  • 📱 Interface Overview - Understanding the layout
  • 📚 Notebooks, Sources & Notes - Organizing your research
  • 📄 Adding Sources - Managing content types
  • 📝 Working with Notes - Creating and managing notes
  • 💬 Chatting Effectively - AI conversations
  • 🔍 Search - Finding information

Advanced Topics

  • 🎙️ Podcast Generation - Create professional podcasts
  • 🔧 Content Transformations - Customize content processing
  • 🤖 AI Models - AI model configuration
  • 🔌 MCP Integration - Connect with Claude Desktop, VS Code and other MCP clients
  • 🔧 REST API Reference - Complete API documentation
  • 🔐 Security - Password protection and privacy
  • 🚀 Deployment - Complete deployment guides for all scenarios
  • 🧭 Vision & Principles - What Open Notebook is, and where it's going
  • 🛠️ Developer Docs - Architecture, setup, contributing, decision records

( back to top )

🗺️ 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 : 18+ 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

Explore GitHub Discussions for proposed features and product ideas, and open Issues for known bugs and approved work.

( back to top )

📖 Need Help?

  • 🤖 AI Installation Assistant : We have a CustomGPT built to help you install Open Notebook - it will guide you through each step!
  • New to Open Notebook? Start with our Getting Started Guide
  • Need installation help? Check our Installation Guide
  • Want to see it in action? Try our Quick Start Tutorial

🤝 Community & Contributing

Join the Community

  • 💬 Discord Server - Get help, share ideas, and connect with other users
  • 𝕏 Follow @lfnovo on X - Project updates and news from the maintainer
  • 💡 GitHub Discussions - Ask questions and shape features, product direction, design, and architecture
  • 🐛 GitHub Issues - Report reproducible bugs and find approved work
  • ⭐ 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, including our guidelines for AI-assisted contributions . To understand what we're building (and what we'll say no to), read VISION.md .

( back to top )

📄 License

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

Community Support :

  • 💬 Discord Server - Get help, share ideas, and connect with users
  • 𝕏 Follow @lfnovo on X - Project updates and news from the maintainer
  • 💡 GitHub Discussions - Ask questions and shape ideas
  • 🐛 GitHub Issues - Report reproducible bugs and find approved work
  • 🌐 Website - Learn more about the project

( back to top )

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

Pay only for AI usage Free tier + Monthly subscription Transparent and controllable Why Choose Open Notebook?

Built With 🚀 Quick Start (2 Minutes) Prerequisites

  • 🔒 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
可复制命令
Docker Desktop installed

Step 1: Get docker-compose.yml Option A: Download directly

  • That's it! (API keys configured later in the UI)
命令
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

Credentials default to root:root for a zero-config local setup. Before

exposing this instance to a network, set SURREAL_USER / SURREAL_PASSWORD

in a .env file (see .env.example) — they are applied here and to the

open_notebook service below, so the two always stay in sync.

List (exec) form so each interpolated value stays a single argument —

a password containing spaces would otherwise be split into several.

command : ["start", "--log", "info", "--user", "${SURREAL_USER:-root}", "--pass", "${SURREAL_PASSWORD:-root}", "rocksdb:/mydata/mydatabase.db"] user : root # Required for bind mounts on Linux ports :

Bound to localhost only: the open_notebook service reaches this over

the internal compose network regardless, so the host port is purely

for local debugging (e.g. Surrealist, surreal sql). Exposing this

on 0.0.0.0 would let anyone who can reach the host connect with the

default root:root credentials.

volumes :

  • " 127.0.0.1:8000:8000 "
可复制命令
./surreal_data:/mydata

environment :

可复制命令
SURREAL_EXPERIMENTAL_GRAPHQL=true

restart : always pull_policy : always open_notebook : image : lfnovo/open_notebook:v1-latest ports :

environment :

  • " 8502:8502 " # Web UI
  • " 5055:5055 " # REST API

REQUIRED: Change this to your own secret string

This encrypts your API keys in the database

可复制命令
OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string

Database connection. SURREAL_USER / SURREAL_PASSWORD default to root:root

for local use; override them in a .env file before exposing the instance

(the same values configure the surrealdb service above).

可复制命令
SURREAL_URL=ws://surrealdb:8000/rpc
可复制命令
SURREAL_USER=${SURREAL_USER:-root}
可复制命令
SURREAL_PASSWORD=${SURREAL_PASSWORD:-root}
可复制命令
SURREAL_NAMESPACE=open_notebook
可复制命令
SURREAL_DATABASE=open_notebook

volumes :

可复制命令
./notebook_data:/app/data

depends_on :

restart : always pull_policy : always

  • surrealdb

Step 2

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

可复制命令
Go to Models and choose your provider (OpenAI, Anthropic, Google, etc.)

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?

  • Click + Add Configuration
  • Paste your API key and other info as needed and click Add Configuration
  • Click Test to test connection
  • Click Sync Models and check models to include
  • Under Default Model Assignments , click Auto-Assign Defaults or manually specify which models to use for what
  • With Ollama (Free Local AI) - Run models locally without API costs
  • From Source (Developers) - For development and contributions
  • Complete Installation Guide - All deployment scenarios
  • 🤖 AI Installation Assistant : CustomGPT to help you install

来源教程配图

Logo
配图 1 · Logo查看原图
New Notebook
配图 2 · New Notebook查看原图
Star History Chart
配图 3 · Star History Chart查看原图
Check out our podcast sample
配图 4 · Check out our podcast sample查看原图

适用场景

学习研究
开源项目实践