Skip to main content
Nguyen Ngoc Han
ProfileProjectsActivityContact
← Activity
Avatar Nguyen Ngoc Han
Nguyen Ngoc Han
11 October at 12:27·

NotebookE

A private AI research and media workspace that runs on your PC

NotebookE notebook library

NotebookE turns your documents, links, audio, and video into a searchable knowledge base. Ask questions with source context, organize research in notebooks, and create narrated podcasts or videos from the same material.

The system supports local AI through Ollama and OpenAI-compatible servers alongside cloud providers. Your frontend, API, database, background worker, Edge TTS narration, and video workflow can all run on your own computer.

NotebookE empowers you to:

  • 🔒 Control your data - Keep your research private and secure
  • 🤖 Use local or cloud AI - Connect Ollama, LM Studio, OpenAI-compatible endpoints, Google, OpenAI, Anthropic, and more
  • 📚 Organize multi-modal content - PDFs, videos, audio, web pages, and more
  • 🎙️ Generate multi-speaker podcasts - Reusable episode profiles, Eric and Luna presenters, live progress, outline tracking, and downloadable audio
  • 🎬 Create videos on your PC - Build scripts, scenes, captions, visuals, narration, and final video from notebook content
  • 🗣️ Use Edge TTS narration - Vietnamese voices with improved English technical pronunciation for podcasts and videos
  • 🔍 Search intelligently - Full-text and vector search across all your content
  • 💬 Chat with context - Stream answers from selected models, keep conversation history, and stop generation at any time
  • ⚡ See updates without refreshing - Podcast and video jobs update in real time while background workers process them
  • 🌐 Use a multilingual UI - Vietnamese, English, and other supported interface languages

See NotebookE in action

Notebook workspaceAsk and Search
Chat with a NotebookE notebookAsk and Search across the knowledge base
Podcast productionVideo production
Podcast generation and episode managementLocal AI video generation and management

How the system works

Next.js web app :3000
        ↓
FastAPI service :5055
        ↓
SurrealDB :8000  +  background command worker
        ↓
Local/cloud LLMs  ·  Edge TTS  ·  Podcast pipeline  ·  Video pipeline

🆚 NotebookE vs Google Notebook LM

FeatureNotebookEGoogle Notebook LMAdvantage
Privacy & ControlSelf-hosted, your dataGoogle cloud onlyComplete data sovereignty
AI Provider ChoiceLocal and cloud models, including Ollama and OpenAI-compatible APIsGoogle models onlyFlexibility and local processing
Podcast Speakers1-4 speakers with custom profiles2 speakers onlyExtreme flexibility
Video GenerationScript, scenes, visuals, captions, Edge TTS, and final renderingLimitedA complete research-to-video workflow on your PC
Content TransformationsCustom and built-inLimited optionsUnlimited processing power
API AccessFull REST APINo APIComplete automation
DeploymentDocker, cloud, or localGoogle hosted onlyDeploy anywhere
CitationsBasic references (will improve)Comprehensive with sourcesResearch integrity
CustomizationOpen source, fully customizableClosed systemUnlimited extensibility
CostPay only for AI usageFree tier + Monthly subscriptionTransparent and controllable

Why Choose NotebookE?

  • 🔒 Privacy First: Your sensitive research stays completely private
  • 💰 Cost Control: Choose a cloud provider or run compatible models locally
  • 🎙️ Podcast and Video Creation: Reuse your notebook context to produce scripts, speech, and rendered media
  • 🔧 Unlimited Customization: Modify, extend, and integrate as needed
  • 🌐 No Vendor Lock-in: Switch providers, deploy anywhere, own your data

Built With

Python Next.js React SurrealDB LangChain

🚀 Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 20+
  • Docker Desktop for SurrealDB
  • FFmpeg for Podcast and Video rendering
  • An AI provider, or a local model server such as Ollama or LM Studio

Step 1: Clone and install

git clone https://github.com/Meranh05/NotebookE.git
cd NotebookE
uv sync
cd frontend && npm install && cd ..

Step 2: Configure the environment

Copy .env.example to .env, set OPEN_NOTEBOOK_ENCRYPTION_KEY, and configure any provider credentials you need. Provider models can also be added later from Models in the web interface.

Step 3: Start NotebookE

Start each service in dependency order:

make database
make api
make worker-start
make frontend

Or start the complete local stack:

make start-all

Open http://localhost:3000. The API runs at http://localhost:5055 and SurrealDB at http://localhost:8000.

The background worker is required for source processing, embeddings, Podcasts, and Videos. Jobs remain queued if the worker is not running.

Docker deployment

For a container-based installation, download the project compose file:

curl -o docker-compose.yml https://raw.githubusercontent.com/Meranh05/NotebookE/main/docker-compose.yml

Set OPEN_NOTEBOOK_ENCRYPTION_KEY in .env, then start the containers:

docker compose up -d

Use docker compose logs -f to follow startup and migration progress. See the installation guide for local AI, storage, and production deployment options.

Configure an AI provider

  1. Go to Models and choose your provider (OpenAI, Anthropic, Google, etc.)
  2. Click + Add Configuration
  3. Paste your API key and other info as needed and click Add Configuration
  4. Click Test to test connection
  5. Click Sync Models and check models to include
  6. Assign the chat, transformation, embedding, and optional media models you want to use

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

Provider Support Matrix

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

ProviderLLM SupportEmbedding SupportSpeech-to-TextText-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
  • 🎬 Local Video Production: Generate structured scenes, captions, visuals, Edge TTS narration, and rendered videos
  • 🔍 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
  • ⚡ Live Job Updates: Follow Podcast and Video generation without reloading the page

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 API 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 and Video Creation

NotebookE uses the same notebook context for both media workflows. Podcast generation supports reusable speaker and episode profiles, while Video generation turns research into planned scenes with synchronized narration and captions. Both workflows run as background jobs and update the interface as progress changes.

NotebookE local video workspace

📚 Documentation

Getting Started

  • 📖 Introduction - Learn what NotebookE 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 NotebookE is, and where it's going
  • 🛠️ Developer Docs - Architecture, setup, contributing, decision records

🗺️ Roadmap

Upcoming Features

  • Cross-Notebook Sources: Reuse research materials across projects
  • Bookmark Integration: Connect with your favorite bookmarking apps
  • More Video Templates: Expand reusable landscape and vertical storytelling styles
  • Richer Citations: Improve source-level evidence in chat, search, and generated media

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
  • Local Video Workflow: Script planning, visual generation, captions, Edge TTS, and rendering
  • Live Front-End Updates: Podcast and Video progress refreshes without a full page reload
  • Async Processing: Background workers keep long-running AI and media tasks responsive
  • 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

📖 Need Help?

  • 🤖 AI Installation Assistant: We have a CustomGPT built to help you install NotebookE - it will guide you through each step!
  • New to NotebookE? 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
  • 💡 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 NotebookE

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 NotebookE 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.

📄 License

NotebookE is MIT licensed. See the LICENSE file for details.

↗ https://github.com/Ericismee/NotebookE

About the author

Avatar Nguyen Ngoc Han
Nguyen Ngoc Han

Software Engineer

Explore my experience, projects and source code.

View profile →GitHub →
—
ProfileProjectsActivityContact