Publieke broncode · Offline-first · Geen abonnement

Je geünificeerde rekeningoverzicht,
op je eigen computer

Importeer bestanden van al je banken. Spendif.ai voegt ze samen, voorkomt dubbeltellingen, classificeert elke transactie, en je gegevens verlaten nooit je harde schijf.

▶ Nu installeren Bekijk op GitHub

Python · Streamlit · SQLite · Ollama · geen account vereist

🔒 Gegevens alleen op je eigen computer
🔁 Idempotente SHA-256-import
🏦 Multi-bank, multi-formaat
🤖 Lokale of cloud-AI met PII-redactie
🧪 199 tests, geen externe afhankelijkheden

Drie banken, drie bestanden, één chaos

Elke maand: downloaden, Excel openen, plakken, de tekens corrigeren, de duplicaten zoeken. En elke keer klopt er iets niet.

😩 De maandelijkse routine waar iedereen een hekel aan heeft

Drie transactiebestanden van drie verschillende bankportalen, incompatibele CSV-formaten, datums in verschillende formaten, bedragen met willekeurige tekens. Ze handmatig samenvoegen kost uren en levert altijd fouten op.

🔴 Het probleem der problemen: dubbeltellingen

De boodschappen verschijnen op het creditcardafschrift én op de betaalrekening als maandelijkse verzamelafschrijving. Tel je alles op, dan lijken je uitgaven het dubbele van wat ze werkelijk zijn. Geen enkele gangbare tool lost dit automatisch op.

🔄 Interne overboekingen die je saldo vertekenen

Een overboeking naar een spaarrekening is geen uitgave. Maar als je beide rekeningen importeert, verschijnt dezelfde transactie tweemaal: als uitgave op de betaalrekening en als inkomende op de spaarrekening.

📋 De categorisatie die nooit eindigt

300 transacties per maand handmatig classificeren is een baan op zich. Cloud-apps doen het wel, maar ze sturen je bankgegevens naar hun servers en rekenen een maandelijks abonnement.

De interface is beschikbaar in het Italiaans, Engels, Frans, Duits en Spaans: nog niet in het Nederlands.


Drie stappen, geen zwarte magie

Geen bankintegraties, geen account, geen configuratie per bestand.

Download bestanden van je bank

Exporteer transactiebestanden als CSV of XLSX vanuit het portaal van je bank. Werkt met elke bank: Spendif.ai herkent het formaat automatisch zonder handmatige configuratie.

Sleep ze in Spendif.ai en klik op Verwerken

Selecteer alle bestanden tegelijk, ook van verschillende banken, ook uit verschillende jaren. Spendif.ai herkent het documenttype, corrigeert tekens, voorkomt dubbeltellingen tussen kaart en rekening, en classificeert elke transactie.

Zie waar je geld naartoe gaat

Het geünificeerde grootboek toont alles op één plek: grafieken, filters, export, en de zekerheid dat elke euro precies één keer wordt geteld.



Het product, geen mockup

Drie schermen van de draaiende app. De getoonde gegevens zijn voorbeelddata.

Spendif.ai startscherm: grafiek van maandelijkse inkomsten en stroomdiagram
Home: inkomsten per maand en de stroom inkomsten → uitgaven
Spendif.ai analyse: ringdiagram van uitgaven per categorie en treemap
Analyse: verdeling van uitgaven per categorie en treemap categorie → subcategorie
Spendif.ai correctiepaneel: transactiekeuze, nieuwe categorie en de optie om een deterministische regel op te slaan
Controle: corrigeer één transactie, pas dezelfde correctie toe op alle identieke, of bewaar hem als regel

Algoritmes die echte problemen oplossen

Dit is geen generieke budget-app. Het is ontworpen rond de specifieke problemen van mensen met meerdere rekeningen.

RF-03

Reconciliatie creditcard-betaalrekening

Wanneer de creditcard het maandbedrag afschrijft van de betaalrekening, herkent Spendif.ai het verband en verwijdert de dubbeltelling automatisch.

Tijdvenster ±45 dagen · 3 matchingfasen: glijdend venster → subset sum voor opgesplitste bedragen → gedeeltelijke reconciliatie

RF-04

Detectie van interne overboekingen

Een overboeking van een betaalrekening naar een spaarrekening is geen uitgave en geen inkomen: het is een interne overboeking. Spendif.ai herkent dit door bedragen, datums en rekeninghoudersnamen in de omschrijvingen te vergelijken, zelfs als de twee bestanden op verschillende momenten zijn geïmporteerd.

Dedup

