Captura em dois canais
O microfone vira VOCÊ e o áudio do sistema vira OUTRA PESSOA. No Windows a captura usa WASAPI loopback; no macOS, ScreenCaptureKit.
App desktop que transcreve os dois lados da conversa, percebe quando chega uma pergunta e sugere uma resposta apoiada no que foi dito e nos seus documentos.
v2.22.3 · Windows 10/11 x64 e macOS Apple Silicon

Seis etapas entre alguém falar e a sugestão aparecer na tela.
O microfone vira VOCÊ e o áudio do sistema vira OUTRA PESSOA. No Windows a captura usa WASAPI loopback; no macOS, ScreenCaptureKit.
Cada canal pode usar um provedor diferente, local ou de nuvem. O Deepgram Flux entrega eventos de turno de fala e a conexão é refeita sozinha se cair.
As falas são agrupadas em turnos e a pergunta é reconhecida por regras em português e inglês, sem IA. O copiloto espera a pergunta estabilizar e gera no máximo uma resposta automática por turno.
O prompt é montado com orçamento de tokens a partir da transcrição e dos documentos da reunião. Um guard bloqueia a chamada quando a pergunta cita algo que nunca foi estabelecido na conversa.
Uma fila com prioridade faz o "Responder agora" passar na frente das respostas automáticas. Se um provedor falha ou bate no limite, o pedido segue para o próximo, com aviso honesto na tela.
A resposta chega em streaming no overlay e pode ser encurtada, adaptada ou traduzida. A janela Foco é nativa em Slint no Windows e em React no macOS.
Turnos derivados da transcrição, oportunidade de resposta em PT-BR e EN, revalidação na hora do disparo e consumo por turno, para não responder duas vezes à mesma pergunta.
Guard de referente, regra de não inventar experiência do candidato e respostas ancoradas na transcrição. O painel "Contexto usado" mostra de onde cada resposta saiu.
Streaming com eventos de turno, registro das fronteiras de fala e fallback de transcrição quando a conexão cai no meio da reunião.
No Windows, WASAPI e Credential Manager, com instalador e atualização automática. No macOS, ScreenCaptureKit, Keychain e instalador .pkg para Apple Silicon.
Superfície enxuta para acompanhar a resposta durante a conversa, em Slint com renderização por software no Windows. A lógica fica no app; a janela só exibe e repassa ações.
Currículo, vaga e anotações entram como contexto só daquela reunião, isolados das demais.
Modo Demo e versão completa, ativação por código enviado por e-mail e limite de dispositivos, com servidor em Cloudflare Workers. Pipeline de release em CI com atualização automática assinada no Windows.
São 223 arquivos e 1.773 testes em TypeScript, além dos testes em Rust, cobrindo turnos, fila, guards, i18n e configuração do updater.
Telas do eloQ. A conversa da entrevista é um exemplo fictício.

Depende dos provedores que você escolhe. O app usa as suas próprias chaves de API e não tem servidor intermediário para áudio ou texto.
Decidir se algo é uma pergunta roda em regras determinísticas. É previsível, não custa uma chamada e dá para testar caso a caso.
Só a fronteira de turno vinda do provedor conta como confiável. Isso evita responder a meia frase ou responder duas vezes.
Quando a pergunta depende de algo que a conversa não estabeleceu, o app não chama o modelo. Melhor ficar em silêncio do que sugerir uma invenção.
A execução fica no app React e Tauri. A janela Foco nativa só exibe o estado e repassa ações, o que evita duas implementações divergindo.
Os commits foram feitos com Cursor e Claude como par, com um fluxo de revisão por agente documentado no repositório. As decisões de arquitetura, a revisão e o que entra em cada release são meus.
O repositório é privado. Mostro a arquitetura, o código e o fluxo de desenvolvimento em uma conversa.
Nomes e marcas de provedores citados pertencem aos respectivos donos e não indicam parceria.