Ein lokaler, datenschutzfreundlicher Ersatz für Google NotebookLM zur Dokumentenanalyse und Berichterstellung.
- Dokumentenverwaltung: Dateien und Verzeichnisse per Drag & Drop hinzufügen
- Automatische Extraktion & Auto-Indexierung: Neue Dokumente werden direkt verarbeitet und für RAG vorbereitet
- Selektive Auswahl: Dokumente für Berichterstellung auswählen/abwählen
- Detailrecherchen: Rechtsklick für dokumentspezifische Analysen (Sub-Queries)
- Workflow-Visualisierung: Grafische Darstellung des Berichtsprozesses
- Chat-Interface: Interaktives Chatten über die Dokumente mit LLM
- Claude Code Integration: Wahlweise strukturierte API-Antworten oder Übergabe an eine interaktive Claude-Code-Session
- Multi-Format-Export: Ausgabe in MD, PDF, DOCX, HTML, TXT
- Prompt-Export: Berichtskontext als Markdown-Prompt für externe LLM-Workflows exportieren
- Remote-Ollama pro Projekt: Eigene Base-URL und API-Key für lokale oder entfernte Ollama-Server
- Profile: Wiederverwendbare Ausgabeformat-Kombinationen
# Repository klonen oder Ordner kopieren
cd NoteSpaceLLM
# Abhängigkeiten installieren
pip install -r requirements.txt
# Anwendung starten
python main.pyUnter Windows kann die App alternativ per start.bat gestartet werden.
Für einen lokalen Windows-Launcher kann zusätzlich folgender Build ausgeführt werden:
build_exe.batDer Build erzeugt NoteSpaceLLM.exe als schlanken Starter für die lokale
Python-Umgebung und die Projekt-Abhängigkeiten.
python main.py --check- Ollama installieren
- Modell herunterladen:
ollama pull llama3 - In der App: Menü > LLM > Ollama verwenden
NoteSpaceLLM kann einen entfernten Ollama-Server nutzen, z.B. über ellmos-stack:
- In der App: Menü > LLM > Einstellungen
- Ollama URL:
http://your-server:11435(oder eigener Port) - API-Key: Falls der Server hinter einem Auth-Proxy liegt (empfohlen)
Die Remote-Anbindung eignet sich für:
- Stärkere Modelle auf dedizierter Hardware
- Gemeinsame Nutzung eines LLM-Servers im Team
- Desktop ohne GPU
Tipp: Ollama hat keine eingebaute Authentifizierung. Für Remote-Zugriff empfehlen wir einen Reverse-Proxy (z.B. Nginx) mit API-Key oder Basic Auth.
export OPENAI_API_KEY="<your-openai-api-key>"export ANTHROPIC_API_KEY="<your-anthropic-api-key>"Für den Provider claude-code wird die lokale CLI benötigt:
npm install -g @anthropic-ai/claude-codeIn der App stehen zwei Modi bereit:
- API-Modus: strukturierte Antwort direkt zurück in NoteSpaceLLM
- Chat-Modus: Übergabe des Prompts an eine interaktive Claude-Code-Konsole
- Drag & Drop: Dateien/Ordner in das linke Panel ziehen
- Button: "Dateien hinzufügen" oder "Ordner hinzufügen"
- Checkbox: Dokumente für Analyse ein-/ausschließen
- Buttons: "Alle" / "Keine" für Massenauswahl
Rechtsklick auf ein Dokument:
- Zusammenfassung erstellen: Automatische Zusammenfassung
- Informationen extrahieren: Spezifische Daten finden
- Analysieren: Gezielte Analyse
- Frage stellen: Konkrete Frage zum Dokument
Im Workflow-Panel die zentrale Fragestellung eingeben.
- Analyse: Umfassende Analyse mit Empfehlungen
- Zusammenfassung: Kurze Zusammenfassung
- Forschungsbericht: Akademische Struktur
- Vergleich: Systematischer Dokumentenvergleich
Klick auf "Bericht erstellen" - die Ausgabe erscheint im rechten Panel.
Ausgabeformate wählen und "Exportieren" klicken.
Über "Prompt exportieren" wird der aktuelle Arbeitskontext als Markdown-Datei gespeichert, um ihn in Claude Code oder anderen LLM-Workflows weiterzuverwenden.
NoteSpaceLLM/
├── main.py # Startpunkt
├── requirements.txt # Abhängigkeiten
├── README.md # Diese Datei
├── src/
│ ├── core/ # Kernfunktionalität
│ │ ├── document_manager.py # Dokumentenverwaltung
│ │ ├── text_extractor.py # Textextraktion
│ │ ├── sub_query.py # Detailrecherchen
│ │ └── project.py # Projektverwaltung
│ ├── gui/ # PySide6 Benutzeroberfläche
│ │ ├── main_window.py # Hauptfenster
│ │ ├── document_panel.py # Dokument-Panel
│ │ ├── workflow_panel.py # Workflow-Panel
│ │ ├── chat_panel.py # Chat-Panel
│ │ └── output_panel.py # Ausgabe-Panel
│ ├── llm/ # LLM-Integration (lokal + remote)
│ │ ├── client.py # Basis-Client + Factory
│ │ ├── ollama_client.py # Ollama (lokal & remote, mit Auth)
│ │ ├── openai_client.py # OpenAI
│ │ └── anthropic_client.py # Anthropic
│ └── reports/ # Berichterstellung
│ ├── generator.py # Berichtsgenerierung
│ ├── templates.py # Vorlagen
│ └── exporter.py # Export
├── data/ # Datenverzeichnis
├── workflows/ # Workflow-Definitionen
├── profiles/ # Ausgabeprofile
└── output/ # Exportierte Berichte
| Format | Lesen | Schreiben |
|---|---|---|
| ✅ | ✅ | |
| DOCX | ✅ | ✅ |
| DOC | - | |
| TXT | ✅ | ✅ |
| MD | ✅ | ✅ |
| XLSX | ✅ | - |
| HTML | - | ✅ |
| EML | ✅ | - |
| MSG | ✅ | - |
- Große Dokumente: Bei vielen Dokumenten zuerst nur wichtige auswählen
- Detailrecherchen: Für bessere Ergebnisse gezielte Sub-Queries nutzen
- Ollama: Für Datenschutz und Offline-Nutzung empfohlen
- Workflow anpassen: Schritte können umgeordnet werden
NoteSpaceLLM verarbeitet Projekte, Dokumentindexe und Exporte standardmäßig lokal in den Projektordnern data/, profiles/, workflows/, output/ und chroma_db/. Diese Ordner sind bewusst nicht für Git vorgesehen.
Wenn externe oder entfernte LLM-Provider wie OpenAI, Anthropic, Claude Code oder ein Remote-Ollama-Server gewählt werden, können Prompts und ausgewählte Dokumentauszüge an diese Dienste oder Server übertragen werden. Verwende für vertrauliche Dokumente bevorzugt lokale Modelle und prüfe vor dem Teilen eines Projektordners die enthaltenen Daten.
Die Anwendung ist modular aufgebaut und trennt Dokumentverwaltung, Text-Extraktion, RAG-Index, LLM-Provider und Report-Export.
AGPL v3 - Siehe LICENSE
Dieses Projekt verwendet PySide6 (LGPL) und PyMuPDF (AGPL).
A local replacement for Google NotebookLM with LLM integration and multi-format export.
- Local LLM integration
- Automatic extraction and auto-indexing for newly added documents
- Multi-format document import
- AI-powered summaries
- Claude Code provider with API and interactive chat modes
- Prompt export for external LLM workflows
- Export to multiple formats
git clone https://github.com/file-bricks/NoteSpaceLLM.git
cd NoteSpaceLLM
pip install -r requirements.txt
python "main.py"On Windows, you can also launch the app via start.bat.
A local Windows launcher can also be built with build_exe.bat.
See LICENSE for details.
Project data, indexes, profiles, workflow settings, and exports are local by default and intentionally excluded from Git. External or remote LLM providers may receive prompts and selected document excerpts when enabled.
Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gelten die Haftungsausschlüsse der GNU Affero General Public License v3.0, insbesondere §§ 15–16.
Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.
This project is an unpaid open-source donation. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.

