Jarbas
Um assistente pessoal nativo de iPhone, com persona de mordomo, que cruza banco, saúde e localização e usa um modelo de linguagem pra transformar isso em cuidado ativo: organiza as finanças sozinho e só fala quando tem algo útil a dizer.
2026 · iOS
Ficha técnica
- Produto e design
- Josue Macedo
- Desenvolvimento iOS e backend
- Josue Macedo
Contexto
Jarbas é um assistente pessoal nativo pra iPhone, com persona de mordomo, que conecta as três camadas de dados que já existem na vida de qualquer pessoa: o extrato bancário (via Open Finance), a saúde do relógio (Apple Health) e os lugares que ela frequenta (geolocalização). Um modelo de linguagem transforma isso em cuidado ativo: organiza as finanças sozinho, acompanha objetivos de vida e cutuca na hora e no lugar certos.
Ele nasceu de um projeto pessoal com uma pergunta por trás: como seria um app desenhado do zero assumindo que existe um modelo de linguagem no meio dele, como o motor que categoriza, nomeia, decide e conversa, em vez de um chatbot pendurado numa aba. É também um experimento de método: construí o app inteiro em par com IA, do backend ao design system, e parte do case é essa experiência de desenvolvimento.
Desafio
Apps de finanças pessoais cobram trabalho do usuário: categorizar, renomear “PIX RECEBIDO CP :60701190” pra algo legível, marcar o que é assinatura, lembrar de abrir o app. Apps de hábitos vivem em outro silo, e os assistentes de voz não sabem nada da sua vida real. O resultado é que todo mundo abandona.
Os dados pra um assistente de verdade já existem, banco, relógio e localização, mas nenhum produto cruza os três. A oportunidade era inverter a carga: em vez de o usuário alimentar o app, o app entende sozinho e só fala quando tem algo útil a dizer.
Processo & decisões
A primeira regra foi nunca duplicar o iPhone. Se o Jarbas fizesse algo idêntico ao que o iOS já faz, ou exigisse que a pessoa carregasse à mão um dado que já existe numa tela do sistema, ele seria inútil. Isso cortou features inteiras, de uma lista de lembretes comum a um controle de tempo de tela por input manual, e forçou as integrações nativas certas: HealthKit com background delivery, geofencing e notificações contextuais.
Proatividade sem freio vira spam, e spam desinstala. O cérebro do Jarbas roda regras inegociáveis (silêncio de madrugada, no máximo três nudges por dia) e decide em duas camadas: um modelo barato avalia se vale interromper, um modelo forte decide o quê e como dizer. A maioria das avaliações termina em silêncio, e isso é uma feature, não uma falha.
Essa lógica de camadas vale pro custo também. Cada tarefa usa o menor modelo que dá conta: o barato faz o enriquecimento em batch das transações (título, categoria, emoji), o intermediário conversa, e o forte entra só como juiz das intervenções. Assim o custo de operação fica irrisório sem sacrificar qualidade onde o usuário sente.
Nenhuma heurística anda sozinha. Toda decisão automática do sistema, se isso é assinatura, se é dívida, qual é o nome da loja, tem override manual de um toque. A IA erra, e o design assume isso na interface em vez de esconder. Alguns trade-offs vieram de propósito: a definição estrita de assinatura (mesma cobrança, mesmo valor, mesmo dia) derruba falsos positivos mas atrasa a detecção de assinaturas novas, o que a marcação manual resolve; e, como o Open Finance gratuito sincroniza cerca de uma vez por dia, desenhei o app pra ciclos, não pra tempo real.
A conversa é a interface, e a voz é um modo dela. É por ali que o app aprende: o onboarding inteiro é um diálogo que extrai rotina, objetivos e memórias. Voz e texto são a mesma conversa em modos diferentes, com fallback pra um TTS on-device quando o remoto falha. E o Jarbas tem regras de escrita próprias, fala como gente, sem jargão de assistente.
Como conduzi
Projeto solo, de ponta a ponta: produto, design (mockup antes de cada tela e um design system neumórfico próprio), desenvolvimento iOS e backend, tudo em par com IA durante o ciclo inteiro, com o Claude Code como copiloto de arquitetura, código e revisão. A primeira versão saiu de um processo spec-driven, a especificação antes do código; depois que ela ficou sólida, passei pra uma postura de vibe coding pras melhorias e a evolução. O método é parte do resultado: dá pra uma pessoa só levar um produto desse escopo à produção quando a IA entra na execução, não só na conversa.
Resultado
Está em desenvolvimento ativo e rodando em produção pessoal, no meu uso diário como usuário zero, com dados reais de dois bancos. Nesse estágio, a IA já nomeou e categorizou sozinha cerca de 700 estabelecimentos, e o custo de operação fica na casa de centavos por dia.
O maior aprendizado até aqui é que produto com IA no meio é 20% prompt e 80% engenharia de confiabilidade: retry, fallback, validação de output, override manual. A segunda versão de quase toda feature nasceu de um erro real do modelo na primeira.