Find a file
2026-05-13 15:42:54 +08:00
.github docs: deprecate single-container image in favor of Docker Compose 2026-04-06 08:10:32 -03:00
api chore: prepare online wechat deployment 2026-05-12 18:32:53 +08:00
commands feat: add external api integration 2026-05-12 09:59:05 +08:00
deploy/non-docker fix: preserve shared env during redeploy 2026-05-13 15:42:54 +08:00
dev-design feat: add MarkItDown content processing support 2026-04-28 16:32:16 +08:00
docs docs: add aliyun github deployment workflow 2026-05-13 14:48:23 +08:00
examples feat: add external api integration 2026-05-12 09:59:05 +08:00
frontend feat: add wechat web auth 2026-05-12 18:26:09 +08:00
open_notebook feat: add wechat web auth 2026-05-12 18:26:09 +08:00
prompts feat: add email auth flows and harden token verification (#6) 2026-04-24 18:58:40 +08:00
scripts Ensure dev admin initializes as admin 2026-05-05 13:03:08 +08:00
task 第二次提交 2026-04-16 20:22:14 +08:00
tests chore: prepare online wechat deployment 2026-05-12 18:32:53 +08:00
.dockerignore chore: post-i18n cleanup and version bump to 1.5.0 (#433) 2026-01-15 14:20:13 -03:00
.env.example feat: add wechat web auth 2026-05-12 18:26:09 +08:00
.gitignore chore: remove hermes local plans 2026-05-07 11:11:11 +08:00
.python-version forcing 3.12 as maximum python version to fix pydub issue 2025-04-26 06:23:31 -03:00
.worktreeinclude feat(ui): add command palette for quick navigation and search (#288) 2025-12-01 14:59:17 -03:00
AGENTS.md Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
aliyun-deploy.md docs: add aliyun github deployment workflow 2026-05-13 14:48:23 +08:00
CHANGELOG.md docs: update changelog for online release 2026-05-12 18:42:01 +08:00
CHANGELOG.zh-CN.md docs: update changelog for online release 2026-05-12 18:42:01 +08:00
CLAUDE.md chore: bump version to 1.8.1 2026-03-10 20:20:16 -05:00
CONFIGURATION.md docs: restructure documentation with new organized layout 2026-01-03 20:10:24 -03:00
CONTRIBUTING.md docs: restructure documentation with new organized layout 2026-01-03 20:10:24 -03:00
dev-init.sh Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
docker-compose.yml Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
Dockerfile fix: handle tiktoken network errors in offline environments (issue #264) 2026-03-10 19:45:14 -05:00
Dockerfile.single Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
history.txt feat: add external api integration 2026-05-12 09:59:05 +08:00
LICENSE Initial commit with all features 2024-10-21 14:56:10 -03:00
logo.png fix discord link 2025-04-24 10:14:59 -03:00
Makefile Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
mypy.ini Feat/localization tests docker (#371) 2026-01-15 13:51:05 -03:00
plan.md docs: simplify user collaboration plan 2026-05-05 11:50:29 +08:00
pyproject.toml feat: add MarkItDown content processing support 2026-04-28 16:32:16 +08:00
README.dev.md Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
README.md Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
run_api.py Refine backend architecture boundaries 2026-04-30 11:05:56 +08:00
supervisord.conf feat: 移除播客入口与STT/TTS配置,更新品牌标识并精简API日志 2026-04-12 16:04:34 +08:00
supervisord.single.conf Upgrade SurrealDB dev workflow to v3 2026-04-30 13:19:29 +08:00
uv.lock feat: add MarkItDown content processing support 2026-04-28 16:32:16 +08:00

Forks Stargazers Issues MIT License


Logo

Lumina (Open Notebook)

An open source, privacy-focused alternative to Google's Notebook LM!
View on GitHub »

📚 Get Started · 📖 User Guide · Features · 🚀 Deploy

lfnovo%2Fopen-notebook | Trendshift

New Notebook

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 this project at https://github.com/YinHour/lumina


🆚 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 Next.js React SurrealDB LangChain

🚀 Quick Start (2 Minutes)

Prerequisites

  • Docker Desktop installed
  • That's it! (API keys configured later in the UI)

Step 1: Get docker-compose.yml

Option A: Download directly

curl -o docker-compose.yml https://raw.githubusercontent.com/YinHour/lumina/main/docker-compose.yml

Option B: Create the file manually Copy this into a new file called docker-compose.yml:

services:
  surrealdb:
    image: surrealdb/surrealdb:v3.0.5
    command: start --log info --user root --pass root --bind 0.0.0.0:8000 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=***
      - 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:

- 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

docker compose up -d

Wait 15-20 seconds, then open: http://localhost:8502

Step 4: Configure AI Provider

  1. Go to SettingsAPI Keys
  2. Click Add Credential
  3. Choose your provider (OpenAI, Anthropic, Google, etc.)
  4. Paste your API key and click Save
  5. Click Test ConnectionDiscover ModelsRegister Models

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


📖 Need Help?


Star History

Star History Chart

Provider Support Matrix

Thanks to the 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
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 API Docs
  • 🔐 Built-in Authentication: Username/password login, JWT sessions, password change, and optional self-registration flows
  • 📊 Fine-Grained Context Control: Choose exactly what to share with AI models
  • 📎 Citations: Get answers with proper source citations
  • 🕸️ Web Search Integration: Real-time联网搜索 powered by Tavily search API
  • 🗺️ Knowledge Graph Extraction: Automatic entity and relationship extraction from sources
  • 📄 MinerU Integration: Enhanced PDF parsing with MinerU for complex document layouts

Podcast Feature

Check out our podcast sample

📚 Documentation

Getting Started

User Guide

Advanced Topics

(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

  • Knowledge Graph Extraction: Automatic entity and relationship extraction from sources
  • MinerU Integration: Enhanced PDF parsing for complex document layouts
  • Web Search Integration: Real-time联网搜索 via Tavily API
  • 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 for a full list of proposed features and known issues.

(back to top)

📖 Need Help?

🤝 Community & Contributing

Join the Community

  • 💬 Discord - Get help, share ideas, and connect with other users
  • 🐛 GitHub Issues - Report bugs and request features
  • Star this repo - Show your support and help others discover this project

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 Lumina more robust
  • Feature Development: Build the coolest research tool together
  • Documentation: Improve guides and tutorials

Current Tech Stack: Python, FastAPI, Next.js 16, React 19, SurrealDB Future Roadmap: Real-time updates, enhanced async processing

See our Contributing Guide for detailed information on how to get started.

(back to top)

📄 License

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

Community Support:

  • 💬 Discord - Get help, share ideas, and connect with users
  • 🐛 GitHub Issues - Report bugs and request features
  • 🌐 GitHub Repository - View source code and releases

(back to top)