{"id":30304627,"url":"https://github.com/krishmakhijani/cookbooklm","last_synced_at":"2025-08-17T07:10:57.947Z","repository":{"id":310017617,"uuid":"988670870","full_name":"krishmakhijani/cookbookLM","owner":"krishmakhijani","description":"An Open Source alternative of Google's NotebookLM","archived":false,"fork":false,"pushed_at":"2025-08-12T21:54:18.000Z","size":1792,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-15T07:37:39.080Z","etag":null,"topics":["docker","flask","groq","langchain","mongodb","nextjs","ollama","supabase","vercel-ai-sdk"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=1BFeUJfExdI","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krishmakhijani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-22T22:40:43.000Z","updated_at":"2025-08-12T21:54:21.000Z","dependencies_parsed_at":"2025-08-15T07:37:56.009Z","dependency_job_id":"26350a61-33eb-4c6c-a702-a84878011cc8","html_url":"https://github.com/krishmakhijani/cookbookLM","commit_stats":null,"previous_names":["krishmakhijani/cookbooklm"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/krishmakhijani/cookbookLM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krishmakhijani%2FcookbookLM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krishmakhijani%2FcookbookLM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krishmakhijani%2FcookbookLM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krishmakhijani%2FcookbookLM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krishmakhijani","download_url":"https://codeload.github.com/krishmakhijani/cookbookLM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krishmakhijani%2FcookbookLM/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270818217,"owners_count":24651136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","flask","groq","langchain","mongodb","nextjs","ollama","supabase","vercel-ai-sdk"],"created_at":"2025-08-17T07:10:53.014Z","updated_at":"2025-08-17T07:10:57.935Z","avatar_url":"https://github.com/krishmakhijani.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 CookbookLM\n\n![Preview](./web-app/public/cover.png)\n\n\u003cdiv align=\"center\"\u003e\n\n![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge\u0026logo=next.js\u0026logoColor=white)\n![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB)\n![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)\n![Bun](https://img.shields.io/badge/Bun-000000?style=for-the-badge\u0026logo=bun\u0026logoColor=white)\n\n![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)\n![Flask](https://img.shields.io/badge/Flask-000000?style=for-the-badge\u0026logo=flask\u0026logoColor=white)\n![LangChain](https://img.shields.io/badge/LangChain-1C3C3C?style=for-the-badge\u0026logo=chainlink\u0026logoColor=white)\n\n![Supabase](https://img.shields.io/badge/Supabase-3ECF8E?style=for-the-badge\u0026logo=supabase\u0026logoColor=white)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n\n![Ollama](https://img.shields.io/badge/Ollama-000000?style=for-the-badge\u0026logo=ollama\u0026logoColor=white)\n![Groq](https://img.shields.io/badge/Groq-F55036?style=for-the-badge\u0026logo=groq\u0026logoColor=white)\n![OpenAI](https://img.shields.io/badge/OpenAI-412991?style=for-the-badge\u0026logo=openai\u0026logoColor=white)\n\n![Llama](https://img.shields.io/badge/Llama-FF6B35?style=for-the-badge\u0026logo=meta\u0026logoColor=white)\n![DeepSeek](https://img.shields.io/badge/DeepSeek-000080?style=for-the-badge\u0026logo=deepseek\u0026logoColor=white)\n![Qwen](https://img.shields.io/badge/Qwen-FF6B00?style=for-the-badge\u0026logo=alibaba\u0026logoColor=white)\n\n![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![Kong](https://img.shields.io/badge/Kong-003459?style=for-the-badge\u0026logo=kong\u0026logoColor=white)\n![Tesseract](https://img.shields.io/badge/Tesseract-4285F4?style=for-the-badge\u0026logo=google\u0026logoColor=white)\n\n\u003c/div\u003e\n\n---\n\n## 🌟 Cover Page\n\n**CookbookLM** is an open source alternative for Google's NotebookLM. It is an intelligent document processing and note-taking application that transforms your PDFs into interactive, searchable knowledge bases. Built with modern web technologies and powered by local LLMs, it provides a secure, privacy-first alternative to cloud-based document analysis tools.\n\n### ✨ Key Features\n\n- 📄 **PDF Processing**: Advanced OCR and table extraction\n- 🤖 **AI-Powered Analysis**: Local LLM integration with Ollama \u0026 Groq\n- 🗂️ **Smart Organization**: Notebook-based document management\n- 💬 **Interactive Chat**: Query your documents naturally\n- 📝 **Note Taking**: Rich text editor with AI-assisted writing\n- 🧠 **Memory Management**: Persistent context and conversation history\n- 🗺️ **Mindmap Generation**: Visual knowledge maps from documents\n- � **Multi-Model Support**: Switch between Ollama and Groq models\n- �🔒 **Privacy-First**: All processing happens locally (Ollama) or securely (Groq)\n- 🌐 **Real-time Collaboration**: Powered by Supabase\n\n---\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- **Next.js 15** - React framework with App Router\n- **TypeScript** - Type-safe development\n- **Tailwind CSS** - Utility-first styling\n- **Radix UI** - Accessible component primitives\n- **Framer Motion** - Smooth animations\n\n### Backend Services\n\n- **Supabase** - Backend-as-a-Service (Auth, Database, Storage, Realtime)\n- **MongoDB** - Document database for flexible data storage\n- **Flask** - Python web framework for PDF processing\n- **Ollama** - Local LLM inference server\n\n### AI \u0026 Processing\n\n- **LangChain** - LLM orchestration framework\n- **Ollama** - Local LLM inference (Llama, Qwen, DeepSeek, etc.)\n- **Groq** - High-speed cloud LLM inference\n- **PDFPlumber** - PDF text and table extraction\n- **Tesseract OCR** - Optical character recognition\n- **Vector Embeddings** - Semantic search capabilities\n- **Mindmap Engine** - Dynamic knowledge graph generation\n\n### Infrastructure\n\n- **Docker** - Containerization\n- **Kong** - API Gateway\n- **PostgreSQL** - Relational database (via Supabase)\n\n---\n\n## 📋 Prerequisites\n\n### System Requirements\n\n- **Node.js** 18.0 or higher\n- **Python** 3.11 or higher\n- **Docker** \u0026 **Docker Compose** (for containerized setup)\n- **Git** for version control\n\n### For GPU Acceleration (Optional)\n\n- **NVIDIA GPU** with CUDA support\n- **NVIDIA Container Toolkit** (for Docker GPU access)\n\n### Development Tools\n\n- **Code Editor** (VS Code recommended)\n- **Terminal/Command Line** access\n\n---\n\n## 🚀 Installation\n\n### Option 1: Docker Compose (Recommended)\n\n#### Quick Start\n\n```bash\n# Clone the repository\ngit clone https://github.com/krishmakhijani/cookbookLM.git\ncd cookbookLM\n\n# Start all services\ndocker-compose up -d\n\n# Access the application\nopen http://localhost:3000\n```\n\n#### Service URLs\n\n- **Web App**: http://localhost:3000\n- **Supabase Studio**: http://localhost:54323\n- **API Gateway**: http://localhost:54321\n- **PDF Parser**: http://localhost:5000\n- **MongoDB**: localhost:27017\n- **Ollama**: http://localhost:11434\n\n#### Download LLM Models\n\n```bash\n# Download popular models\ndocker-compose exec ollama ollama pull llama3.2\ndocker-compose exec ollama ollama pull qwen2.5:7b\ndocker-compose exec ollama ollama pull deepseek-coder\n```\n\n### Option 2: Manual Setup\n\n#### 1. Clone \u0026 Setup\n\n```bash\ngit clone https://github.com/krishmakhijani/cookbookLM.git\ncd cookbookLM\n```\n\n#### 2. Database Setup\n\n```bash\n# Install and start Supabase CLI\nnpm install -g @supabase/cli\ncd infrastructure/supabase\nsupabase start\n\n# Install and start MongoDB\nbrew install mongodb/brew/mongodb-community\nbrew services start mongodb/brew/mongodb-community\n```\n\n#### 3. Ollama Setup\n\n```bash\n# Install Ollama\ncurl -fsSL https://ollama.ai/install.sh | sh\n\n# Start Ollama service\nollama serve\n\n# Download models (in another terminal)\nollama pull llama3.2\nollama pull qwen2.5:7b\n```\n\n#### 4. PDF Parser Service\n\n```bash\ncd pdfParserService\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install system dependencies (macOS)\nbrew install tesseract poppler\n\n# Start the service\npython app.py\n```\n\n#### 5. Web Application\n\n```bash\ncd web-app\n\n# Install dependencies\nnpm install\n# or\nbun install\n\n# Set up environment variables\ncp .env.example .env.local\n# Edit .env.local with your configuration\n\n# Start development server\nnpm run dev\n# or\nbun dev\n```\n\n#### Environment Variables\n\nCreate `.env.local` in the web-app directory:\n\n```env\n# Supabase Configuration\nNEXT_PUBLIC_SUPABASE_URL=\"\"\nSUPABASE_GRAPHQL_URL=\"\"\nSUPABASE_S3_STORAGE_URL=\"\"\nSUPABASE_DB_URL=\"\"\nSUPABASE_INBUCKET_URL=\"\"\nSUPABASE_JWT_SECRET=\"\"\nNEXT_PUBLIC_SUPABASE_ANON_KEY=\"\"\nSUPABASE_SERVICE_ROLE_KEY=\"\"\nSUPABASE_S3_ACCESS_KEY=\"\"\nSUPABASE_S3_SECRET_KEY=\"\"\nSUPABASE_S3_REGION=\"local\"\nMONGODB_URL=\"\"\nDEVELOPMENT_URL=\"\"\nOLLAMA_BASE_URL=\"\"\nGROQ_API_KEY=\"\"\n```\n\n---\n\n## ⚖️ CookbookLM vs NotebookLM\n\n| Feature                     | CookbookLM                                    | NotebookLM                      |\n| --------------------------- | --------------------------------------------- | ------------------------------- |\n| **Privacy \u0026 Data Control**  | ✅ Complete local processing                  | ❌ Cloud-based processing       |\n| **Offline Functionality**   | ✅ Works entirely offline (with Ollama)       | ❌ Requires internet connection |\n| **Custom LLM Models**       | ✅ Support for any Groq Model or Ollama Model | ❌ Limited to Google's models   |\n| **Note Taking System**      | ✅ Rich text editor with AI assistance        | ✅ Basic note creation          |\n| **Memory Management**       | ✅ Persistent conversation history            | ❌ Limited session memory       |\n| **Mindmap Generation**      | ✅ Dynamic visual knowledge maps              | ❌ No mindmap feature           |\n| **Multi-Provider AI**       | ✅ Ollama + Groq integration                  | ❌ Google models only           |\n| **Open Source**             | ✅ Fully open source                          | ❌ Proprietary                  |\n| **Self-Hosting**            | ✅ Deploy anywhere                            | ❌ Google Cloud only            |\n| **PDF OCR Processing**      | ✅ Advanced OCR with Tesseract                | ✅ Good PDF processing          |\n| **Table Extraction**        | ✅ Structured table parsing                   | ✅ Structured table parsing     |\n| **Real-time Collaboration** | ✅ Supabase real-time features                | ✅ Google Workspace integration |\n| **Document Chat**           | ✅ AI conversation                            | ✅ AI conversation              |\n| **Note Organization**       | ✅ Flexible notebook system                   | ✅ Notebook organization        |\n| **Vector Search**           | ✅ Semantic search capabilities               | ✅ AI-powered search            |\n| **Multi-language Support**  | ✅ Configurable via models                    | ✅ Google's language support    |\n| **API Access**              | ✅ Full REST API                              | ❌ Limited API access           |\n| **Customization**           | ✅ Highly customizable                        | ❌ Limited customization        |\n| **Cost**                    | ✅ Free (compute costs only)                  | ❌ Usage-based pricing          |\n\n### 🎯 Why Choose CookbookLM?\n\n- **🔒 Privacy First**: Your documents never leave your infrastructure (Ollama) or use secure APIs (Groq)\n- **💰 Cost Effective**: No subscription fees, pay-per-use with Groq or free with Ollama\n- **🛠️ Customizable**: Modify and extend according to your needs\n- **🌍 Offline Ready**: Work without internet connectivity using Ollama models\n- **🤖 Model Freedom**: Use any Ollama model locally or Groq's optimized models\n- **📊 Data Ownership**: Complete control over your data and processing\n- **🧠 Smart Memory**: Persistent context across sessions for better conversations\n- **🗺️ Visual Learning**: Generate mindmaps to understand document relationships\n\n---\n\n## 🤖 AI Models \u0026 Features\n\n### Supported AI Providers\n\n#### Ollama (Local Processing)\n\n- **Custom Models** - Load any GGUF model\n\n#### Groq (Cloud Processing)\n\n- **OpenAI OSS 120B** - Latest OpenAI OSS models with high speed\n- **Deepseek R1** - Mixture of experts architecture\n- **Qwen 2.5** - Google's open models\n- **High-Speed Inference** - Optimized for real-time responses\n\n### Core Features\n\n#### 📝 Advanced Note Taking\n\n- **Rich Text Editor** with markdown support\n- **AI-Assisted Writing** suggestions and completions\n- **Smart Formatting** automatic structure detection\n- **Cross-References** link notes to document sections\n- **Template System** for consistent note organization\n\n#### 🧠 Memory Management\n\n- **Conversation History** persistent across sessions\n- **Context Awareness** remembers document relationships\n- **User Preferences** adapts to your writing style\n- **Smart Summarization** of long conversations\n- **Knowledge Graph** builds connections between concepts\n\n#### 🗺️ Mindmap Generation\n\n- **Document Mapping** visual representation of content structure\n- **Concept Extraction** automatic identification of key topics\n- **Relationship Visualization** shows connections between ideas\n- **Interactive Navigation** click to jump to document sections\n- **Export Options** save as image or interactive formats\n- **Collaborative Editing** real-time mindmap sharing\n\n---\n\n## 📖 Usage\n\n1. **Upload Documents**: Drag and drop PDF files to create new notebooks\n2. **AI Processing**: Documents are automatically processed and indexed with OCR and table extraction\n3. **Interactive Chat**: Ask questions about your documents using Ollama or Groq models\n4. **Smart Notes**: Create and organize notes with AI-assisted writing and suggestions\n5. **Memory Management**: Build persistent context that remembers your preferences and conversation history\n6. **Mindmap Visualization**: Generate interactive mindmaps to visualize document relationships and concepts\n7. **Model Selection**: Switch between local Ollama models and high-speed Groq models based on your needs\n8. **Collaboration**: Share notebooks with team members in real-time using Supabase\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eBuilt with ❤️ for privacy-conscious knowledge workers\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/krishmakhijani/cookbookLM\"\u003e⭐ Star us on GitHub\u003c/a\u003e |\n  \u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrishmakhijani%2Fcookbooklm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrishmakhijani%2Fcookbooklm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrishmakhijani%2Fcookbooklm/lists"}