Open Notebook is a privacy-focused, open-source AI-powered research and note-taking platform designed for researchers, students, and independent thinkers who want full control over their data and AI models. It replaces proprietary tools like Google Notebook LM by enabling local or self-hosted deployment with support for multiple AI providers, multi-modal content, and advanced AI-assisted workflows. Built for users who value data sovereignty and customization, it eliminates vendor lock-in while offering enterprise-grade features like REST APIs and multi-speaker podcast generation.
The platform is built with Next.js, React, and SurrealDB for data persistence, and leverages LangChain for AI orchestration. It supports Docker-based deployment with optional Ollama integration for fully local, cost-free AI inference. Users can manage PDFs, videos, web pages, and audio files, then interact with them via AI chat, intelligent search, or automated transformationsâall without sending data to third-party clouds.
What You Get
- đ Privacy-First Architecture - All data is stored locally or on your own server; no cloud dependencies or data leaks to Big Tech.
- đ¤ Multi-Model AI Support - Connect to 16+ LLM providers including OpenAI, Anthropic, Ollama, Google GenAI, Groq, Azure OpenAI, and LM Studio via a unified interface.
- đď¸ Professional Podcast Generator - Create multi-speaker podcasts with custom voice profiles, episode scripts, and audio output from your notes and research.
- đ Universal Content Support - Import and process PDFs, YouTube videos, audio files, web pages, PowerPoint, TXT, and Office documents into searchable knowledge bases.
- đ Intelligent Search - Perform full-text and vector-based semantic search across all your imported content to find insights instantly.
- đŹ Context-Aware Chat - Ask questions about your notes and research materials with AI that references your exact documents, not generic web data.
- đ Content Transformations - Apply custom or built-in AI actions to summarize, extract key points, or restructure content for better retention.
- ⥠Reasoning Model Support - Use advanced reasoning models like DeepSeek-R1 and Qwen3 for deeper analysis and critical thinking tasks.
- đ Full REST API - Programmatically access all features via a documented API (hosted at /docs) for automation and custom integrations.
- đ Optional Password Protection - Secure public deployments with authentication to control who can access your notebooks.
Common Use Cases
- Researching academic papers - A graduate student imports 50+ PDFs on climate policy, uses vector search to find contradictions, and generates AI summaries to accelerate literature review.
- Building a personal knowledge base - A self-taught programmer saves YouTube tutorials, blog posts, and code snippets into Open Notebook, then chats with AI to clarify concepts and generate flashcards.
- Creating educational podcasts - A university professor turns lecture notes into multi-speaker podcasts with custom voices, distributing them to students without relying on Spotify or YouTube algorithms.
- Managing a private research project - A journalist collects sensitive sources, uses local Ollama models to analyze them, and generates annotated notesâall without exposing data to cloud providers.
Under The Hood
Architecture
- Modular monorepo structure with clear separation between Python backend and Next.js frontend, organized into dedicated domains for API routes, business logic, and UI components
- Service-layer design with encapsulated components like NotebookService and EmbeddingService that rely on abstract interfaces, enabling flexible substitution of underlying implementations
- Dependency injection via LangGraph stateful agents and provider annotations that decouple LLM backends from core logic, supporting pluggable models without code duplication
- REST API endpoints structured around resources with consistent DTOs and middleware-based authentication, ensuring predictable and secure access patterns
- Docker multi-stage builds that isolate build-time tooling from runtime environments, with supervisord orchestrating concurrent frontend and API processes
Tech Stack
- Python 3.12 backend powered by FastAPI and Pydantic, integrated with LangChain ecosystem for AI workflow orchestration and Loguru for structured logging
- SurrealDB v2 as the graph-aware database with GraphQL and WebSocket RPC support, managed through dedicated command utilities
- Next.js 14 frontend built with TypeScript, leveraging React Server Components, TanStack Query, Zod, and React Hook Form for stateful, performant UI interactions
- Multi-stage Docker builds using uv and Node.js 20.x, with CI/CD pipelines automating cross-platform builds and multi-registry deployments
- Comprehensive tooling including MyPy for type safety, Ruff for linting, and Vitest/pytest for unified testing across frontend and backend
Code Quality
- Extensive test coverage spanning unit, integration, and API layers with robust mocking of external dependencies like auth systems and AI models
- Strong domain-driven design with business logic isolated from HTTP layers, enabling focused testing and maintainable evolution
- Robust error handling with custom exceptions and precise validation rules that balance security with usability in self-hosted contexts
- Consistent, descriptive naming conventions across all layers, improving readability and onboarding for new contributors
- Strict type safety enforced end-to-end via TypeScript and Pydantic, reinforced by linting and structured test patterns that validate behavior and edge cases
What Makes It Unique
- Dynamically resolves BCP 47 locales using CLDR subtags to generate regionally accurate language options, supporting dialects like pt_PT and en_IN with proper display names
- Implements a wizard-driven ingestion system that seamlessly chains source input, transformation, and notebook creation in a single cohesive flow
- Embeds transformation pipelines directly into the ingestion process, allowing content summarization and filtering before embeddingâuncommon in note-taking systems
- Uses React Server Components alongside client hooks to optimize data fetching and state management across multi-step forms without full page reloads
- Treats notes, sources, and embeddings as session-aware first-class entities, enabling persistent conversational context rather than isolated snippets
- Integrates localization natively into the data pipeline, ensuring semantic consistency between user input, processing, and retrieval across global dialects