Open source · Offline-first · Bez subskrypcji

Twoja ujednolicona księga bankowa,
na Twoim komputerze

Importuj pliki ze wszystkich swoich banków. Spendify scala je, eliminuje podwójne księgowanie, klasyfikuje każdą transakcję — a Twoje dane nigdy nie opuszczają Twojego dysku.

▶ Zainstaluj teraz Zobacz na GitHubie

Python · Streamlit · SQLite · Ollama · konto niewymagane

🔒 Dane tylko na Twoim komputerze
🔁 Idempotentny import SHA-256
🏦 Wiele banków, wiele formatów
🤖 AI lokalnie lub w chmurze z redakcją PII
🧪 199 testów, zero zewnętrznych zależności

Trzy banki, trzy pliki, jeden bałagan

Każdego miesiąca: pobierz, otwórz Excela, wklej, popraw znaki, znajdź duplikaty. I za każdym razem coś się nie zgadza.

😩 Comiesięczna rutyna, której wszyscy nienawidzą

Trzy pliki z transakcjami z trzech różnych portali bankowych, niekompatybilne formaty CSV, daty w różnych formatach, kwoty z losowymi znakami. Łączenie ich ręcznie zajmuje godziny i zawsze prowadzi do błędów.

🔴 Problem nad problemami: podwójne księgowanie

Zakup w supermarkecie pojawia się na wyciągu z karty kredytowej oraz na koncie bieżącym jako miesięczne obciążenie zbiorcze. Sumując wszystko, wydatki wyglądają na dwukrotnie większe niż w rzeczywistości. Żadne popularne narzędzie nie rozwiązuje tego automatycznie.

🔄 Przelewy wewnętrzne, które fałszują saldo

Przelew na konto oszczędnościowe to nie wydatek. Ale jeśli zaimportujesz oba konta, ta sama transakcja pojawi się dwukrotnie — jako wypływ z konta bieżącego i jako wpływ na konto oszczędnościowe.

📋 Kategoryzacja, która nigdy się nie kończy

Klasyfikowanie 300 transakcji miesięcznie ręcznie to praca na pełen etat. Aplikacje chmurowe to robią, ale wysyłają Twoje dane bankowe na swoje serwery i pobierają miesięczną opłatę abonamentową.


Trzy kroki, żadnej czarnej magii

Bez integracji bankowych, bez konta, bez konfiguracji per plik.

Pobierz pliki ze swojego banku

Eksportuj pliki z transakcjami w formacie CSV lub XLSX z portalu swojego banku. Działa z każdym bankiem — Spendify automatycznie wykrywa format bez żadnej ręcznej konfiguracji.

Przeciągnij je do Spendify i kliknij Przetwórz

Wybierz wszystkie pliki naraz, nawet z różnych banków, nawet z różnych lat. Spendify wykrywa typ dokumentu, koryguje znaki, eliminuje podwójne księgowanie między kartą a kontem i klasyfikuje każdą transakcję.

Zobacz, dokąd idą Twoje pieniądze

Ujednolicona księga pokazuje wszystko w jednym miejscu: wykresy, filtry, eksport i pewność, że każde euro jest policzone dokładnie raz.


Algorytmy, które rozwiązują realne problemy

To nie jest ogólna aplikacja do budżetowania. Jest zaprojektowana wokół konkretnych problemów osób z wieloma kontami bankowymi.

RF-03

Uzgadnianie karta kredytowa–konto bieżące

Gdy karta kredytowa obciąża miesięczną kwotą konto bieżące, Spendify rozpoznaje tę zależność i automatycznie usuwa podwójne księgowanie.

Okno czasowe ±45 dni · 3 fazy dopasowania: okno przesuwne → suma podzbioru dla podzielonych kwot → częściowe uzgodnienie

RF-04

Wykrywanie przelewów wewnętrznych

Przelew z konta bieżącego na konto oszczędnościowe nie jest ani wydatkiem, ani przychodem: to transfer wewnętrzny. Spendify rozpoznaje go porównując kwoty, daty i nazwiska właścicieli kont w opisach — nawet jeśli oba pliki zostały zaimportowane w różnych momentach.

