δΈζ | English
A privacy-first, open-source alternative to NotebookLM
An AI-powered knowledge management application that lets you create intelligent notebooks from your documents.
Project URL: https://github.com/smallnest/notex
- Python clone: pynotex
- π Multiple Source Types - Upload PDFs, text files, Markdown, DOCX, and HTML documents
- π€ AI-Powered Chat - Ask questions and get answers based on your sources
- β¨ Multiple Transformations - Generate summaries, FAQs, study guides, outlines, timelines, glossaries, quizzes, mindmaps, infographics and podcast scripts
- π Infographic Generation - Create beautiful, hand-drawn style infographics from your content using Google's Gemini Nano Banana
- ποΈ Podcast Generation - Create engaging podcast scripts from your content
- πΎ Full Privacy - Local SQLite storage, optional cloud backends
- π Multi-Model Support - Works with OpenAI, Ollama, and other compatible APIs
- π¨ Academic Brutalist Design - Distinctive, research-focused interface
- Go 1.23 or later
- An LLM API key (OpenAI) or Ollama running locally
# Clone the repository
git clone https://github.com/smallnest/notex.git
cd notex
# Install dependencies
go mod tidy
# Set your API key
export OPENAI_API_KEY=your_key_here
# Run the server
go run . -serverOpen your browser to http://localhost:8080
# Make sure Ollama is running
ollama serve
# Run with Ollama
export OLLAMA_BASE_URL=http://localhost:11434
go run . -server# Build the binary
go build -o notex .
# Run with OpenAI
export OPENAI_API_KEY=your_key_here
./notex -server
# Or run with Ollama
export OLLAMA_BASE_URL=http://localhost:11434
./notex -server- Click "New Notebook" in the header
- Enter a name and optional description
- Click "Create Notebook"
You can add content to your notebook in three ways:
File Upload
- Click the "+" button in the Sources panel
- Drag and drop or browse for files
- Supported: PDF, TXT, MD, DOCX, HTML
Paste Text
- Select the "Text" tab
- Enter a title and paste your content
From URL
- Select the "URL" tab
- Enter the URL and optional title
- Switch to the "CHAT" tab
- Ask questions about your content
- Responses include references to relevant sources
Click any transformation card to generate:
| Transformation | Description |
|---|---|
| π Summary | Condensed overview of your sources |
| β FAQ | Common questions and answers |
| π Study Guide | Educational material with learning objectives |
| ποΈ Outline | Hierarchical structure of topics |
| ποΈ Podcast | Conversational script for audio content |
| π Timeline | Chronological events from sources |
| π Glossary | Key terms and definitions |
| βοΈ Quiz | Assessment questions with answer key |
| π Infographic | Hand-drawn style visual representation of your content |
| π§ Mindmap | Visual hierarchical diagram of your sources using Mermaid.js |
Or use the custom prompt field for any other transformation.
| Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
OpenAI API key | Required (unless using Ollama) |
OPENAI_BASE_URL |
Custom API base URL | OpenAI default |
OPENAI_MODEL |
Model name | gpt-4o-mini |
EMBEDDING_MODEL |
Embedding model | text-embedding-3-small |
OLLAMA_BASE_URL |
Ollama server URL | http://localhost:11434 |
OLLAMA_MODEL |
Ollama model name | llama3.2 |
GOOGLE_API_KEY |
Google Gemini API key | Required for Infographics |
SERVER_HOST |
Server host | 0.0.0.0 |
SERVER_PORT |
Server port | 8080 |
VECTOR_STORE_TYPE |
Vector store backend | sqlite |
STORE_PATH |
Database path | ./data/checkpoints.db |
MAX_SOURCES |
Max sources for RAG | 5 |
CHUNK_SIZE |
Document chunk size | 1000 |
CHUNK_OVERLAP |
Chunk overlap | 200 |
sqlite- Local SQLite database (default)memory- In-memory vectorssupabase- Supabase vector storepostgres/pgvector- PostgreSQL with pgvectorredis- Redis with RediSearch
docker-compose.yml (for PostgreSQL + pgvector)
version: '3.8'
services:
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_DB: notebook
POSTGRES_USER: notebook
POSTGRES_PASSWORD: secret
ports:
- "5432:5432"
app:
build: .
environment:
- POSTGRES_URL=postgres://notebook:secret@postgres:5432/notebook
- VECTOR_STORE_TYPE=postgres
ports:
- "8080:8080"go test -v ./...go build -o notex .# Format
go fmt ./...
# Lint
golangci-lint run
# Vet
go vet ./...Contributions are welcome! Please feel free to submit a Pull Request.
Apache License 2.0 - see LICENSE for details.
- Inspired by Google's NotebookLM
- Built with LangGraphGo
- Inspired by open-notebook
- Report issues on GitHub
- Join discussions in the Notex community
Notex - A privacy-first, open-source alternative to NotebookLM https://github.com/smallnest/notex
