Open source · Offline-first · Kein Abonnement

Ihr einheitliches Bankbuch,
auf Ihrem Computer

Importieren Sie Dateien von all Ihren Banken. Spendify führt sie zusammen, eliminiert Doppelzählungen, klassifiziert jede Transaktion — und Ihre Daten verlassen niemals Ihre Festplatte.

▶ Jetzt installieren View on GitHub

Python · Streamlit · SQLite · Ollama · kein Konto erforderlich

🔒 Daten nur auf Ihrem Computer
🔁 Idempotenter SHA-256-Import
🏦 Multi-Bank, Multi-Format
🤖 Lokale oder Cloud-KI mit PII-Redaktion
🧪 199 Tests, keine externen Abhängigkeiten

Drei Banken, drei Dateien, ein Chaos

Jeden Monat: herunterladen, Excel öffnen, einfügen, Vorzeichen korrigieren, Duplikate finden. Und jedes Mal stimmt etwas nicht.

😩 Die monatliche Routine, die alle hassen

Drei Kontobewegungsdateien von drei verschiedenen Bankportalen, inkompatible CSV-Formate, Daten in unterschiedlichen Formaten, Beträge mit zufälligen Vorzeichen. Das manuelle Zusammenführen dauert Stunden und erzeugt immer Fehler.

🔴 Das Problem aller Probleme: Doppelzählung

Der Supermarkteinkauf erscheint auf der Kreditkartenabrechnung und auf dem Girokonto als monatliche Sammelabbuchung. Alles zusammengerechnet erscheinen Ihre Ausgaben doppelt so hoch wie sie tatsächlich sind. Kein gängiges Tool löst dies automatisch.

🔄 Interne Überweisungen, die Ihre Bilanz verfälschen

Eine Überweisung auf ein Sparkonto ist keine Ausgabe. Aber wenn Sie beide Konten importieren, erscheint dieselbe Transaktion zweimal — als Abgang vom Girokonto und als Zugang auf dem Sparkonto.

📋 Die Kategorisierung, die nie endet

300 Transaktionen pro Monat von Hand zu klassifizieren ist ein Vollzeitjob. Cloud-Apps erledigen das, aber sie senden Ihre Bankdaten an ihre Server und verlangen ein monatliches Abonnement.


Drei Schritte, keine Magie

Keine Bankintegrationen, kein Konto, keine dateibezogene Konfiguration.

Dateien von Ihrer Bank herunterladen

Exportieren Sie Kontobewegungen als CSV oder XLSX aus dem Portal Ihrer Bank. Funktioniert mit jeder Bank — Spendify erkennt das Format automatisch ohne manuelle Konfiguration.

In Spendify ziehen und Verarbeiten klicken

Wählen Sie alle Dateien auf einmal aus, auch von verschiedenen Banken, auch aus verschiedenen Jahren. Spendify erkennt den Dokumenttyp, korrigiert Vorzeichen, eliminiert Doppelzählungen zwischen Karte und Konto und klassifiziert jede Transaktion.

Sehen Sie, wohin Ihr Geld geht

Das einheitliche Hauptbuch zeigt alles an einem Ort: Diagramme, Filter, Export, und die Gewissheit, dass jeder Euro genau einmal gezählt wird.


Algorithmen, die echte Probleme lösen

Dies ist keine generische Budget-App. Sie ist für die spezifischen Probleme von Menschen mit mehreren Bankkonten konzipiert.

RF-03

Kreditkarten-Girokonto-Abgleich

Wenn die Kreditkarte den monatlichen Betrag vom Girokonto abbucht, erkennt Spendify die Beziehung und entfernt die Doppelzählung automatisch.

Zeitfenster ±45 Tage · 3 Abgleichsphasen: Gleitfenster → Teilsumme für aufgeteilte Beträge → Teilabgleich

RF-04

Erkennung interner Überweisungen

Eine Überweisung vom Girokonto auf ein Sparkonto ist weder eine Ausgabe noch eine Einnahme: Es ist eine interne Überweisung. Spendify erkennt sie durch Vergleich von Beträgen, Daten und Kontoinhabernamen in den Beschreibungen — selbst wenn die beiden Dateien zu unterschiedlichen Zeiten importiert wurden.

Dedup

Idempotente Deduplizierung

Jede Transaktion hat eine eindeutige ID, die aus ihrem Inhalt berechnet wird (SHA-256). Wenn Sie dieselbe Datei zweimal importieren, passiert nichts. Sie können Ihre gesamte Transaktionshistorie ohne Angst vor Duplikaten erneut importieren.