Dedup

Idempotentna deduplikacja

Każda transakcja ma unikalny identyfikator obliczony z jej zawartości (SHA-256). Jeśli zaimportujesz ten sam plik dwukrotnie, nic się nie stanie. Możesz ponownie zaimportować całą historię transakcji bez obaw o duplikaty.

Categories

Kaskadowa klasyfikacja hybrydowa

Kategoryzacja używa czterech poziomów po kolei:

  • 1Twoje reguły — "BIEDRONKA" → Zakupy spożywcze (stosowane wstecz)
  • 2Statyczne wyrażenia regularne — predefiniowane wzorce dla typowych kategorii
  • 3LLM — dla wszystkiego innego, AI lokalnie lub w chmurze
  • 4Fallback — "Do przejrzenia", jeśli wszystko inne zawiedzie

Twoje dane pozostają Twoje. Naprawdę.

To nie jest tylko slogan. To architektura.

🏠

Offline-first domyślnie

Spendify domyślnie używa Ollama lokalnie: silnika AI działającego na Twoim komputerze, bez połączenia z internetem. Twoje pliki z transakcjami nigdy nie opuszczają Twojego dysku.

🛡️

Automatyczna redakcja PII

Jeśli używasz OpenAI lub Claude, Spendify automatycznie usuwa wszystkie dane identyfikujące przed jakimkolwiek zdalnym wywołaniem:

IBAN → <ACCOUNT_ID> PAN → <CARD_ID> NIP → <FISCAL_ID> Imię → fikcyjny alias

Jeśli weryfikacja zawiedzie, wywołanie jest zablokowane — nie zdegradowane po cichu.

💾

Przenośna lokalna baza danych

Dane są przechowywane w pliku SQLite na Twoim komputerze. Możesz go skopiować, przenieść, zrobić kopię zapasową jak każdego innego pliku. Brak obowiązkowej chmury, brak konta, brak subskrypcji.


Nie dla każdego. Dla tych, którzy chcą realnej kontroli.

Cztery profile, które znajdują w Spendify coś, czego alternatywy nie oferują.

🏦

Osoby z kontami w wielu bankach

Konto bieżące + karta kredytowa + konto oszczędnościowe + rachunek maklerski? Spendify łączy je wszystkie w jedną księgę bez konieczności wykonywania czegokolwiek ręcznie.

📊

Osoby, które poważnie śledzą swoje finanse

Jeśli używasz Excela do swoich wydatków, Spendify może zastąpić tę rutynę: importujesz pliki raz, Spendify ujednolica i klasyfikuje, a Ty przeglądasz tylko wyjątki.

🔐

Osoby, które nie ufają chmurze

Brak obowiązkowego zdalnego backendu, brak konta, brak rejestracji. Twoje dane bankowe pozostają tam, gdzie ich miejsce: na Twoim komputerze.

👨‍💻

Developerzy

Otwartoźródłowy projekt w Pythonie z modułową architekturą, pipeline LLM na danych strukturalnych, pełna suita testów. Punkt wyjścia do eksperymentowania lub budowania własnych integracji.


Wszystko, czego potrzebujesz, nic więcej


Import wielobankowy CSV i XLSX z dowolnego banku
Auto-wykrywanie formatu Bez ręcznej konfiguracji dla każdego typu pliku
Ujednolicona księga Wszystkie transakcje w porządku chronologicznym, filtrowalne według daty / konta / kategorii / kontekstu
Automatyczna klasyfikacja 15 kategorii wydatków + 7 kategorii przychodów z podkategoriami
Konfigurowalna taksonomia Dodawaj / edytuj kategorie bez restartowania aplikacji
Reguły deterministyczne Reguły typu "BIEDRONKA → Zakupy spożywcze" stosowane wstecz
Interaktywna analityka 7 wykresów: trend miesięczny, saldo skumulowane, koło kategorii, top 10 sprzedawców
Konteksty życiowe Segmentuj wydatki według Praca / Wakacje / Codzienność
Lista kontrolna Tabela przestawna miesiąc × konto: zobacz, których miesięcy jeszcze nie zaimportowałeś
Eksport Samodzielny HTML (z wykresami), CSV, XLSX
Konfigurowalny LLM Ollama, OpenAI, Claude, Groq, Gemini, LM Studio, dowolne kompatybilne API
Sanityzacja PII Automatyczna ochrona IBAN / numeru karty / NIP / nazwiska przed zdalnymi wywołaniami

