Do aporte à folha de ordens
O Assay é um app de finanças pessoais que roda 100% local, num Raspberry Pi. Você diz quanto vai aportar; um comitê de agentes pesquisa o mercado e devolve ativo, quantidade e preço limite. Gastos, cartões e imposto de renda ficam no mesmo app.
Como sai a folha de ordens
Você registra o aporte. O comitê roda de madrugada, à 1h, e a folha fica pronta quando você acorda, com aviso no app e push no celular.
As etapas rodam numa só sessão do Claude Code headless: leitura macro e alocação, seleção do universo, due diligence de cada ativo e um comitê final de risco que fecha as ordens. Cada etapa herda o contexto e o JSON estruturado da anterior, e as fontes pesquisadas vêm datadas, com URL.
A folha não depende de corretora. O app não fala com nenhuma: você executa onde quiser e marca o que comprou, ou pula a ordem.
O que o código confere
- A soma das ordens
- O backend compara o total da folha com o valor do aporte, com tolerância de 2%. Se não bater, o comitê tem uma única chance de corrigir, na mesma sessão.
- A quantidade
- Sai da cotação atual, não de um número que o modelo lembrou: lote de 100 no ticker e o resto no fracionário.
- A retomada
- O id da sessão fica salvo no aporte. Se o processo cai, a próxima execução volta da primeira etapa pendente; se bate o limite de uso, espera o reset e repete a etapa. Um lock por aporte impede rodar duas vezes.
- A revisão
- Toda semana o comitê revê o macro e as posições. Cada compra é um lote com trava própria, 30 dias em ações e nenhuma no CDB, e volta ao comitê quando a trava vence.
- O modelo do chat
- Regras determinísticas escolhem o modelo de cada mensagem do consultor. Uma triagem feita por modelo custava 5,6 s por mensagem no Pi e foi removida.
Gastos e cartões no mesmo lugar
Um gasto é lançado conversando com o consultor do app, que também lê foto de recibo e de extrato.
A fatura de cada cartão é calculada pelo dia de fechamento, e uma compra parcelada vira uma linha por parcela. Vale-refeição e vale-alimentação ficam em saldos separados, para não se misturarem com dinheiro que pode ser investido. Salário, aluguel e assinaturas entram como recorrências na previsão do mês.
Imposto de renda apurado por mês
Vendas de ações, isenção até R$ 20 mil vendidos no mês, prejuízo a compensar e DARF devido. No fim do ano, o app lista as posições em 31/12 pelo custo de aquisição, a base da ficha de bens e direitos.
A apuração é simplificada e a própria tela pede para conferir com um contador.
Roda em casa, num Raspberry Pi
Sem nuvem, sem login e sem banco externo. O backend é FastAPI com SQLite, o frontend é Next.js 16 e o comitê roda no Claude Code headless. Onze timers do systemd cuidam do aporte agendado, da revisão semanal, da retomada, de preços, alertas, relatórios e backup.
São 415 testes de backend em pytest, e o CI roda ruff, pytest, lint, type-check e build do frontend. Cada decisão de arquitetura fica registrada com o motivo, de D1 a D53.
Python 3.12, FastAPI, SQLite, Next.js 16, Claude Code headless, Web Push e systemd.
Ver o código no GitHub