eloQ
Projeto autoral · IA em tempo real

Copiloto de reuniões e entrevistas em tempo real.

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

Transcrição dos dois lados à esquerda, pergunta detectada e resposta sugerida à direita.
testes automatizados passando
1.773
commits no projeto
502
provedores de LLM, locais e de nuvem
8
plataformas com instalador
2
01

Do áudio à resposta na tela

Seis etapas entre alguém falar e a sugestão aparecer na tela.

  1. 1

    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.

    Passa adiantedois fluxos de áudio
  2. 2

    Transcrição por canal

    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.

    Passa adiantetexto + fronteiras de turno
  3. 3

    Turnos e detecção de pergunta

    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.

    Passa adiantepergunta estável
  4. 4

    Contexto com trava contra invenção

    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.

    Passa adianteprompt ancorado
  5. 5

    LLM com fila e failover

    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.

    Passa adianteresposta em streaming
  6. 6

    Overlay e janela Foco

    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.

02

O que tem por dentro

Copiloto de entrevista ao vivo

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.

Respostas que não inventam

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.

Deepgram Flux com reconexão

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.

Windows e macOS

No Windows, WASAPI e Credential Manager, com instalador e atualização automática. No macOS, ScreenCaptureKit, Keychain e instalador .pkg para Apple Silicon.

Janela Foco nativa

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.

Documentos por reunião

Currículo, vaga e anotações entram como contexto só daquela reunião, isolados das demais.

Licenciamento e release

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.

Testes automatizados

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.

03

O app

Telas do eloQ. A conversa da entrevista é um exemplo fictício.

Entrevista ao vivo — Transcrição dos dois lados à esquerda, pergunta detectada e resposta sugerida à direita.
Transcrição dos dois lados à esquerda, pergunta detectada e resposta sugerida à direita.
04

Para onde os dados vão

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.

Transcrição local
Whisper.cpp, Sherpa-ONNX, ORT e Parakeet
O áudio fica na máquina
Transcrição em nuvem
Deepgram, Groq Whisper, Azure Speech, Whisper API
O áudio vai para o provedor escolhido
LLM local
Ollama e LM Studio
A transcrição fica na máquina
LLM em nuvem
OpenAI, Anthropic, Gemini, Groq, OpenRouter
Transcrição e documentos vão para o provedor
Chaves e histórico
Credential Manager ou Keychain, banco SQLite
Ficam na máquina
Licença
E-mail e identificador da instalação em hash
Vai ao servidor de licença. Áudio, transcrição e prompts nunca vão
05

Decisões e trade-offs

Detecção por regras, não por IA

Decidir se algo é uma pergunta roda em regras determinísticas. É previsível, não custa uma chamada e dá para testar caso a caso.

Uma resposta automática por turno

Só a fronteira de turno vinda do provedor conta como confiável. Isso evita responder a meia frase ou responder duas vezes.

Bloquear antes de chamar

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.

Lógica em um lugar só

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.

Desenvolvimento com agentes de IA

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.

06

Estado atual, sem maquiagem

Entregue

  • Quatro versões públicas, da v2.22.0 à v2.22.3, com instalador para Windows e macOS
  • Atualização automática assinada, validada de ponta a ponta no Windows
  • 1.773 testes TypeScript passando, mais a suíte em Rust
  • Interface completa em português do Brasil e em inglês
  • Modo Demo gratuito com limites e versão completa por licença

Limites conhecidos

  • macOS sem assinatura da Apple e sem atualização automática
  • Pergunta de sim ou não sem palavra interrogativa nem "?" não dispara resposta automática
  • Sem versão para Linux nem para Mac Intel
  • Código privado; só os instaladores são públicos

Stack

Tauri 2RustReactTypeScriptZustandTailwind CSSSlintSQLiteVitestCloudflare WorkersGitHub Actions

Quer ver por dentro?

O repositório é privado. Mostro a arquitetura, o código e o fluxo de desenvolvimento em uma conversa.

Falar comigo

Nomes e marcas de provedores citados pertencem aos respectivos donos e não indicam parceria.