Agente desktop open source que vê o que você vê, lê onde você está apontando o cursor, ouve o que você diz, age na web por você e aprende como você trabalha. Tudo rodando local por padrão. Rust + Tauri. Escada de modelos Gemma → Claude. Memória persistente. Sem mandar voz nem tela pra nuvem de Big Tech.
Cloud só com opt-in explícito. Ação irreversível aguarda confirmação humana.
STATUS HONESTO
0.1versão atual
v0 Ouvido funciona. v0.1 plugando whisper.cpp.
2workstreams ativos
Onda 3 (Voz+Visão+Memória) · Mãos T2 (browser).
3modelos na escada
Gemma 4B local → Claude Sonnet 4.6 → Opus 4.8.
100%local-first
STT/TTS/VAD rodam offline. Cloud só com opt-in explícito.
DIFERENCIAL
Cursor + tela + voz = um contexto só.
Quando você diz "resume isso aqui", o "isso aqui" é resolvido pelo que está sob o cursor + o que está na tela ativa + a memória de conversas anteriores sobre aquele aplicativo. Sem ping-pong de "o quê?", sem upload de print manual, sem copia-cola.
Assistentes comerciais veem uma coisa: ou texto que você digita (ChatGPT desktop), ou imagem que você cola (Copilot). MIND vê tudo ao mesmo tempo, com um contexto unificado vindo da árvore de acessibilidade do Windows e da janela ativa, não de pixels.
OS 5 PILARES
Cinco sentidos. Um agente.
Estado público e honesto de cada pilar. O que funciona, o que está em construção, o que está em design.
Ouvido
✓ v0 live
Captura de microfone via cpal. VAD adaptativo de energia que auto-calibra ao ruído do ambiente. Emite eventos mic-level, mic-vad, mic-state em tempo real pro overlay React. Próximo passo: plugar whisper.cpp pra transcrição local.
Screenshot da janela ativa + entendimento via modelo com visão. Resolve "o que é isso?" sem você descrever. Estratégia: usar árvore de acessibilidade quando bastar (Gemma resolve) e cair pra visão multimodal (Claude com imagem) só quando a UI for não-padrão.
Cursor como contexto: elemento sob o cursor (tipo, propriedades, accessible name), janela ativa, árvore de UI Automation completa. Resolve o "isso aqui" virando referência exata (ref=e42). Esse é o pulo do gato que torna modelo pequeno viável, sem pixel grounding.
stack: Windows UI Automation API · árvore a11y discreta
Mãos
⚙ T2 web · em design
Duas frentes: T1: Desktop: clica, digita, abre apps via OS automation, com gate humano em ação irreversível. T2: Web (ativo agora): Playwright MCP com perfil persistente do usuário. Gemma 4B lê a árvore de acessibilidade, escolhe ação por ref, executa. Caso de uso piloto: candidatura a vagas a partir do CV do João. Ver PLANO-MAO-NAVEGADOR.md
stack: Playwright MCP · a11y tree · Gemma → Claude ladder
Memória
◯ planejado v3
Padrões de uso, hábitos, decisões anteriores, perfil profissional. Persistente entre sessões. Semente já presente: o VAD auto-calibra ao microfone do usuário e persiste em disco. Vai conectar ao Brain corporativo em ambientes AUMI.
Roda local por padrão. Spec antes de código. Gate humano em ação irreversível. AGPL, reciprocidade obrigatória. Allowlist de domínios. Captcha/2FA → pausa pro humano, nunca burla. Sem slop, sem vibe-coding.
enforço: harness Pi · 5 Iron Laws · BMAD-CE
ESCADA DE MODELOS · MODEL-AGNOSTIC
Local primeiro. Cloud só onde precisa.
Cada passo do agente escolhe o modelo mais barato que resolve. Tarefas discretas (clicar campo X, transcrever áudio curto) ficam no Gemma 4B local. Decisões ambíguas (pergunta aberta, formulário não-padrão) escalam pro Claude Sonnet 4.6. Raciocínio multi-step crítico cai no Claude Opus 4.8. Tudo configurável.
Você está num formulário de vaga, aponta pro campo "experiência", e diz:
# Voz captada (push-to-talk):"resume aqui meu último cargo em 3 linhas"# MIND resolve:
context = {
cursor: { ref: "e42", name: "Experiência profissional", type: "textarea" },
window: "Vaga · Senior Eng @ TechCo · Greenhouse",
memory: vault.lookup("último cargo") # do JSON do CV,
voice: "resume aqui meu último cargo em 3 linhas"
}
# Decisão de modelo:
gemma_4b(context) # tarefa estruturada, gemma resolve
→ action: browser_type(ref="e42", text="3 linhas otimizadas")
# Gate de submit (irreversível):se action == submit: aguardar confirmação_humana()
senão: executar action
STACK TÉCNICO
Tauri + Rust + IA local + escada de fuga.
Decisões deliberadas e versionadas. Nada de "X porque é legal".
núcleoRust 1.96+ via toolchain GNU
App nativo leve, instala sem Admin. WinLibs MinGW pro dlltool.
uiReact + TypeScript via Tauri
Overlay elegante, comunicação Rust↔UI por eventos tipados.
áudiocpal + VAD energético adaptativo
Auto-calibração ao ambiente, persistência da curva entre sessões.
sttwhisper.cpp local
Privado, offline, sem chave de API. Modelos pequenos (small.pt) cabem em 1GB RAM.
ttsPiper local · vozes BR-PT
Síntese decente offline, latência baixa, sem custo.
web automationPlaywright MCP oficial
A11y snapshot + ações por ref. MCP server roda local, dirigível por modelo pequeno.
modelosGemma 3 → Claude Sonnet 4.6 / Opus 4.8
Escada de fuga. Aberto primeiro, fechado quando vale a pena.
harnessPi agent (sidecar Node)
Cliente MCP que orquestra modelo+tools. Mesmo harness das nossas operações de consultoria.
POR QUE EXISTE
Assistentes comerciais foram pelo caminho errado.
Copilot, Alexa, Siri, Gemini Desktop, todos mandam áudio e contexto pra nuvem da Big Tech, esquecem tudo a cada turn, e não enxergam sua tela porque "privacidade". E ainda assim, todos eles têm telemetria.
MIND inverte: roda local, persiste contexto, enxerga o que você está fazendo, e age só onde você manda, com gate humano em qualquer coisa irreversível. Cloud só quando você escolhe explicitamente, e mesmo aí com retenção zero via API corporativa.
É o tipo de assistente que agente em produção deveria ter sido desde o começo, com a disciplina que a AUMI usa em cliente real.
CONTRIBUA
Star, fork, ou abre uma issue.
Projeto vivo, em alpha pública. Se a visão faz sentido pra você, deixa uma estrela, manda issue do que falta, ou PR. Lê CONTRIBUTING.md antes, temos disciplina.