open-notebook
<a id="readme-top"></a> <!-- [![Contributors][contributors-shield]][contributors-url] --> [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url] <!-- [![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  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](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 [![Python][Python]][Python-url] [![Next.js][Next.js]][Next-url] [![React][React]][React-url] [![SurrealDB][SurrealDB]][SurrealDB-url] [![LangChain][LangChain]][LangChain-url] ## π Quick Start (2 Minutes) ### Prerequisites - [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed - That's it! (API keys configured later in the UI) ### Step 1: Get docker-compose.yml **Option A:** Download directly ```bash 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`: ```yaml 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: ```yaml - 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 ```bash 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](https://platform.openai.com/api-keys) Β· [Anthropic](https://console.anthropic.com/) Β· [Google](https://aistudio.google.com/) Β· [Groq](https://console.groq.com/) (free tier) > **Want free local AI?** See [examples/docker-compose-ollama.yml](examples/) for Ollama setup --- ### π More Installation Options - **[With Ollama (Free Local AI)](examples/docker-compose-ollama.yml)** - Run models locally without API costs - **[From Source (Developers)](docs/1-INSTALLATION/from-source.md)** - For development and contributions - **[Complete Installation Guide](docs/1-INSTALLATION/index.md)** - All deployment scenarios --- ### π Need Help? - **π€ AI Installation Assistant**: [CustomGPT to help you install](https://chatgpt.com/g/g-68776e2765b48191bd1bae3f30212631-open-notebook-installation-assistant) - **π Troubleshooting**: [5-minute troubleshooting guide](docs/6-TROUBLESHOOTING/quick-fixes.md) - **π¬ Community Support**: [Discord Server](https://discord.gg/37XJPXfz2w) - **π Report Issues**: [GitHub Issues](https://github.com/lfnovo/open-notebook/issues) --- ## Star History [](https://www.star-history.com/#lfnovo/open-notebook&type=date&legend=top-left) ## 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 | β | β | β | β | | Deepgram | β | β | β | β | | Azure OpenAI | β | β | β | β | | Mistral | β | β | β | β | | DeepSeek | β | β | β | β | | Voyage | β | β | β | β | | xAI | β | β | β | β | | OpenRouter | β | β | β | β | | DashScope (Qwen) | β | β | β | β | | MiniMax | β | β | β | β | | 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**: 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 [](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 ## Podcast Feature [](https://www.youtube.com/watch?v=D-760MlGwaI) ## π Documentation ### Getting Started - **[π Introduction](docs/0-START-HERE/index.md)** - Learn what Open Notebook offers - **[β‘ Quick Start](docs/0-START-HERE/quick-start.md)** - Get up and running in 5 minutes - **[π§ Installation](docs/1-INSTALLATION/index.md)** - Comprehensive setup guide - **[π― Your First Notebook](docs/0-START-HERE/first-notebook.md)** - Step-by-step tutorial ### User Guide - **[π± Interface Overview](docs/3-USER-GUIDE/interface-overview.md)** - Understanding the layout - **[π Notebooks](docs/3-USER-GUIDE/notebooks.md)** - Organizing your research - **[π Sources](docs/3-USER-GUIDE/sources.md)** - Managing content types - **[π Notes](docs/3-USER-GUIDE/notes.md)** - Creating and managing notes - **[π¬ Chat](docs/3-USER-GUIDE/chat.md)** - AI conversations - **[π Search](docs/3-USER-GUIDE/search.md)** - Finding information ### Advanced Topics - **[ποΈ Podcast Generation](docs/2-CORE-CONCEPTS/podcasts.md)** - Create professional podcasts - **[π§ Content Transformations](docs/2-CORE-CONCEPTS/transformations.md)** - Customize content processing - **[π€ AI Models](docs/4-AI-PROVIDERS/index.md)** - AI model configuration - **[π MCP Integration](docs/5-CONFIGURATION/mcp-integration.md)** - Connect with Claude Desktop, VS Code and other MCP clients - **[π§ REST API Reference](docs/7-DEVELOPMENT/api-reference.md)** - Complete API documentation - **[π Security](docs/5-CONFIGURATION/security.md)** - Password protection and privacy - **[π Deployment](docs/1-INSTALLATION/index.md)** - Complete deployment guides for all scenarios <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**: 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 See the [open issues](https://github.com/lfnovo/open-notebook/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? - **π€ 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/0-START-HERE/index.md) - **Need installation help?** Check our [Installation Guide](docs/1-INSTALLATION/index.md) - **Want to see it in action?** Try our [Quick Start Tutorial](docs/0-START-HERE/quick-start.md) ## π€ 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. <p align="right">(<a href="#readme-top">back to top</a>)</p> ## π License Open Notebook is MIT licensed. See the [LICENSE](LICENSE) file for details. **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 <p align="right">(<a href="#readme-top">back to top</a>)</p> <!-- MARKDOWN LINKS & IMAGES --> <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> [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/