Open source · Offline-first · Sem assinatura

Seu extrato bancário unificado,
no seu computador

Importe arquivos de todos os seus bancos. Spendify os unifica, elimina a contagem dupla, classifica cada transação — e seus dados nunca saem do seu disco.

▶ Instalar agora Ver no GitHub

Python · Streamlit · SQLite · Ollama · nenhuma conta necessária

🔒 Dados apenas no seu computador
🔁 Importação idempotente SHA-256
🏦 Multi-banco, multi-formato
🤖 IA local ou na nuvem com redação de PII
🧪 199 testes, zero dependências externas

Três bancos, três arquivos, uma bagunça

Todo mês: baixar, abrir o Excel, colar, corrigir os sinais, encontrar as duplicatas. E toda vez algo não bate.

😩 A rotina mensal que todos detestam

Três arquivos de movimentações de três portais bancários diferentes, formatos CSV incompatíveis, datas em formatos diferentes, valores com sinais aleatórios. Unificar tudo manualmente leva horas e sempre produz erros.

🔴 O problema de todos os problemas: contagem dupla

A compra no supermercado aparece na fatura do cartão de crédito e na conta corrente como débito mensal agregado. Somando tudo, suas despesas parecem o dobro do que realmente são. Nenhuma ferramenta comum resolve isso automaticamente.

🔄 Transferências internas que distorcem seu saldo

Uma transferência para a poupança não é uma despesa. Mas se você importar ambas as contas, a mesma transação aparece duas vezes — como saída da conta corrente e como entrada na poupança.

📋 A categorização que nunca termina

Classificar 300 transações por mês manualmente é um trabalho. Apps na nuvem fazem isso, mas enviam seus dados bancários para seus servidores e cobram uma assinatura mensal.


Três passos, sem mágica

Sem integrações bancárias, sem conta, sem configuração por arquivo.

Baixe os arquivos do seu banco

Exporte arquivos de movimentações como CSV ou XLSX do portal do seu banco. Funciona com qualquer banco — Spendify detecta automaticamente o formato sem configuração manual.

Arraste para o Spendify e clique em Processar

Selecione todos os arquivos de uma vez, mesmo de bancos diferentes, mesmo de anos diferentes. Spendify detecta o tipo de documento, corrige sinais, elimina a contagem dupla entre cartão e conta, e classifica cada transação.

Veja para onde vai seu dinheiro

O extrato unificado mostra tudo em um só lugar: gráficos, filtros, exportação, e a certeza de que cada real é contado exatamente uma vez.


Algoritmos que resolvem problemas reais

Isso não é um app genérico de orçamento. Foi projetado para os problemas específicos de quem tem múltiplas contas bancárias.

RF-03

Conciliação cartão de crédito–conta corrente

Quando o cartão de crédito debita o valor mensal na conta corrente, Spendify reconhece a relação e remove a contagem dupla automaticamente.

Janela temporal ±45 dias · 3 fases de correspondência: janela deslizante → soma de subconjuntos para valores divididos → conciliação parcial

RF-04

Detecção de transferências internas

Uma transferência da conta corrente para a poupança não é despesa nem receita: é uma transferência interna. Spendify reconhece comparando valores, datas e nomes do titular nas descrições — mesmo que os dois arquivos tenham sido importados em momentos diferentes.

Dedup

Deduplicação idempotente

Cada transação tem um ID único calculado a partir do seu conteúdo (SHA-256). Se você importar o mesmo arquivo duas vezes, nada acontece. Você pode reimportar todo o seu histórico de transações sem medo de duplicatas.

Categories

Classificação híbrida em cascata

A categorização usa quatro níveis em sequência:

  • 1Suas regras — "CONAD" → Supermercado (aplicado retroativamente)
  • 2Regex estático — padrões predefinidos para categorias comuns
  • 3LLM — para todo o resto, IA local ou na nuvem
  • 4Fallback — "A revisar" se tudo mais falhar

Seus dados continuam sendo seus. De verdade.

Não é apenas um slogan. É a arquitetura.

🏠

Offline-first por padrão

Spendify usa o Ollama localmente por padrão: um motor de IA que roda no seu computador, sem conexão com a internet. Seus arquivos de movimentações nunca saem do seu disco.

🛡️

Redação automática de PII

Se você usar OpenAI ou Claude, Spendify remove automaticamente todos os dados identificáveis antes de qualquer chamada remota:

IBAN → <ACCOUNT_ID> PAN → <CARD_ID> CPF → <FISCAL_ID> Nome → alias fictício

Se a verificação falhar, a chamada é bloqueada — não silenciosamente degradada.

💾

Banco de dados local portátil

Os dados são armazenados em um arquivo SQLite no seu computador. Você pode copiar, mover, fazer backup como qualquer outro arquivo. Sem nuvem obrigatória, sem conta, sem assinatura.


