This release resolves public npm Kit/native 0.19.2 in the frozen lockfile, with SDK 0.21.0 and App Tools 0.12.0. Launch the installed Catalog App through Nimi Home in either the supported production environment or the macOS source-development environment. The App always loads its own packaged native carrier. Source Runtime peer identity and installed-App/session admission remain verified; no workspace carrier replacement or trust-check bypass is used.
Catalog AI acceptance passed on macOS arm64 using the actual 1.14.5 Release admitted by Registry PR #77, downloaded and launched through source Nimi Home. Created a source and notebook, completed embedding and a dense summary, and obtained a source-cited answer containing Runtime Bridge, BLUEBIRD-743 and Kit 0.19.2. Generated a three-segment podcast through Nimi, played it in the App and exported a 241.52-second MP3. Notebook, source and completed episode survived a Home-supervised restart. The generated episode exceeded the requested 90 seconds; generation success does not certify factual accuracy or duration adherence.
Local screenshots and exported results are in .nimi/local/released-dependencies-20261012/. Windows interactive acceptance and other unrun AI modalities remain NOT-VERIFIED. These results supersede the earlier Catalog limitation; historical results below retain their stated versions.
This work adapts lfnovo/open-notebook
from commit 3127f14ea9dbb519f0e4ddc64a0742ca644ba6ef (1.14.0). The upstream
MIT license and research workflows remain. Current implementation and verification
are recorded in the Nimi development guide.
The sections below preserve upstream documentation; use the Nimi guide for this adaptation.
An open source, privacy-focused alternative to Google's Notebook LM!
Join our Discord server for help, to share workflow ideas, and suggest features!
Checkout our website Β»
Follow @lfnovo on X for updates
π Get Started
Β·
π User Guide
Β·
β¨ Features
Β·
π Deploy
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
| 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
- Docker Desktop installed
- That's it! (API keys configured later in the UI)
Option A: Download directly
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.ymlOption B: Create the file manually
Copy this into a new file called docker-compose.yml:
services:
surrealdb:
image: surrealdb/surrealdb:v2
# Credentials default to root:root for a zero-config local setup. Before
# exposing this instance to a network, set SURREAL_USER / SURREAL_PASSWORD
# in a .env file (see .env.example) β they are applied here and to the
# open_notebook service below, so the two always stay in sync.
# List (exec) form so each interpolated value stays a single argument β
# a password containing spaces would otherwise be split into several.
command: ["start", "--log", "info", "--user", "${SURREAL_USER:-root}", "--pass", "${SURREAL_PASSWORD:-root}", "rocksdb:/mydata/mydatabase.db"]
user: root # Required for bind mounts on Linux
ports:
# Bound to localhost only: the open_notebook service reaches this over
# the internal compose network regardless, so the host port is purely
# for local debugging (e.g. Surrealist, `surreal sql`). Exposing this
# on 0.0.0.0 would let anyone who can reach the host connect with the
# default root:root credentials.
- "127.0.0.1:8000:8000"
volumes:
- ./surreal_data:/mydata
environment:
- SURREAL_EXPERIMENTAL_GRAPHQL=true
restart: always
pull_policy: always
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502" # Web UI
- "5055:5055" # REST API
environment:
# REQUIRED: Change this to your own secret string
# This encrypts your API keys in the database
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
# Database connection. SURREAL_USER / SURREAL_PASSWORD default to root:root
# for local use; override them in a .env file before exposing the instance
# (the same values configure the surrealdb service above).
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=${SURREAL_USER:-root}
- SURREAL_PASSWORD=${SURREAL_PASSWORD:-root}
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
depends_on:
- surrealdb
restart: always
pull_policy: alwaysEdit docker-compose.yml and change this line:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-stringto any secret value (e.g., my-super-secret-key-123)
docker compose up -dWait 15-20 seconds, then open: http://localhost:8502
- Go to Models and choose your provider (OpenAI, Anthropic, Google, etc.)
- Click + Add Configuration
- Paste your API key and other info as needed and click Add Configuration
- Click Test to test connection
- Click Sync Models and check models to include
- Under Default Model Assignments, click Auto-Assign Defaults or manually specify which models to use for what
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
- With Ollama (Free Local AI) - Run models locally without API costs
- From Source (Developers) - For development and contributions
- Complete Installation Guide - All deployment scenarios
- π€ AI Installation Assistant: CustomGPT to help you install
- π Troubleshooting: 5-minute troubleshooting guide
- π¬ Community Support: Discord Server
- π Report Issues: GitHub Issues
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 | β | β | β | β |
| 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.
- π 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
- β‘ 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
- π 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
- π Introduction - Learn what Open Notebook 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
- π± 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
- ποΈ 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 Open Notebook is, and where it's going
- π οΈ Developer Docs - Architecture, setup, contributing, decision records
- 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
- 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
Explore GitHub Discussions for proposed features and product ideas, and open Issues for known bugs and approved work.
- π€ AI Installation Assistant: We have a CustomGPT built to help you install Open Notebook - it will guide you through each step!
- New to Open Notebook? Start with our Getting Started Guide
- Need installation help? Check our Installation Guide
- Want to see it in action? Try our Quick Start Tutorial
- π¬ Discord Server - Get help, share ideas, and connect with other users
- π Follow @lfnovo on X - Project updates and news from the maintainer
- π‘ 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 Open Notebook
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 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.
Open Notebook is MIT licensed. See the LICENSE file for details.
Community Support:
- π¬ Discord Server - Get help, share ideas, and connect with users
- π Follow @lfnovo on X - Project updates and news from the maintainer
- π‘ GitHub Discussions - Ask questions and shape ideas
- π GitHub Issues - Report reproducible bugs and find approved work
- π Website - Learn more about the project
1.14.4 is published through the managed immutable-release workflow and admitted to the Registry. The App consumes released SDK 0.21.0, Kit/native 0.19.0, App Tools 0.12.0 and Nimi Coding 0.6.5 through public npm locks, with no local Nimi dependency override.
Source indexing, grounded research answers and newly generated podcast playback passed. These business checks used the actual Desktop-supervised development Host. Catalog AI acceptance remains NOT-VERIFIED; the user authorized publication and admission with that limitation recorded. Windows package production tests, build and provenance passed; Windows interactive use remains NOT-VERIFIED.

