OSS Tanbou

Open Notebook — bring a NotebookLM-style research workflow to infrastructure and AI models you control

OSS health 96
About these scores

Discovery score is an unbounded weighted, log-compressed index of stars, watchers, forks, and contributors. Growth momentum is its change over the observed period; OSS health is a 0–100 score from available repository recency, Community Health, and release data.

Stars
38,876
Primary language
TypeScript
License
MIT
Repository last updated
Sep 13, 2026

Overview

Open Notebook is an open-source AI research workspace for collecting PDFs, video, audio, web pages, and Office documents, then searching, summarizing, taking notes, chatting with context, and generating podcasts from that material. It positions itself as a Google NotebookLM alternative while supporting more than 18 AI providers, local models through Ollama or LM Studio, a REST API, and Docker-based self-hosting.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Collect PDFs, video, audio, web pages, and Office documents in one research workspace

The official README supports multimodal sources including PDFs, video, audio, web pages, and Office documents, then combines full-text search, vector search, context-aware chat, and AI-assisted notes. The result is not just file storage: it is a notebook-oriented workspace for retrieving, questioning, and transforming information across multiple sources.

Sources: [1]

Choose among 18+ AI providers and local model endpoints instead of staying with one vendor

Open Notebook documents support for OpenAI, Anthropic, Google, Groq, Mistral, DeepSeek, xAI, OpenRouter, and many others, plus Ollama, LM Studio, oMLX, and OpenAI-compatible endpoints. Provider capabilities differ across LLMs, embeddings, speech-to-text, and text-to-speech, and model configurations and default assignments are managed from the UI.

Sources: [1]

Extend source-grounded research with podcasts, transformations, citations, and a REST API

The README highlights podcast generation with one to four speaker profiles, custom and built-in content transformations, citation support, and a comprehensive REST API. That expands the NotebookLM-style source-chat pattern into reusable audio outputs and programmatic workflows that can be integrated with other systems.

Sources: [1]

Run Open Notebook and SurrealDB with Docker while keeping application data on your own storage

The official quick start launches SurrealDB and Open Notebook with Docker Compose, exposing the web UI on port 8502 and REST API on port 5055. notebook_data and surreal_data are persisted through bind mounts, and stored API keys are encrypted using OPEN_NOTEBOOK_ENCRYPTION_KEY. The README lists Python, Next.js, React, SurrealDB, and LangChain among the main implementation technologies.

Sources: [1][2]

A strong fit when you want NotebookLM-style research but control storage, model providers, and automation

Open Notebook suits users who want sensitive research material on infrastructure they manage, people who want source-grounded chat while comparing cloud and local models, and workflows that turn research into podcasts or automated processing. The REST API also makes it relevant when the notebook experience needs to become part of a larger internal research workflow.

Self-hosting the app does not guarantee local inference, and public deployments need hardened secrets and access control

Self-hosting Open Notebook does not make every AI request local. If OpenAI, Anthropic, or another cloud provider is selected, the chosen context and prompts are sent to that provider. A fully local path requires local endpoints such as Ollama or LM Studio and verification of the embedding and speech-processing routes as well.

The supplied docker-compose.yml defaults SurrealDB credentials to root:root for local setup and explicitly requires changing OPEN_NOTEBOOK_ENCRYPTION_KEY. SurrealDB port 8000 is bound to localhost, but the web UI and REST API are exposed on ports 8502 and 5055. Before network exposure, change database credentials, use a strong encryption key, and add the project's optional password protection or equivalent reverse-proxy access controls. The source code is MIT licensed.

Sources: [1][2][3]

Official sources

  1. [1]lfnovo/open-notebook — README(2026-09-15)
  2. [2]lfnovo/open-notebook — docker-compose.yml(2026-09-15)
  3. [3]lfnovo/open-notebook — LICENSE(2026-09-15)
Supplemental curator note

We selected Open Notebook because it extends the NotebookLM pattern with control over storage, AI providers, podcast generation, and a REST API. Self-hosting the application is not the same as keeping inference fully local, so sensitive deployments should review every selected model, embedding, and speech-processing route.

Try it in 3 steps

  1. 1

    Download the Compose file

    Download the docker-compose.yml used by the official README quick start.

    curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
  2. 2

    Change the encryption key

    Replace change-me-to-a-secret-string in docker-compose.yml with a strong value. Also change SURREAL_USER / SURREAL_PASSWORD before exposing the deployment to a network.

    OPEN_NOTEBOOK_ENCRYPTION_KEY=your-secret
  3. 3

    Start the services

    After 15–20 seconds open http://localhost:8502, then configure an AI provider or a local endpoint such as Ollama or LM Studio under Models.

    docker compose up -d
Check the official README

Growth

Growth trends · Last 30 days

38,876 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
48
Open PRs
17

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • assistant
  • learning
  • note-taking
  • notebook
  • notes-app
  • self-learning
Stars
38,876
Forks
4,496
Watchers
188
Open issues
95
Primary language
TypeScript
License
MIT
Repository last updated
Sep 13, 2026
Report incorrect information

Tell us if any listing information is incorrect or outdated.