No description
Find a file
DJP 2292f8a511 Transform NotebookLlaMa to enterprise multi-user NotebookLM clone
Major Changes:
- Implemented notebook-first architecture (multi-document collections)
- Added user authentication and multi-tenancy
- Created comprehensive database schema (7 tables)
- Built complete notebook management system
- Implemented notebook-level chat across multiple documents
- Added podcast generation from notebooks
- Implemented notebook sharing with permissions
- Fixed MCP server crashes by bypassing for document processing
- Added all enterprise features requested

New Features:
- User login/signup with bcrypt password hashing
- Create/edit/delete notebooks
- Upload multiple PDFs to notebooks
- Add documents to existing notebooks
- Chat across all documents in a notebook
- Generate podcasts from entire notebooks
- Share notebooks with other users
- View shared notebooks
- Persistent chat history per notebook
- Document summaries, Q&A, and highlights

Technical Improvements:
- PostgreSQL database with SQLAlchemy ORM
- Connection pooling and proper cleanup
- Bypassed buggy MCP server for document processing
- Direct LlamaCloud API calls for reliability
- Proper CASCADE deletes
- Session management
- Error handling and logging

Documentation:
- ENTERPRISE_SETUP.md - Setup guide
- IMPLEMENTATION_SUMMARY.md - Technical details
- SIMPLIFIED_PLAN.md - Architecture overview
- CURRENT_STATUS.md - Status and known issues
- FINAL_README.md - User guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:28:06 -04:00
.github/workflows Renaming to NotebookLlama 2025-06-30 22:31:22 +02:00
data/test Refactor + workflow 2025-06-28 19:48:54 +02:00
src/notebookllama Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
tests Renaming to NotebookLlama 2025-06-30 22:31:22 +02:00
tools Renaming to NotebookLlama 2025-06-30 22:31:22 +02:00
.DS_Store Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
.gitignore UI + final touches 2025-06-28 22:07:44 +02:00
.pre-commit-config.yaml Renaming to NotebookLlama 2025-06-30 22:31:22 +02:00
.python-version first commit 2025-06-27 22:47:48 +02:00
compose.yaml Adding observability dashboard 2025-06-29 12:01:17 +02:00
CONTRIBUTING.md first commit 2025-06-27 22:47:48 +02:00
CURRENT_STATUS.md Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
ENTERPRISE_SETUP.md Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
FINAL_README.md Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
IMPLEMENTATION_SUMMARY.md Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
LICENSE Adding document chat and moving to a multi-page app 2025-06-28 23:25:13 +02:00
pyproject.toml Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
README.md chore: bump https// to https:// 2025-07-08 15:32:13 +02:00
README_ENTERPRISE.md Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
server.log Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
SIMPLIFIED_PLAN.md Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
start.sh Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
uv.lock Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00
watch_server.sh Transform NotebookLlaMa to enterprise multi-user NotebookLM clone 2025-10-01 17:28:06 -04:00

NotebookLlaMa🦙

A fluffy and open-source alternative to NotebookLM!

https://github.com/user-attachments/assets/7e9cca45-8a4c-4dfa-98d2-2cef147422f2

This project is aimed at producing a fully open-source, LlamaCloud-backed alternative to NotebookLM.

Prerequisites

This project uses uv to manage dependencies. Before you begin, make sure you have uv installed.

On macOS and Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

On Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

For more install options, see uv's official documentation.

Get it up and running!

Get the GitHub repository:

git clone https://github.com/run-llama/notebookllama

Install dependencies:

cd notebookllama/
uv sync

Modify the .env.example file with your API keys:

Rename the file to .env:

mv .env.example .env

Now, you will have to execute the following scripts:

uv run tools/create_llama_extract_agent.py
uv run tools/create_llama_cloud_index.py

And you're ready to set up the app!

Launch Postgres and Jaeger:

docker compose up -d

Run the MCP server:

uv run src/notebookllama/server.py

Now, launch the Streamlit app:

streamlit run src/notebookllama/Home.py

Important

You might need to install ffmpeg if you do not have it installed already

And start exploring the app at http://localhost:8751/.

Contributing

Contribute to this project following the guidelines.

License

This project is provided under an MIT License.