Open source · Offline-first · Sin suscripción

Su libro de cuentas bancario unificado,
en su ordenador

Importe archivos de todos sus bancos. Spendify los fusiona, elimina los dobles conteos, clasifica cada transacción — y sus datos nunca salen de su disco.

▶ Instalar ahora View on GitHub

Python · Streamlit · SQLite · Ollama · sin cuenta requerida

🔒 Datos solo en su ordenador
🔁 Importación idempotente SHA-256
🏦 Multi-banco, multi-formato
🤖 IA local o en la nube con redacción de PII
🧪 199 tests, cero dependencias externas

Tres bancos, tres archivos, un caos

Cada mes: descargar, abrir Excel, pegar, corregir los signos, encontrar los duplicados. Y cada vez algo no cuadra.

😩 La rutina mensual que todos odian

Tres archivos de movimientos de tres portales bancarios diferentes, formatos CSV incompatibles, fechas en formatos diferentes, importes con signos aleatorios. Fusionarlos a mano lleva horas y siempre produce errores.

🔴 El problema de todos los problemas: el doble conteo

La compra del supermercado aparece en el extracto de la tarjeta de crédito y en la cuenta corriente como un cargo mensual agregado. Sumándolo todo, sus gastos parecen el doble de lo que realmente son. Ninguna herramienta común resuelve esto automáticamente.

🔄 Las transferencias internas que distorsionan su balance

Una transferencia a una cuenta de ahorro no es un gasto. Pero si importa ambas cuentas, la misma transacción aparece dos veces — como salida de la cuenta corriente y como entrada en la cuenta de ahorro.

📋 La categorización que nunca termina

Clasificar 300 transacciones al mes a mano es un trabajo. Las aplicaciones en la nube lo hacen, pero envían sus datos bancarios a sus servidores y le cobran una suscripción mensual.


Tres pasos, sin magia negra

Sin integraciones bancarias, sin cuenta, sin configuración por archivo.

Descargue archivos de su banco

Exporte archivos de movimientos como CSV o XLSX desde el portal de su banco. Funciona con cualquier banco — Spendify detecta automáticamente el formato sin configuración manual.

Arrástrelos a Spendify y haga clic en Procesar

Seleccione todos los archivos a la vez, incluso de diferentes bancos, incluso de diferentes años. Spendify detecta el tipo de documento, corrige los signos, elimina los dobles conteos entre tarjeta y cuenta, y clasifica cada transacción.

Vea adónde va su dinero

El libro de cuentas unificado muestra todo en un solo lugar: gráficos, filtros, exportación, y la certeza de que cada euro se cuenta exactamente una vez.


Algoritmos que resuelven problemas reales

Esta no es una aplicación de presupuesto genérica. Está diseñada en torno a los problemas específicos de personas con múltiples cuentas bancarias.

RF-03

Conciliación tarjeta de crédito–cuenta corriente

Cuando la tarjeta de crédito carga el importe mensual en la cuenta corriente, Spendify reconoce la relación y elimina el doble conteo automáticamente.

Ventana temporal ±45 días · 3 fases de coincidencia: ventana deslizante → suma de subconjuntos para importes divididos → conciliación parcial

RF-04

Detección de transferencias internas

Una transferencia de una cuenta corriente a una cuenta de ahorro no es ni un gasto ni un ingreso: es una transferencia interna. Spendify la reconoce comparando importes, fechas y nombres de titulares en las descripciones — incluso si los dos archivos se importaron en momentos diferentes.

Dedup

Deduplicación idempotente

Cada transacción tiene un ID único calculado a partir de su contenido (SHA-256). Si importa el mismo archivo dos veces, no pasa nada. Puede reimportar todo su historial de transacciones sin temor a duplicados.

Categories

Clasificación híbrida en cascada

La categorización utiliza cuatro niveles en secuencia:

  • 1Sus reglas — "CONAD" → Alimentación (aplicadas retroactivamente)
  • 2Regex estáticas — patrones predefinidos para categorías comunes
  • 3LLM — para todo lo demás, IA local o en la nube
  • 4Fallback — "Por revisar" si todo lo demás falla

Sus datos siguen siendo suyos. En serio.

No es solo un eslogan. Es la arquitectura.

🏠

Offline-first por defecto

Spendify usa Ollama en local por defecto: un motor de IA que se ejecuta en su ordenador, sin conexión a internet. Sus archivos de movimientos nunca salen de su disco.

🛡️

Redacción automática de PII

Si usa OpenAI o Claude, Spendify elimina automáticamente todos los datos identificativos antes de cualquier llamada remota:

IBAN → <ACCOUNT_ID> PAN → <CARD_ID> Tax ID → <FISCAL_ID> Nombre → alias ficticio

Si la verificación falla, la llamada se bloquea — no se degrada silenciosamente.

💾

Base de datos local portátil

Los datos se almacenan en un archivo SQLite en su ordenador. Puede copiarlo, moverlo, respaldarlo como cualquier otro archivo. Sin nube obligatoria, sin cuenta, sin suscripción.