Jedno polecenie, aplikacja gotowa

Natywna aplikacja desktopowa z lokalnym AI w komplecie. Bez Dockera, bez utrzymywania otwartego terminala.

📥 Pobierz instalator (DMG · MSIX · .deb · .rpm)
Przewodnik krok po kroku ze zrzutami → instalacja i pierwsze uruchomienie

— lub z terminala: —

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

Skrypt wykrywa Twój sprzęt, pobiera optymalny model AI dla Twojej pamięci RAM (1–7 GB) i wszystko konfiguruje — zero interwencji.
Aplikacja pojawia się w Launchpadzie / Menu Start / menedżerze plików, gotowa do użycia.

🐳 Wolisz Docker?

Wymagany jest tylko Docker Desktop. Oficjalny kontener z GitHub Container Registry, przeglądarka pod adresem 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

🆘 Potrzebujesz pomocy? Otwórz zgłoszenie na GitHubie — błędy, pytania, prośby o nowe funkcje.
Podoba Ci się Spendif.ai? Daj nam gwiazdkę — pomaga nam dotrzeć do oficjalnych rejestrów pakietów (Homebrew Core, winget).


Dojrzałe technologie, bez egzotycznych zależności

Bez frameworka LLM (bez LangChain) — backendy AI używają oficjalnych SDK bezpośrednio.

Python 3.13 + pandas
Streamlit interfejs webowy
SQLite + SQLAlchemy
Pydantic v2 walidacja schematów
Plotly interaktywne wykresy
uv menedżer pakietów
Ollama lokalne AI
chardet wykrywanie kodowania
openpyxl parsowanie Excel

Modułowa architektura, pełna suita testów

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)

🔌 Nowe backendy LLM

Zaimplementuj LLMBackend (3 metody) i zarejestruj go w BackendFactory. Działa z dowolnym API kompatybilnym z OpenAI.

🏦 Nowe formaty bankowe

Flow 2 rozpoznaje je automatycznie poprzez LLM bez zmian w kodzie. Schemat jest zapisywany i ponownie używany przy kolejnych importach.

🏷️ Nowe kategorie

Ze strony Taksonomia, bez dotykania kodu. Taksonomia jest w pełni konfigurowalna z poziomu interfejsu.

🚀 REST API

Pipeline process_file() jest całkowicie oddzielony od UI — może zostać udostępniony przez FastAPI bez zmian.


bash — suita testów
$ uv run pytest tests/ -v # 199 testów, zero zewnętrznych zależności
$ uv run pytest tests/ --cov=core # pokrycie warstwy logiki biznesowej

Co nadchodzi



Wkład w projekt mile widziany

Obszary, w których wkład jest najbardziej przydatny:

🏦 Nowe formaty bankowe

Jeśli Twój bank nie jest automatycznie rozpoznawany, otwórz zgłoszenie z anonimizowaną próbką CSV.

🧪 Testy UI

Suita pokrywa warstwę logiki biznesowej, ale nie obejmuje jeszcze interfejsu Streamlit. Jest pole do współpracy.

🌍 Internacjonalizacja

Architektura już wspiera wiele języków dla opisów. UI jest po włosku — jest miejsce na dodanie kolejnych języków.

⚡ Wydajność

Wsadowa kategoryzacja jest wąskim gardłem przy lokalnym LLM. Jest miejsce na zrównoleglenie.


Przejdź na GitHub