Idempotente deduplicatie

Elke transactie heeft een unieke ID berekend uit de inhoud (SHA-256). Als je hetzelfde bestand twee keer importeert, gebeurt er niets. Je kunt je hele transactiehistorie opnieuw importeren zonder angst voor duplicaten.

Categories

Hybride classificatie in cascade

De categorisatie gebruikt vier niveaus achter elkaar:

  • 1Je eigen regels: "ALBERT HEIJN" → Boodschappen (met terugwerkende kracht toegepast)
  • 2Statische regex: vooraf gedefinieerde patronen voor gangbare categorieën
  • 3LLM: voor al het overige, lokale of cloud-AI
  • 4Fallback: "Te beoordelen" als al het andere faalt

Je gegevens blijven van jou. Echt waar.

Het is geen slogan. Het is de architectuur.

🏠

Standaard offline-first

Spendif.ai gebruikt standaard Ollama lokaal: een AI-engine die draait op je eigen computer, zonder internetverbinding. Je transactiebestanden verlaten nooit je harde schijf.

🛡️

Automatische PII-redactie

Als je OpenAI of Claude gebruikt, verwijdert Spendif.ai automatisch alle identificerende gegevens vóór elke remote-aanroep:

IBAN → <ACCOUNT_ID> PAN → <CARD_ID> BSN → <FISCAL_ID> Naam → fictief alias

Als de controle faalt, wordt de aanroep geblokkeerd, niet stilzwijgend gedegradeerd.

💾

Portable lokale database

De gegevens worden opgeslagen in een SQLite-bestand op je computer. Je kunt het kopiëren, verplaatsen of er een back-up van maken zoals van elk ander bestand. Geen verplichte cloud, geen account, geen abonnement.


Niet voor iedereen. Voor wie echte controle wil.

Vier profielen die in Spendif.ai iets vinden wat alternatieven niet bieden.

🏦

Mensen met rekeningen bij meerdere banken

Betaalrekening + creditcard + spaarrekening + beleggingsrekening? Spendif.ai voegt ze allemaal samen tot één overzicht zonder dat je iets handmatig hoeft te doen.

📊

Mensen die hun financiën serieus volgen

Als je Excel gebruikt voor je uitgaven, kan Spendif.ai die routine vervangen: je importeert de bestanden één keer, Spendif.ai voegt samen en classificeert, en jij beoordeelt alleen de uitzonderingen.

🔐

Mensen die de cloud niet vertrouwen

Geen verplichte remote backend, geen account, geen registratie. Je bankgegevens blijven waar ze horen: op je eigen computer.

👨‍💻

Developers

Python-project met publieke broncode, modulaire architectuur, LLM-pipeline op gestructureerde data, volledige testsuite. Een startpunt om mee te experimenteren of op maat gemaakte integraties te bouwen.


Alles wat je nodig hebt, niets meer


Multi-bank-import CSV en XLSX van elke bank
Auto-detectie van formaat Geen handmatige configuratie per bestandstype
Geünificeerd grootboek Alle transacties op chronologische volgorde, filterbaar op datum / rekening / categorie / context
Automatische classificatie 15 uitgavencategorieën + 7 inkomstencategorieën met subcategorieën
Aanpasbare taxonomie Categorieën toevoegen / bewerken zonder de app opnieuw te starten
Deterministische regels Regels als "ALBERT HEIJN → Boodschappen", met terugwerkende kracht toegepast
Interactieve analytics 7 grafieken: maandelijkse trend, cumulatief saldo, categorie-pie, top 10 verkopers
Levenscontexten Segmenteer uitgaven op Werk / Vakantie / Dagelijks leven
Check List Pivot-tabel maand × rekening: zie welke maanden je nog niet hebt geïmporteerd
Export Standalone HTML (met grafieken), CSV, XLSX
Configureerbare LLM Ollama, OpenAI, Claude, Groq, Gemini, LM Studio, elke compatibele API
PII-sanitatie Automatische bescherming van IBAN / kaartnummer / BSN / naam vóór remote-aanroepen

Eén commando, app klaar voor gebruik

Native desktop-app met lokale AI inbegrepen. Geen Docker, geen Terminal die openblijft.

📥 Installer downloaden (DMG · MSIX · .deb · .rpm)
Stapsgewijze gids met schermafbeeldingen → installatie & eerste start

of, vanuit de terminal:

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

Het script detecteert je hardware, downloadt het optimale AI-model voor je RAM (1-7 GB) en regelt alles: zonder enige tussenkomst.
De app verschijnt in Launchpad / Startmenu / bestandsbeheer, klaar voor gebruik.