Não é para todos. É para quem quer controle real.

Quatro perfis que encontram no Spendify algo que as alternativas não oferecem.

🏦

Pessoas com contas em múltiplos bancos

Conta corrente + cartão de crédito + poupança + conta de investimentos? Spendify unifica tudo em um único extrato sem fazer nada manualmente.

📊

Pessoas que controlam suas finanças a sério

Se você usa Excel para suas despesas, Spendify pode substituir essa rotina: você importa os arquivos uma vez, Spendify unifica e classifica, você revisa apenas as exceções.

🔐

Pessoas que não confiam na nuvem

Sem backend remoto obrigatório, sem conta, sem cadastro. Seus dados bancários ficam onde devem ficar: no seu computador.

👨‍💻

Desenvolvedores

Projeto Python open source com arquitetura modular, pipeline de LLM em dados estruturados, suíte de testes completa. Um ponto de partida para experimentar ou construir integrações personalizadas.


Tudo que você precisa, nada além


Importação multi-banco CSV e XLSX de qualquer banco
Detecção automática de formato Sem configuração manual para cada tipo de arquivo
Extrato unificado Todas as transações em ordem cronológica, filtráveis por data / conta / categoria / contexto
Classificação automática 15 categorias de despesas + 7 categorias de receitas com subcategorias
Taxonomia personalizável Adicionar / editar categorias sem reiniciar o app
Regras determinísticas Regras "ESSELUNGA → Supermercado" aplicadas retroativamente
Análises interativas 7 gráficos: tendência mensal, saldo acumulado, pizza por categoria, top 10 comerciantes
Contextos de vida Segmente despesas por Trabalho / Férias / Dia a dia
Check List Tabela dinâmica mês × conta: veja quais meses você ainda não importou
Exportação HTML autônomo (com gráficos), CSV, XLSX
LLM configurável Ollama, OpenAI, Claude, Groq, Gemini, LM Studio, qualquer API compatível
Sanitização de PII Proteção automática de IBAN / número do cartão / CPF / nome antes de chamadas remotas

Um comando, app pronto

App desktop nativa com IA local incluída. Sem Docker, sem Terminal sempre aberto.

📥 Baixar instalador (DMG · MSIX · .deb · .rpm)
Guia passo a passo com capturas → instalação e primeira execução

— ou, pelo 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

O script detecta seu hardware, baixa o modelo de IA ideal para sua RAM (1–7 GB) e configura tudo — zero intervenção.
O app aparece em Launchpad / Menu Iniciar / gerenciador de arquivos, pronto para usar.

🐳 Prefere Docker?

Apenas o Docker Desktop é necessário. Container oficial do GitHub Container Registry, navegador em 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

🆘 Precisa de ajuda? Abra uma issue no GitHub — bugs, perguntas, pedidos de funcionalidades.
Gosta do Spendif.ai? Dê-nos uma estrela — ajuda a chegar aos registros oficiais (Homebrew Core, winget).


Tecnologias maduras, sem dependências exóticas

Sem framework de LLM (sem LangChain) — backends de IA usam os SDKs oficiais diretamente.

Python 3.13 + pandas
Streamlit interface web
SQLite + SQLAlchemy
Pydantic v2 validação de schema
Plotly gráficos interativos
uv gerenciador de pacotes
Ollama IA local
chardet detecção de encoding
openpyxl parsing de Excel

Arquitetura modular, suíte de testes 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)

🔌 Novos backends de LLM

Implemente LLMBackend (3 métodos) e registre no BackendFactory. Funciona com qualquer API compatível com OpenAI.

🏦 Novos formatos bancários

O Flow 2 os reconhece automaticamente via LLM sem alterações no código. O schema é salvo e reutilizado nas importações seguintes.

🏷️ Novas categorias

Pela página de Taxonomia, sem tocar no código. A taxonomia é totalmente configurável pela interface.

🚀 REST API

O pipeline process_file() é completamente separado da UI — pode ser exposto via FastAPI sem alterações.


bash — test suite
$ uv run pytest tests/ -v # 199 tests, zero external dependencies
$ uv run pytest tests/ --cov=core # coverage of business logic layer

O que está por vir



Contribuições são bem-vindas

Áreas onde contribuições são mais úteis:

🏦 Novos formatos bancários

Se o seu banco não é reconhecido automaticamente, abra uma issue com um CSV anonimizado de exemplo.

🧪 Testes de UI

A suíte cobre a camada de lógica de negócios, mas ainda não a interface Streamlit. Há espaço para contribuir.

🌍 Internacionalização

A arquitetura já suporta múltiplos idiomas para descrições. A UI está em italiano — há escopo para adicionar outros idiomas.

⚡ Performance

A categorização em lote é o gargalo com LLM local. Há espaço para paralelização.


Ir para o GitHub