Sensible Daten lokal verarbeiten — Cloud-KI nutzen ohne Datenleck
Ein Framework für Claude Code, das personenbezogene Daten ausschließlich auf deinem Rechner verarbeitet. Lokales LLM (Gemma 4 via Ollama) bleibt Wächter — Claude bekommt nur anonymisierte Aggregate.
DSGVO-konform. Datenschutz by Design. Open Source.
Eine technische Veröffentlichung von Thomas Schroffenegger, MSc MAS BEd.
Cloud-KIs wie Claude sind unschlagbar bei kreativem Schreiben, Analyse und Code. Aber für viele Anwendungsfälle (Schulverwaltung, Personalwesen, Patientendaten) verbietet die DSGVO, personenbezogene Daten an Cloud-Anbieter zu senden.
private-ai-bridge löst das: Du bekommst Claudes Sprachstärke, ohne dass auch nur ein Name die Cloud sieht.
┌──────┐ ┌──────────────┐ ┌──────────────┐
│ User │ → │ Gemma (lokal) │ → │ Claude (Cloud) │
└──────┘ └──────────────┘ └──────────────┘
↑ ↓
└─── Re-Mapping ────────┘
- User stellt Aufgabe ("Schreibe Zeugnisbemerkungen für alle Schüler")
- Claude erkennt: Datei enthält PII, ruft
gemma_queryTool auf - Gemma liest Datei lokal, gibt anonymisierte Daten zurück
- Claude verarbeitet anonymisierte Daten (z.B. schreibt Bemerkungen)
- private-ai-bridge mappt Ergebnis lokal zurück zu echten Namen
- User bekommt finales Ergebnis
Claude sieht nie einen Namen, eine Adresse oder eine E-Mail.
git clone https://github.com/harubert/private_ai_bridge.git
cd private_ai_bridge
./install.shDer Installer prüft deine Hardware und installiert das passende Gemma-Modell:
- 8 GB RAM: gemma:2b (klein, schnell)
- 16 GB RAM: gemma4:e4b (empfohlen)
- 32 GB RAM: gemma4:26b (beste Qualität)
cd private_ai_bridge
claudeClaude Code erkennt die .mcp.json automatisch. Sechs neue Tools stehen zur Verfügung:
| Tool | Zweck |
|---|---|
gemma_query |
Lässt Gemma eine Datei lokal verarbeiten |
pseudonymize |
Ersetzt echte Werte durch Tokens [PERS_xxx] |
depseudonymize |
Wandelt Tokens zurück in Klartext |
show_mappings |
Zeigt aktuelle Zuordnungstabelle |
show_audit_log |
Audit-Log aller Verarbeitungen |
system_status |
Status der Ollama-Installation |
Eine vollständige Demo mit 7 Schülern und einer realistischen Aufgabe (Wintersportwoche planen) gibt es als interaktive Webseite:
cd publish && python3 -m http.server 8080
# Browser öffnen: http://localhost:8080Drei Seiten:
index.html— Konzept und Architekturdemo.html— Schritt-für-Schritt-Walkthroughflow.html— Datenfluss-Visualisierung
Datei: examples/schueler/schueler.json (7 Schüler mit Sportwahl, Allergien, Medikamenten, Sozialermäßigungen)
User-Prompt an Claude:
"Plane die Wintersportwoche der 3a — Gruppen nach Sportwahl/Niveau, Begleitlehrer, Bus-Sitzplan, Notfall-Datenblätter, individuelle Eltern-Briefe und Förderanträge."
Was passiert:
- Claude klassifiziert die Teilaufgaben: Logistik (Cloud-tauglich) vs. sensible Dokumente (rein lokal)
- Logistik (Gruppen, Bus, Lehrerplan): Claude bekommt von Gemma anonymisierte Profile (nur Sportwahl, Niveau, Größen, Flags wie "allergie_ja_nein")
- Notfall-Datenblätter: Gemma generiert sie komplett lokal mit echten Allergien, Medikamenten, Notfallkontakten — Claude sieht das Dokument nie
- Eltern-Briefe: Claude liefert Template, Gemma füllt lokal mit echten Namen + Sportwahl-spezifischer Packliste
- Förderanträge: Komplett lokal mit Familien-Begründung
An Cloud gegangen: 7 anonymisierte Logistik-Profile Allergien/Medikamente/Namen in der Cloud: 0 Geschätzte Zeitersparnis: 6-8 Stunden manueller Arbeit
Das Framework klassifiziert Daten in 4 Stufen:
| Stufe | Beispiel | Behandlung |
|---|---|---|
| L1 | Name, Email, Tel, SVNr, Adresse | Immer pseudonymisieren |
| L2 | Geburtsdatum, PLZ | Pseudonymisieren in Kombination |
| L3 | Noten, Bemerkungen | OK ohne Personenzuordnung |
| L4 | Aggregate (Durchschnitt, Anzahl) | Unbedenklich |
private_ai_bridge/
├── server/ # MCP-Server (Python)
│ ├── mcp_server.py # Tool-Definitionen
│ ├── gemma_client.py # Ollama-Wrapper
│ ├── pseudonymizer.py # Tagged-Token-Mapping
│ └── audit_log.py # DSGVO Art. 30 Logging
├── examples/ # Beispiel-Daten und Aufgaben
├── publish/ # Landing Page für eigenen Server (Konzept/Demo/Flow) (Landing/Demo/Flow)
├── .mcp.json # Claude-Code-Konfiguration
└── install.sh # Setup mit Hardware-Test
Das Framework ist nicht an Gemma gebunden. Setze eine Umgebungsvariable, um andere Ollama-Modelle zu verwenden:
export PRIVATE_AI_BRIDGE_MODEL="llama3.2:3b"
# oder: mistral:7b, qwen2.5:14b, ...Das Framework unterstützt zentrale DSGVO-Anforderungen:
- Art. 5 (Datenminimierung): Cloud bekommt nur die nötigsten Felder
- Art. 25 (Privacy by Design): Standardmäßig keine PII in der Cloud
- Art. 30 (Verzeichnis): Audit-Log dokumentiert jede Verarbeitung
- Art. 32 (Sicherheit): Lokale Lookup-Tabelle, optional verschlüsselt
- Art. 17 (Löschung):
clear_mappingslöscht alle Zuordnungen
Duale Lizenzierung — siehe LICENSE für Übersicht.
| Was | Lizenz | Datei |
|---|---|---|
Code (server/, install.sh, alle .py) |
MIT | LICENSE-CODE |
Dokumentation, Webseite, Konzept (README.md, publish/, examples/, alle .md) |
CC BY-SA 4.0 | LICENSE-DOCS |
Beide Lizenzen verlangen Namensnennung:
- MIT: implizit über den Copyright-Hinweis, der in allen Kopien bleiben muss
- CC BY-SA 4.0: explizit, plus Weitergabe unter gleichen Bedingungen (Share-Alike)
Issues und Pull Requests willkommen. Insbesondere:
- Adapter für weitere lokale LLMs (llama.cpp, LM Studio, vLLM)
- Verbesserte PII-Erkennung
- Übersetzungen
- Use-Case-Beispiele aus anderen Domänen (Medizin, HR, Recht)
Entstanden aus dem Bedürfnis, Claude Code in einer österreichischen Mittelschule DSGVO-konform einsetzen zu können. Generalisiert für jeden Anwendungsfall mit sensiblen Daten.
Konzept & Realisierung: Thomas Schroffenegger, MSc MAS BEd Erstveröffentlichung: April 2026 Lizenz: MIT (Code) + CC BY-SA 4.0 (Konzept/Doku) — beide mit Namensnennungspflicht
Bei Verwendung in wissenschaftlichen Arbeiten oder kommerziellen Projekten wird um Namensnennung gebeten:
Schroffenegger, T. (2026): private-ai-bridge — DSGVO-konformes Framework für Cloud-KI mit lokaler Datenfilterung. https://github.com/harubert/private_ai_bridge