🐳 Liever Docker?

Alleen Docker Desktop vereist. Officiële container van GitHub Container Registry, browser op http://localhost:8501.

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

🆘 Hulp nodig? Open een issue op GitHub: bugs, vragen, feature-verzoeken.
Vind je Spendif.ai leuk? Geef ons een ster: het helpt ons de officiële package registries te bereiken (Homebrew Core, winget).


De vragen die ik het vaakst krijg

Wat mensen vragen voordat ze het installeren.

Maakt Spendif.ai verbinding met mijn bank?

Nee, nooit. Geen Open Banking, geen PSD2, geen bankwachtwoord. Je downloadt het transactiebestand zelf bij je bank, als CSV of XLSX, en sleept het in de app.

Verlaten mijn gegevens mijn computer?

Nee. Spendif.ai bewaart alles in een lokale SQLite-database in ~/.spendifai/ en werkt zonder verbinding. Kies je voor een extern LLM, dan worden IBAN's en namen uit de omschrijvingen gehaald voordat er iets verstuurd wordt.

Wat kost het? Is het voor altijd gratis?

Vandaag is Spendif.ai gratis voor persoonlijk gebruik, zonder abonnement en zonder verborgen kosten. De broncode is publiek en je kunt hem lezen. Er kan later een betaalde versie met extra functies komen: de versie die je hebt geïnstalleerd blijft werken, en je gegevens blijven in een bestand op je eigen computer dat je altijd kunt meenemen.

Moet ik een account aanmaken?

Nee. Geen e-mail, geen registratie, geen wachtwoord om te herstellen. Je installeert de app en gebruikt hem.

Op welke systemen werkt het?

Windows, Linux en macOS 12 Monterey of nieuwer op Apple Silicon (M1 of later). Er is geen build voor Intel-Macs.

Welke banken worden ondersteund?

Elke bank waarbij je transacties kunt exporteren als CSV of XLSX. Spendif.ai herkent het formaat zelf en je kunt bestanden van verschillende banken samen importeren.

Wat gebeurt er als ik hetzelfde bestand twee keer importeer?

Niets ergs: transacties die er al staan worden niet gedupliceerd. Je kunt hetzelfde bestand zo vaak opnieuw importeren als je wilt.

Is er een telefoon-app?

Nee, Spendif.ai is een desktoptoepassing. Een companion-app om alleen contante uitgaven vast te leggen staat op de planning, maar heeft geen datum.


Volwassen technologieën, geen exotische afhankelijkheden

Geen LLM-framework (geen LangChain): AI-backends gebruiken direct de officiële SDK's.

Python 3.13 + pandas
Streamlit web-interface
SQLite + SQLAlchemy
Pydantic v2 schemavalidatie
Plotly interactieve grafieken
uv package manager
Ollama lokale AI
chardet encoding-detectie
openpyxl Excel-parsing

Modulaire architectuur, volledige 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)

🔌 Nieuwe LLM-backends

Implementeer LLMBackend (3 methoden) en registreer hem in BackendFactory. Werkt met elke OpenAI-compatibele API.

🏦 Nieuwe bankformaten

Flow 2 herkent ze automatisch via LLM zonder codewijzigingen. Het schema wordt opgeslagen en hergebruikt bij volgende imports.

🏷️ Nieuwe categorieën

Vanuit de pagina Taxonomie, zonder de code aan te raken. De taxonomie is volledig configureerbaar vanuit de interface.

🚀 REST API

De pipeline process_file() staat volledig los van de UI: hij kan zonder wijzigingen via FastAPI worden ontsloten.


bash: testsuite
$ uv run pytest tests/ -v # 199 tests, geen externe afhankelijkheden
$ uv run pytest tests/ --cov=core # coverage van de business-logic-laag

Wat eraan komt



Bijdragen zijn welkom

Gebieden waar bijdragen het meest van pas komen:

🏦 Nieuwe bankformaten

Als jouw bank niet automatisch wordt herkend, open dan een issue met een geanonimiseerd CSV-voorbeeld.

🧪 UI-tests

De suite dekt de business-logic-laag, maar nog niet de Streamlit-interface. Hier is ruimte om bij te dragen.

🌍 Internationalisatie

De UI is al geïnternationaliseerd in vijf talen (IT, EN, FR, DE, ES). Er is ruimte om er meer toe te voegen.

⚡ Performance

Batch-categorisatie is de bottleneck met een lokale LLM. Er is ruimte voor parallellisatie.


Naar GitHub