Eu sempre quis ter o "Jarvis" do Homem de Ferro: você fala, ele escuta, faz alguma coisa no computador e responde de volta, em voz alta. A diferença é que o meu não manda nada para a nuvem. O cérebro dele roda dentro do meu Mac, sem chave de API e sem cobrança por uso.
Neste post eu mostro exatamente como ele é montado e como você monta o seu, do zero, copiando a mesma pasta. É um tutorial direto: arquitetura, pré-requisitos, instalação e os ajustes que valem a pena.
Importante: este guia é para macOS. Várias peças (o comando de voz
say, oafplay, oopen -a) são nativas do Mac. Em Windows/Linux dá para adaptar, mas aqui eu descrevo o caminho que testei no Mac.
O que ele faz
Você diz "Hey Jarvis" uma vez. Ele acorda, responde "Sim?" e entra em modo conversa: você pode falar vários pedidos seguidos sem repetir a palavra de ativação. Depois de alguns segundos em silêncio, ele volta a dormir até o próximo "Hey Jarvis".
Coisas que ele já resolve de fábrica:
✅ Abrir apps: "Abre o Spotify", "Abre a Calculadora".
✅ Responder fatos do sistema: "Que horas são?", "Quanto de bateria eu tenho?" (ele roda o comando e fala o resultado).
✅ Pesquisar na internet: "Pesquisa os jogos de amanhã" — ele abre a busca no navegador, ou fala a resposta direto quando você só quer ouvir.
✅ Rodar comandos no Mac: "Cria uma pasta chamada teste" — sempre pedindo sua confirmação antes.
A arquitetura (4 peças encaixadas)
A maneira mais fácil de entender é pensar em ouvido → cérebro → boca, com a palavra de ativação na frente de tudo:
| Peça | O que faz | Ferramenta (roda local) |
|------|-----------|--------------------------|
| Palavra de ativação | Fica ouvindo até captar "Hey Jarvis" | openWakeWord (modelo hey_jarvis já pronto) |
| Ouvido (fala → texto) | Grava sua frase e transcreve | faster-whisper (≈4× mais rápido que o Whisper original) |
| Cérebro | Entende o pedido e decide agir | Ollama rodando um modelo local (ex.: qwen2.5:14b) |
| Boca (texto → fala) | Fala a resposta em voz alta | say do macOS, ou Kokoro/XTTS/Piper (neural) |
O detalhe que mais me empolgou: o cérebro é local. Em vez de pagar uma API a cada frase, o modelo de IA roda no próprio Mac via Ollama. Nada de chave, nada de fatura no fim do mês, e a conversa não sai do seu computador.
O fluxo, passo a passo:
"Hey Jarvis" você fala transcrição modelo local
┌─────────────┐ → ┌────────────┐ → ┌────────────┐ → ┌────────────┐
│ openWake │ │ grava o │ │ faster- │ │ Ollama + │
│ Word │ │ áudio │ │ whisper │ │ tools │
└─────────────┘ └────────────┘ └────────────┘ └─────┬──────┘
▲ │
│ ┌────────────┐ fala (say/Kokoro) │
└──────────────────────│ resposta │◀─────────────────────────┘
volta a escutar └────────────┘
Quando você pede uma ação, o modelo não executa nada sozinho: ele pede uma ferramenta (abrir app, rodar comando, pesquisar), o código executa no seu Mac e devolve o resultado para o modelo concluir. As ferramentas disponíveis hoje são open_app, run_shell, web_search e open_url.
Os arquivos do projeto
A pasta é pequena e cada arquivo tem uma função clara:
jarvis.py— o loop principal que junta tudo (wake word → ouvir → pensar → falar).brain.py— o cérebro: conversa com o Ollama e executa as ferramentas.voice.py— os ouvidos e a boca (wake word, transcrição e síntese de voz).ui_server.py+jarvis_ui.html— a interface visual (um orbe de partículas + console) que reage por WebSocket local.requirements.txt— as dependências Python..env.example— o modelo de configuração (você copia para.env).setup.sh/run.sh— instalar e ligar com um comando.
Pré-requisitos
Antes de instalar, garanta que você tem:
- macOS com microfone (pode ser AirPods, headset ou mic USB).
- Python 3.10 ou superior — confira com
python3 --version. - Ollama instalado — baixe em ollama.com/download. É ele que roda o cérebro local.
- Um modelo baixado no Ollama. O padrão é o
qwen2.5:14b(mais esperto, pesa ~9 GB). Se sua máquina for mais modesta, use oqwen2.5:7b(mais rápido e leve).
Sobre hardware: modelo local pede RAM. Um Mac com chip Apple Silicon (M1/M2/M3/M4) e 16 GB+ roda o
14bconfortável. Com menos memória, fique no7b.
Instalação (passo a passo)
1. Abra o Terminal na pasta do projeto.
2. Rode o instalador (faz tudo de uma vez):
bash setup.sh
Esse script cria um ambiente virtual isolado (venv), instala as dependências do requirements.txt, prepara o .env e tenta baixar o modelo do Ollama.
Se preferir fazer na mão, é isto:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt cp .env.example .env ollama pull qwen2.5:14b
3. Dê permissão de microfone ao Terminal.
Vá em Ajustes do Sistema → Privacidade e Segurança → Microfone e marque o Terminal (ou o app que você usa para rodar). Sem isso, o Jarvis não escuta nada — é o erro nº 1 de quem está começando.
4. Garanta que o Ollama está aberto e que o modelo do .env foi baixado (ollama pull qwen2.5:14b).
5. Ligue o Jarvis:
bash run.sh
Na primeira execução ele baixa os modelos de wake word (openWakeWord) e de transcrição (faster-whisper) — pode levar alguns minutos. Espere o "Jarvis pronto", diga "Hey Jarvis" uma vez e fale seu pedido. Ctrl+C para sair.
A interface visual (o orbe) 🔮
Ao rodar, ele abre o jarvis_ui.html no navegador: um orbe de partículas que muda de cor conforme o estado — parado, ouvindo, pensando, respondendo — e um console com a conversa. O Python conversa com a tela por um WebSocket local (porta 8765), tudo offline. Se quiser desligar a interface, coloque JARVIS_UI=false no .env.
Customização (o que mexer no .env)
Quase tudo se ajusta sem tocar no código, pelo arquivo .env:
JARVIS_MODEL— o cérebro.qwen2.5:14b(mais esperto) ouqwen2.5:7b(mais rápido). Qualquer modelo do Ollama que suporte tools serve.JARVIS_WHISPER— precisão do ouvido.mediumé um bom equilíbrio;small/baseficam mais rápidos;large-v3é o mais preciso (e mais pesado).JARVIS_WAKE_THRESHOLD— sensibilidade do "Hey Jarvis" (0.2 a 0.6). Menor ativa mais fácil (bom para sotaque), porém gera mais falsos positivos.JARVIS_TTS— o motor de voz. Aqui mora a maior diferença de qualidade:say— voz nativa do macOS, instantânea, sem instalar nada (voz padrão: Felipe).kokoro— voz neural rápida e natural em pt-BR (recomendado para pouco atraso). Rodebash setup_voice_kokoro.she depoisJARVIS_TTS=kokoro.xtts— voz neural de altíssima qualidade, porém mais lenta.piper— neural simples e rápida.
JARVIS_VOICE— a voz dosay. Rodesay -v "?"no terminal para listar as vozes em português (ex.: Luciana, Felipe). Dica: baixe a versão "Aprimorada" emAjustes → Acessibilidade → Conteúdo Faladopara um som bem melhor.
Segurança (leia antes de confiar nele) ⚠️
A ferramenta run_shell executa comandos de verdade no seu Mac. Por isso há duas camadas de proteção:
- Confirmação: por padrão (
JARVIS_CONFIRM=true), toda execução pede seu "sim" no terminal antes de rodar. - Lista de bloqueio: comandos obviamente destrutivos (
rm -rf,sudo,shutdown, etc.) são recusados automaticamente.
Isso é uma proteção básica. Se você for dar mais autonomia a ele, revise o brain.py e ajuste a lista ao seu gosto antes. Você é responsável pelo que ele roda.
Próximos passos (para evoluir o seu Jarvis)
Quando o básico estiver de pé, dá para ir além:
- Mais ferramentas: adicionar tools para ler/enviar e-mail, calendário, tocar música — é só acrescentar em
TOOLSnobrain.py. - Voz mais natural: trocar o
saypelo Kokoro (ou XTTS) para uma voz muito mais humana. - Subir junto com o Mac: empacotar como serviço
launchdpara o Jarvis ligar sozinho no login.
Foi um projeto que me ensinou muito sobre como as peças de um assistente de voz se encaixam — e provou que dá para ter algo realmente útil rodando de graça e privado, no seu próprio computador. Se você montar o seu, me marca: quero ver no que ele virou na sua mão.
Aviso: é um projeto pessoal, em aprimoramento. Pode ter arestas, e feedbacks são muito bem-vindos.
Quer o passo a passo completo e os arquivos? Está tudo aqui no site — esta página fica em destaque na home esta semana. Salva o link, manda para quem também quer um Jarvis e bora montar: claudtechleads.com.br
Fontes / validação das ferramentas (jun/2026)
Tudo neste guia foi conferido no código real do projeto e nas fontes oficiais das ferramentas:
- Cérebro local (sem custo por uso): Ollama · modelo Qwen2.5 (qwen2.5)
- Transcrição local (fala → texto): faster-whisper (SYSTRAN)
- Palavra de ativação: openWakeWord (dscripka)
- Voz neural rápida em pt-BR: Kokoro TTS
- Voz neural de alta qualidade: Coqui XTTS v2
- Busca na web: DuckDuckGo (via biblioteca ddgs)