Como Montei um 'Jarvis' que Roda 100% no Meu Mac (e Como Você Monta o Seu)

22 de junho de 2026

Interface do Jarvis: orbe de partículas e console, rodando 100% local no Mac

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, o afplay, o open -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:

  1. macOS com microfone (pode ser AirPods, headset ou mic USB).
  2. Python 3.10 ou superior — confira com python3 --version.
  3. Ollama instalado — baixe em ollama.com/download. É ele que roda o cérebro local.
  4. 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 o qwen2.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 14b confortável. Com menos memória, fique no 7b.

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) ou qwen2.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/base ficam 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). Rode bash setup_voice_kokoro.sh e depois JARVIS_TTS=kokoro.
    • xtts — voz neural de altíssima qualidade, porém mais lenta.
    • piper — neural simples e rápida.
  • JARVIS_VOICE — a voz do say. Rode say -v "?" no terminal para listar as vozes em português (ex.: Luciana, Felipe). Dica: baixe a versão "Aprimorada" em Ajustes Acessibilidade Conteúdo Falado para 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:

  1. Confirmação: por padrão (JARVIS_CONFIRM=true), toda execução pede seu "sim" no terminal antes de rodar.
  2. 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 TOOLS no brain.py.
  • Voz mais natural: trocar o say pelo Kokoro (ou XTTS) para uma voz muito mais humana.
  • Subir junto com o Mac: empacotar como serviço launchd para 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:

Quer conversar sobre este projeto?

Me mande um e-mail ou uma mensagem no WhatsApp para trocar ideia, pedir detalhes ou adaptar algo para sua realidade.