Overview
Open Notebook is an open-source AI research workspace for collecting PDFs, video, audio, web pages, and Office documents, then searching, summarizing, taking notes, chatting with context, and generating podcasts from that material. It positions itself as a Google NotebookLM alternative while supporting more than 18 AI providers, local models through Ollama or LM Studio, a REST API, and Docker-based self-hosting.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Collect PDFs, video, audio, web pages, and Office documents in one research workspace
The official README supports multimodal sources including PDFs, video, audio, web pages, and Office documents, then combines full-text search, vector search, context-aware chat, and AI-assisted notes. The result is not just file storage: it is a notebook-oriented workspace for retrieving, questioning, and transforming information across multiple sources.
Sources: [1]
Choose among 18+ AI providers and local model endpoints instead of staying with one vendor
Open Notebook documents support for OpenAI, Anthropic, Google, Groq, Mistral, DeepSeek, xAI, OpenRouter, and many others, plus Ollama, LM Studio, oMLX, and OpenAI-compatible endpoints. Provider capabilities differ across LLMs, embeddings, speech-to-text, and text-to-speech, and model configurations and default assignments are managed from the UI.
Sources: [1]
Extend source-grounded research with podcasts, transformations, citations, and a REST API
The README highlights podcast generation with one to four speaker profiles, custom and built-in content transformations, citation support, and a comprehensive REST API. That expands the NotebookLM-style source-chat pattern into reusable audio outputs and programmatic workflows that can be integrated with other systems.
Sources: [1]
Run Open Notebook and SurrealDB with Docker while keeping application data on your own storage
The official quick start launches SurrealDB and Open Notebook with Docker Compose, exposing the web UI on port 8502 and REST API on port 5055. notebook_data and surreal_data are persisted through bind mounts, and stored API keys are encrypted using OPEN_NOTEBOOK_ENCRYPTION_KEY. The README lists Python, Next.js, React, SurrealDB, and LangChain among the main implementation technologies.
A strong fit when you want NotebookLM-style research but control storage, model providers, and automation
Open Notebook suits users who want sensitive research material on infrastructure they manage, people who want source-grounded chat while comparing cloud and local models, and workflows that turn research into podcasts or automated processing. The REST API also makes it relevant when the notebook experience needs to become part of a larger internal research workflow.
Self-hosting the app does not guarantee local inference, and public deployments need hardened secrets and access control
Self-hosting Open Notebook does not make every AI request local. If OpenAI, Anthropic, or another cloud provider is selected, the chosen context and prompts are sent to that provider. A fully local path requires local endpoints such as Ollama or LM Studio and verification of the embedding and speech-processing routes as well.
The supplied docker-compose.yml defaults SurrealDB credentials to root:root for local setup and explicitly requires changing OPEN_NOTEBOOK_ENCRYPTION_KEY. SurrealDB port 8000 is bound to localhost, but the web UI and REST API are exposed on ports 8502 and 5055. Before network exposure, change database credentials, use a strong encryption key, and add the project's optional password protection or equivalent reverse-proxy access controls. The source code is MIT licensed.
Official sources
- [1]lfnovo/open-notebook — README(2026-09-15)
- [2]lfnovo/open-notebook — docker-compose.yml(2026-09-15)
- [3]lfnovo/open-notebook — LICENSE(2026-09-15)
Supplemental curator note
We selected Open Notebook because it extends the NotebookLM pattern with control over storage, AI providers, podcast generation, and a REST API. Self-hosting the application is not the same as keeping inference fully local, so sensitive deployments should review every selected model, embedding, and speech-processing route.
Try it in 3 steps
- 1
Download the Compose file
Download the docker-compose.yml used by the official README quick start.
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml - 2
Change the encryption key
Replace change-me-to-a-secret-string in docker-compose.yml with a strong value. Also change SURREAL_USER / SURREAL_PASSWORD before exposing the deployment to a network.
OPEN_NOTEBOOK_ENCRYPTION_KEY=your-secret - 3
Start the services
After 15–20 seconds open http://localhost:8502, then configure an AI provider or a local endpoint such as Ollama or LM Studio under Models.
docker compose up -d
Growth
Growth trends · Last 30 days
38,876 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 48
- Open PRs
- 17
Development activity is still being collected.
Built with
Categories and tags
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- assistant
- learning
- note-taking
- notebook
- notes-app
- self-learning
- Stars
- 38,876
- Forks
- 4,496
- Watchers
- 188
- Open issues
- 95
- Primary language
- TypeScript
- License
- MIT
- Repository last updated
- Sep 13, 2026
Explore next
- OpenClaw389,730 Stars
A persistent personal AI assistant platform spanning channels, tools, memory, and schedules.
TypeScript - Hermes Agent245,655 Stars
A persistent AI agent with memory, skills, cron jobs, subagents, and multiple terminal backends.
Python - n8n204,350 Stars
A fair-code platform combining a visual canvas and code for service integrations, workflows, and AI agents.
TypeScript - TensorFlow200,091 Stars
An end-to-end machine-learning platform connecting research, training, evaluation, visualization, and deployment.
C++ - Oh My Zsh189,729 Stars
A community framework for managing Zsh configuration through plugins, themes, and an update mechanism.
Shell
Report incorrect information
Tell us if any listing information is incorrect or outdated.