No es para todos. Para quienes quieren control real.

Cuatro perfiles que encuentran en Spendify algo que las alternativas no ofrecen.

🏦

Personas con cuentas en varios bancos

¿Cuenta corriente + tarjeta de crédito + cuenta de ahorro + cuenta de inversión? Spendify las unifica todas en un solo libro de cuentas sin tener que hacer nada manualmente.

📊

Personas que controlan sus finanzas en serio

Si usa Excel para sus gastos, Spendify puede reemplazar esa rutina: importa los archivos una vez, Spendify unifica y clasifica, usted revisa solo las excepciones.

🔐

Personas que no confían en la nube

Sin backend remoto obligatorio, sin cuenta, sin registro. Sus datos bancarios se quedan donde deben estar: en su ordenador.

👨‍💻

Desarrolladores

Proyecto Python de código abierto con arquitectura modular, pipeline LLM sobre datos estructurados, suite de tests completa. Un punto de partida para experimentar o construir integraciones personalizadas.


Todo lo que necesita, nada más


Importación multi-banco CSV y XLSX de cualquier banco
Detección automática de formato Sin configuración manual para cada tipo de archivo
Libro de cuentas unificado Todas las transacciones en orden cronológico, filtrables por fecha / cuenta / categoría / contexto
Clasificación automática 15 categorías de gastos + 7 categorías de ingresos con subcategorías
Taxonomía personalizable Agregar / editar categorías sin reiniciar la aplicación
Reglas deterministas Reglas "ESSELUNGA → Alimentación" aplicadas retroactivamente
Análisis interactivos 7 gráficos: tendencia mensual, saldo acumulado, gráfico circular por categoría, top 10 comercios
Contextos de vida Segmentar gastos por Trabajo / Vacaciones / Vida cotidiana
Lista de verificación Tabla dinámica mes × cuenta: vea qué meses aún no ha importado
Exportación HTML independiente (con gráficos), CSV, XLSX
LLM configurable Ollama, OpenAI, Claude, Groq, Gemini, LM Studio, any compatible API
Saneamiento de PII Protección automática de IBAN / número de tarjeta / NIF / nombre antes de llamadas remotas

Un comando, aplicación lista

App de escritorio nativa con IA local incluida. Sin Docker, sin Terminal siempre abierto.

📥 Descargar instalador (DMG · MSIX · .deb · .rpm)
Guía paso a paso con capturas → instalación y primer inicio

— o, desde la 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

El script detecta tu hardware, descarga el modelo de IA óptimo para tu RAM (1–7 GB) y configura todo — cero intervención.
La app aparece en Launchpad / Menú Inicio / explorador de archivos, lista para usar.

🐳 ¿Prefieres Docker?

Solo se requiere Docker Desktop. Contenedor oficial desde GitHub Container Registry, navegador en 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

🆘 ¿Necesitas ayuda? Abre una issue en GitHub — bugs, preguntas, peticiones de funcionalidades.
¿Te gusta Spendif.ai? Danos una estrella — nos ayuda a llegar a los registros oficiales (Homebrew Core, winget).


Tecnologías maduras, sin dependencias exóticas

Sin framework LLM (sin LangChain) — los backends de IA usan los SDK oficiales directamente.

Python 3.13 + pandas
Streamlit interfaz web
SQLite + SQLAlchemy
Pydantic v2 validación de esquemas
Plotly gráficos interactivos
uv gestor de paquetes
Ollama IA local
chardet detección de codificación
openpyxl análisis de Excel

Arquitectura modular, suite de tests completa

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)

🔌 Nuevos backends LLM

Implemente LLMBackend (3 métodos) y regístrelo en BackendFactory. Funciona con cualquier API compatible con OpenAI.

🏦 Nuevos formatos bancarios

El Flow 2 los reconoce automáticamente vía LLM sin cambios en el código. El esquema se guarda y reutiliza en importaciones posteriores.

🏷️ Nuevas categorías

Desde la página de Taxonomía, sin tocar el código. La taxonomía es completamente configurable desde la interfaz.

🚀 REST API

El pipeline process_file() está completamente separado de la UI — se puede exponer vía FastAPI sin cambios.


bash — test suite
$ uv run pytest tests/ -v # 199 tests, cero dependencias externas
$ uv run pytest tests/ --cov=core # coverage of business logic layer

Lo que viene



Las contribuciones son bienvenidas

Áreas donde las contribuciones son más útiles:

🏦 Nuevos formatos bancarios

Si su banco no es reconocido automáticamente, abra un issue con una muestra CSV anonimizada.

🧪 Tests de UI

La suite cubre la capa de lógica de negocio pero aún no la interfaz Streamlit. Hay espacio para contribuir.

🌍 Internacionalización

La arquitectura ya soporta múltiples idiomas para descripciones. La UI está en italiano — hay margen para agregar otros idiomas.

⚡ Rendimiento

La categorización por lotes es el cuello de botella con un LLM local. Hay espacio para paralelización.


Go to GitHub