Categories

Kaskadierende Hybrid-Klassifikation

Die Kategorisierung verwendet vier Ebenen nacheinander:

  • 1Ihre Regeln — "CONAD" → Lebensmittel (rückwirkend angewendet)
  • 2Statische Regex — vordefinierte Muster für gängige Kategorien
  • 3LLM — für alles andere, lokale oder Cloud-KI
  • 4Fallback — "Zu überprüfen" wenn alles andere fehlschlägt

Ihre Daten bleiben Ihre. Wirklich.

Das ist nicht nur ein Slogan. Es ist die Architektur.

🏠

Standardmäßig Offline-first

Spendify verwendet standardmäßig Ollama lokal: eine KI-Engine, die auf Ihrem Computer läuft, ohne Internetverbindung. Ihre Kontobewegungsdateien verlassen niemals Ihre Festplatte.

🛡️

Automatische PII-Redaktion

Wenn Sie OpenAI oder Claude verwenden, entfernt Spendify automatisch alle identifizierenden Daten vor jedem Remote-Aufruf:

IBAN → <ACCOUNT_ID> PAN → <CARD_ID> Tax ID → <FISCAL_ID> Name → fiktiver Alias

Wenn die Prüfung fehlschlägt, wird der Aufruf blockiert — nicht stillschweigend herabgestuft.

💾

Portable lokale Datenbank

Daten werden in einer SQLite-Datei auf Ihrem Computer gespeichert. Sie können sie kopieren, verschieben, sichern wie jede andere Datei. Keine obligatorische Cloud, kein Konto, kein Abonnement.


Nicht für jeden. Für alle, die echte Kontrolle wollen.

Vier Profile, die in Spendify etwas finden, was Alternativen nicht bieten.

🏦

Personen mit Konten bei mehreren Banken

Girokonto + Kreditkarte + Sparkonto + Depotkonto? Spendify vereint sie alle in einem einzigen Hauptbuch, ohne dass Sie etwas manuell tun müssen.

📊

Personen, die ihre Finanzen ernsthaft verfolgen

Wenn Sie Excel für Ihre Ausgaben verwenden, kann Spendify diese Routine ersetzen: Sie importieren die Dateien einmal, Spendify vereinheitlicht und klassifiziert, Sie überprüfen nur die Ausnahmen.

🔐

Personen, die der Cloud nicht vertrauen

Kein obligatorisches Remote-Backend, kein Konto, keine Registrierung. Ihre Bankdaten bleiben dort, wo sie hingehören: auf Ihrem Computer.

👨‍💻

Entwickler

Open-Source-Python-Projekt mit modularer Architektur, LLM-Pipeline auf strukturierten Daten, vollständige Testsuite. Ein Ausgangspunkt zum Experimentieren oder zum Erstellen benutzerdefinierter Integrationen.


Alles was Sie brauchen, nichts mehr


Multi-Bank-Import CSV und XLSX von jeder Bank
Automatische Formaterkennung Keine manuelle Konfiguration für jeden Dateityp
Einheitliches Hauptbuch Alle Transaktionen in chronologischer Reihenfolge, filterbar nach Datum / Konto / Kategorie / Kontext
Automatische Klassifikation 15 Ausgabenkategorien + 7 Einnahmenkategorien mit Unterkategorien
Anpassbare Taxonomie Kategorien hinzufügen / bearbeiten ohne die App neu zu starten
Deterministische Regeln "ESSELUNGA → Lebensmittel"-Regeln rückwirkend angewendet
Interaktive Analysen 7 Diagramme: Monatstrend, kumulativer Saldo, Kategorie-Kreisdiagramm, Top-10-Händler
Lebenskontexte Ausgaben segmentieren nach Arbeit / Urlaub / Alltag
Checkliste Monat × Konto Pivot-Tabelle: sehen Sie, welche Monate noch nicht importiert wurden
Export Eigenständiges HTML (mit Diagrammen), CSV, XLSX
Konfigurierbares LLM Ollama, OpenAI, Claude, Groq, Gemini, LM Studio, any compatible API
PII-Bereinigung Automatischer IBAN- / Kartennummern- / Steuer-ID- / Namensschutz vor Remote-Aufrufen

Ein Befehl, App bereit

Native Desktop-App mit integrierter lokaler KI. Kein Docker, kein dauerhaft offenes Terminal.

