[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
## 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 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
Learn more about our project at [https://www.open-notebook.ai](https://www.open-notebook.ai)
---
## β οΈ IMPORTANT: v1.0 Breaking Changes
**If you're upgrading from a previous version**, please note:
- π·οΈ **Docker tags have changed**: The `latest` tag is now **frozen** at the last Streamlit version
- π **Use `v1-latest` tag** for the new React/Next.js version (recommended)
- π **Port 5055 required**: You must expose port 5055 for the API to work
- π **Read the migration guide**: See [MIGRATION.md](MIGRATION.md) for detailed upgrade instructions
**New users**: You can ignore this notice and proceed with the Quick Start below using the `v1-latest-single` tag.
---
## π 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** | 16+ 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 |
| **Context Control** | 3 granular levels | All-or-nothing | Privacy and performance tuning |
| **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** | Comprehensive with sources | Basic references | Research integrity |
| **Customization** | Open source, fully customizable | Closed system | Unlimited extensibility |
| **Cost** | Pay only for AI usage | Monthly subscription + usage | 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
[![Python][Python]][Python-url] [![Next.js][Next.js]][Next-url] [![React][React]][React-url] [![SurrealDB][SurrealDB]][SurrealDB-url] [![LangChain][LangChain]][LangChain-url]
## π Quick Start
Ready to try Open Notebook? Choose your preferred method:
### β‘ Instant Setup (Recommended)
```bash
# Create a new directory for your Open Notebook installation
mkdir open-notebook
cd open-notebook
# Using Docker - Get started in 2 minutes
docker run -d \
--name open-notebook \
-p 8502:8502 -p 5055:5055 \
-v ./notebook_data:/app/data \
-v ./surreal_data:/mydata \
-e OPENAI_API_KEY=your_key \
lfnovo/open_notebook:v1-latest-single
```
**What gets created:**
```
open-notebook/
βββ notebook_data/ # Your notebooks and research content
βββ surreal_data/ # Database files
```
**Access your installation:**
- **π₯οΈ Main Interface**: http://localhost:8502 (Next.js UI)
- **π§ API Access**: http://localhost:5055 (REST API)
- **π API Documentation**: http://localhost:5055/docs (Interactive Swagger UI)
> **β οΈ Important**:
> 1. **Run from a dedicated folder**: Create and run this from inside a new `open-notebook` folder so your data volumes are properly organized
> 2. **Volume persistence**: The volumes (`-v ./notebook_data:/app/data` and `-v ./surreal_data:/mydata`) are essential to persist your data between container restarts. Without them, you'll lose all your notebooks and research when the container stops.
### π οΈ Full Installation
For development or customization:
```bash
git clone https://github.com/lfnovo/open-notebook
cd open-notebook
make start-all
```
### π Need Help?
- **π€ AI Installation Assistant**: We have a [CustomGPT built to help you install Open Notebook](https://chatgpt.com/g/g-68776e2765b48191bd1bae3f30212631-open-notebook-installation-assistant) - it will guide you through each step!
- **New to Open Notebook?** Start with our [Getting Started Guide](docs/getting-started/index.md)
- **Need installation help?** Check our [Installation Guide](docs/getting-started/installation.md)
- **Want to see it in action?** Try our [Quick Start Tutorial](docs/getting-started/quick-start.md)
## Provider Support Matrix
Thanks to the [Esperanto](https://github.com/lfnovo/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 | β
| β
| β | β |
| 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 [](http://localhost:5055/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
### Three-Column Interface
1. **Sources**: Manage all your research materials
2. **Notes**: Create manual or AI-generated notes
3. **Chat**: Converse with AI using your content as context
[](https://www.youtube.com/watch?v=D-760MlGwaI)
## π Documentation
### Getting Started
- **[π Introduction](docs/getting-started/introduction.md)** - Learn what Open Notebook offers
- **[β‘ Quick Start](docs/getting-started/quick-start.md)** - Get up and running in 5 minutes
- **[π§ Installation](docs/getting-started/installation.md)** - Comprehensive setup guide
- **[π― Your First Notebook](docs/getting-started/first-notebook.md)** - Step-by-step tutorial
### User Guide
- **[π± Interface Overview](docs/user-guide/interface-overview.md)** - Understanding the layout
- **[π Notebooks](docs/user-guide/notebooks.md)** - Organizing your research
- **[π Sources](docs/user-guide/sources.md)** - Managing content types
- **[π Notes](docs/user-guide/notes.md)** - Creating and managing notes
- **[π¬ Chat](docs/user-guide/chat.md)** - AI conversations
- **[π Search](docs/user-guide/search.md)** - Finding information
### Advanced Topics
- **[ποΈ Podcast Generation](docs/features/podcasts.md)** - Create professional podcasts
- **[π§ Content Transformations](docs/features/transformations.md)** - Customize content processing
- **[π€ AI Models](docs/features/ai-models.md)** - AI model configuration
- **[π§ REST API Reference](docs/development/api-reference.md)** - Complete API documentation
- **[π Security](docs/deployment/security.md)** - Password protection and privacy
- **[π Deployment](docs/deployment/index.md)** - Complete deployment guides for all scenarios
(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**: 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](https://github.com/lfnovo/open-notebook/issues) for a full list of proposed features and known issues.
(back to top)
## π€ Community & Contributing
### Join the Community
- π¬ **[Discord Server](https://discord.gg/37XJPXfz2w)** - Get help, share ideas, and connect with other users
- π **[GitHub Issues](https://github.com/lfnovo/open-notebook/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](CONTRIBUTING.md) for detailed information on how to get started.
(back to top)
## π License
Open Notebook is MIT licensed. See the [LICENSE](LICENSE) file for details.
## π Contact
**Luis Novo** - [@lfnovo](https://twitter.com/lfnovo)
**Community Support**:
- π¬ [Discord Server](https://discord.gg/37XJPXfz2w) - Get help, share ideas, and connect with users
- π [GitHub Issues](https://github.com/lfnovo/open-notebook/issues) - Report bugs and request features
- π [Website](https://www.open-notebook.ai) - Learn more about the project
## π Acknowledgments
Open Notebook is built on the shoulders of amazing open-source projects:
* **[Podcast Creator](https://github.com/lfnovo/podcast-creator)** - Advanced podcast generation capabilities
* **[Surreal Commands](https://github.com/lfnovo/surreal-commands)** - Background job processing
* **[Content Core](https://github.com/lfnovo/content-core)** - Content processing and management
* **[Esperanto](https://github.com/lfnovo/esperanto)** - Multi-provider AI model abstraction
* **[Docling](https://github.com/docling-project/docling)** - Document processing and parsing
(back to top)
[contributors-shield]: https://img.shields.io/github/contributors/lfnovo/open-notebook.svg?style=for-the-badge
[contributors-url]: https://github.com/lfnovo/open-notebook/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/lfnovo/open-notebook.svg?style=for-the-badge
[forks-url]: https://github.com/lfnovo/open-notebook/network/members
[stars-shield]: https://img.shields.io/github/stars/lfnovo/open-notebook.svg?style=for-the-badge
[stars-url]: https://github.com/lfnovo/open-notebook/stargazers
[issues-shield]: https://img.shields.io/github/issues/lfnovo/open-notebook.svg?style=for-the-badge
[issues-url]: https://github.com/lfnovo/open-notebook/issues
[license-shield]: https://img.shields.io/github/license/lfnovo/open-notebook.svg?style=for-the-badge
[license-url]: https://github.com/lfnovo/open-notebook/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/lfnovo
[product-screenshot]: images/screenshot.png
[Next.js]: https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=next.js&logoColor=white
[Next-url]: https://nextjs.org/
[React]: https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black
[React-url]: https://reactjs.org/
[Python]: https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white
[Python-url]: https://www.python.org/
[LangChain]: https://img.shields.io/badge/LangChain-3A3A3A?style=for-the-badge&logo=chainlink&logoColor=white
[LangChain-url]: https://www.langchain.com/
[SurrealDB]: https://img.shields.io/badge/SurrealDB-FF5E00?style=for-the-badge&logo=databricks&logoColor=white
[SurrealDB-url]: https://surrealdb.com/