📥 Installer herunterladen (DMG · MSIX · .deb · .rpm)
Schritt-für-Schritt-Anleitung mit Screenshots → Installation & erster Start

— oder, über das Terminal: —

bash
$ curl -fsSL https://raw.githubusercontent.com/drake69/spendif-ai/main/packaging/macos/install.sh | bash
bash
$ curl -fsSL https://raw.githubusercontent.com/drake69/spendif-ai/main/packaging/linux/install-debian.sh | bash
bash
$ curl -fsSL https://raw.githubusercontent.com/drake69/spendif-ai/main/packaging/linux/install-redhat.sh | bash
powershell
PS> irm https://raw.githubusercontent.com/drake69/spendif-ai/main/packaging/windows/install.ps1 | iex

Das Skript erkennt deine Hardware, lädt das für deinen RAM optimale KI-Modell (1–7 GB) und konfiguriert alles — kein Aufwand.
Die App erscheint in Launchpad / Startmenü / Dateimanager, einsatzbereit.

🐳 Bevorzugst du Docker?

Nur Docker Desktop erforderlich. Offizieller Container vom GitHub Container Registry, Browser auf http://localhost:8501.

🍎 macOS / 🐧 Linux
curl -fsSL https://raw.githubusercontent.com/drake69/spendif-ai/main/installer/install.sh | bash
🪟 Windows
irm https://raw.githubusercontent.com/drake69/spendif-ai/main/installer/install.ps1 | iex

🆘 Brauchst du Hilfe? Öffne ein Issue auf GitHub — Bugs, Fragen, Feature-Wünsche.
Gefällt dir Spendif.ai? Gib uns einen Stern — das hilft uns, in die offiziellen Paket-Registries (Homebrew Core, winget) zu kommen.


Bewährte Technologien, keine exotischen Abhängigkeiten

Kein LLM-Framework (kein LangChain) — KI-Backends verwenden die offiziellen SDKs direkt.

Python 3.13 + pandas
Streamlit Web-Oberfläche
SQLite + SQLAlchemy
Pydantic v2 Schema-Validierung
Plotly interaktive Diagramme
uv Paketmanager
Ollama lokale KI
chardet Zeichensatzerkennung
openpyxl Excel-Verarbeitung

Modulare Architektur, vollständige Testsuite

CSV/XLSX File Pre-processing (strip sparse rows, drop metadata columns) Schema classifier (SHA-256 fingerprint → LLM if new schema) Normalizer (encoding, parse_amount Decimal, SHA-256 tx_id) RF-03 Reconciler (credit card–current account, 3 phases) RF-04 Detector (internal transfers, symbolic matching) Description cleaner (LLM: noise → canonical text) Categorizer (rules → regex → LLM → fallback) Database (SQLAlchemy, idempotent upsert)

🔌 Neue LLM-Backends

LLMBackend implementieren (3 Methoden) und in BackendFactory registrieren. Funktioniert mit jeder OpenAI-kompatiblen API.

🏦 Neue Bankformate

Flow 2 erkennt sie automatisch per LLM ohne Codeänderungen. Das Schema wird gespeichert und bei nachfolgenden Importen wiederverwendet.

🏷️ Neue Kategorien

Über die Taxonomie-Seite, ohne den Code zu berühren. Die Taxonomie ist vollständig über die Oberfläche konfigurierbar.

🚀 REST API

Die process_file()-Pipeline ist vollständig von der UI getrennt — sie kann ohne Änderungen über FastAPI bereitgestellt werden.


bash — test suite
$ uv run pytest tests/ -v # 199 Tests, keine externen Abhängigkeiten
$ uv run pytest tests/ --cov=core # coverage of business logic layer

Was kommt



Beiträge sind willkommen

Bereiche, in denen Beiträge am nützlichsten sind:

🏦 Neue Bankformate

Wenn Ihre Bank nicht automatisch erkannt wird, öffnen Sie ein Issue mit einer anonymisierten CSV-Beispieldatei.

🧪 UI-Tests

Die Suite deckt die Business-Logic-Schicht ab, aber noch nicht die Streamlit-Oberfläche. Hier gibt es Raum für Beiträge.

🌍 Internationalisierung

Die Architektur unterstützt bereits mehrere Sprachen für Beschreibungen. Die UI ist auf Italienisch — es gibt Spielraum für weitere Sprachen.

⚡ Leistung

Batch-Kategorisierung ist der Engpass mit einem lokalen LLM. Hier gibt es Raum für Parallelisierung.


Go to GitHub