💻 O que é CLI e por que o Gemini CLI é poderoso
Uma CLI é um programa que vive no terminal — sem GUI, sem navegador, scriptável e composável com outros comandos. O Gemini CLI traz o modelo multimodal do Google direto pra esse ambiente, e isso muda como o Hermes despacha tarefas de visão e áudio.
O que é
O Gemini CLI é o cliente oficial em linha de comando do modelo Gemini do Google. Diferente de um chat web, aceita arquivos locais como entrada — imagem, PDF, vídeo, áudio — e devolve a resposta no stdout, pronta para pipe, redirecionamento ou consumo por outro processo.
🧩 Por que CLI importa para o Triad
- •Scriptável: o Hermes invoca por
subprocess, captura stdout, passa pro Crítico - •Local-first: arquivos ficam na sua máquina, só o necessário sobe na chamada
- •Composável: pipa com
jq,grep,teee qualquer ferramenta unix - •Multimodal nativo: imagem, PDF, vídeo, áudio em uma única flag
💡 Por que aprender
O Claude do Triad é forte em texto e raciocínio, mas o tier gratuito não processa vídeo. Adicionar o Gemini CLI como ferramenta dá ao Hermes uma especialização multimodal local sem custo extra — ele passa a despachar tarefas de visão para o modelo certo.
🔑 Conceitos-chave
CLI é o binário; SDK é a lib em código; API é o endpoint HTTP cru
Arquivos ficam no disco, só o necessário sobe pra inferência
Gemini CLI vira especialista que o Condutor invoca quando a tarefa exige visão
O Hermes consome o output igual a qualquer comando unix
📥 Instalando o Gemini CLI
A instalação é um clone + um npm install. Único pré-requisito é Node.js 18+ no PATH. Depois, o binário gemini fica disponível globalmente em qualquer diretório.
O que é
A instalação do Gemini CLI consiste em clonar o repositório oficial, rodar npm install -g . para instalar globalmente, e verificar com gemini --version que o binário está acessível.
📋 Passos de instalação
Verificar Node.js 18+
# esperado: v18.x ou superior
Clonar o repositório oficial
Instalar globalmente
# instala o binário gemini no PATH global
Verificar instalação
$ which gemini
# deve apontar para ~/.npm-global/bin/gemini ou similar
💡 Dica
Se gemini: command not found após instalar, seu npm global bin não está no PATH. Rode npm config get prefix e adicione $PREFIX/bin ao seu .bashrc ou .zshrc.
🔑 Conceitos-chave
Instala globalmente — binário fica disponível em qualquer diretório
Pasta onde npm coloca executáveis globais — precisa estar no PATH
Pré-requisito para fetch nativo e ESM modernos
Confirma qual binário o shell executa quando você digita gemini
🔐 Autenticando com sua conta Google
O Gemini CLI usa OAuth pela conta Google — sem chave de API, sem cartão. O comando abre o navegador, você consente, e o token fica salvo em ~/.config/gemini/. Para uso pessoal e do Triad, o tier gratuito é generoso.
O que é
A autenticação OAuth do Gemini CLI vincula o binário à sua conta Google. O fluxo é: rodar gemini auth login, completar consentimento no navegador, e o token de refresh fica persistido localmente para uso futuro.
🔑 Fluxo de autenticação
# abre browser → consente → token salvo
$ gemini auth status
# Logged in as: voce@gmail.com
Para revogar acesso a qualquer momento: gemini auth logout remove o token local.
✓ Tier gratuito (use isto)
- ✓60 requests por minuto
- ✓1.000 requests por dia
- ✓Modelo Gemini 2.5 Pro disponível
- ✓Vídeo, PDF, áudio e imagem inclusos
- ✓Sem cartão de crédito
✗ Tier pago (só se necessário)
- ✗Cobra por token de entrada/saída
- ✗Exige conta de billing GCP configurada
- ✗Útil só em produção de alto volume
- ✗Para Triad pessoal: gratuito basta
🔑 Conceitos-chave
OAuth vincula à conta humana; API key é credencial técnica revogável
Salvo em ~/.config/gemini/ — não precisa refazer login a cada uso
1.000 req/dia cobre Triad pessoal com folga
Sem risco de fatura surpresa — limite é hard cap, não soft
⚡ Comandos básicos
Três flags resolvem 90% dos casos: prompt direto, -f arquivo e -i imagem. O resto é pipe e redirecionamento padrão do shell.
O que é
A superfície de comando do Gemini CLI cobre prompts textuais simples, arquivos de documento (-f para PDF, vídeo, áudio) e imagens (-i). Todos retornam texto no stdout, que pode ser piped para outros comandos.
Prompt textual simples
Análise de imagem (-i)
Análise de PDF (-f)
Análise de vídeo (-f)
Pipe para outros comandos
$ gemini "resuma" -f video.mp4 > resumo.md
💡 Dica
Vídeos longos consomem muito token. Para arquivos acima de 30 minutos, peça análise por trechos ou extraia o áudio com ffmpeg antes — áudio puro custa muito menos que vídeo.
🔑 Conceitos-chave
-f para documentos (PDF, vídeo, áudio); -i para imagens
Todo output vai pro stdout — pipa e redireciona livremente
O prompt manda no formato — peça JSON, markdown, bullets, como precisar
Vídeo > áudio > PDF > imagem > texto em consumo de token
🔌 Conectando Gemini CLI ao Hermes como ferramenta
Uma vez instalado e autenticado, o Hermes detecta o Gemini automaticamente rodando hermes setup tools. Ele varre o PATH atrás de CLIs conhecidas e registra cada uma como skill disponível pro Condutor.
O que é
O comando hermes setup tools faz auto-discovery de CLIs externas no seu PATH e gera ~/.hermes/tools.json descrevendo cada ferramenta — nome, capabilities, invocação — para o Condutor consultar ao planejar tarefas.
🔍 Detecção automática
→ scanning PATH...
✓ found: gemini (multimodal: video, image, pdf, audio)
✓ found: gh (github: repos, issues, pr)
✓ found: ffmpeg (media: convert, extract)
→ written to ~/.hermes/tools.json
A partir daí, o Condutor sabe que se uma tarefa exige análise de vídeo, ele deve despachar via Gemini — não tentar fazer no Claude.
🗂️ tools.json gerado (exemplo)
"gemini": {
"binary": "/usr/local/bin/gemini",
"capabilities": ["vision", "video", "pdf", "audio"],
"invoke": "gemini \"{prompt}\" {flags}",
"cost_tier": "free"
}
}
💡 Dica
Rode hermes setup tools de novo sempre que instalar uma nova CLI. O Hermes não detecta em tempo real — só na configuração.
🔑 Conceitos-chave
Hermes varre PATH e identifica CLIs conhecidas sem config manual
Manifesto que o Condutor lê pra decidir qual ferramenta usar
Tags que mapeiam tarefa → ferramenta (vision → gemini, repo → gh)
Setup roda só on-demand — instalou ferramenta nova, rode de novo
🎥 Caso de uso: analisar vídeo/imagem via Hermes
Com o Gemini registrado, o Hermes despacha automaticamente tarefas multimodais. Você manda uma instrução natural — "resuma essa reunião" — e o Condutor decide invocar o Gemini, não o Claude.
O que é
O fluxo end-to-end onde o Hermes recebe tarefa que envolve mídia, consulta tools.json, identifica que o Gemini tem capability vision, monta o comando, executa, captura stdout e devolve o resultado integrado ao loop Worker-Crítico.
🎬 Exemplo prático
Você: "Hermes, resuma a reunião em reuniao.mp4 e liste decisões"
Condutor: identifica tarefa multimodal → consulta tools.json → escolhe Gemini
Worker: invoca gemini "transcreva + liste decisões em JSON" -f reuniao.mp4
Crítico: valida output contra critérios (decisões têm responsável? prazo?)
SHIP/REVISE: se REVISE, Worker re-invoca com prompt refinado
🧪 Comando equivalente manual
- resumo (3 bullets)
- decisoes: [{decisao, responsavel, prazo}]
- acoes_pendentes: [{acao, owner}]" \
-f reuniao.mp4 | jq '.' > reuniao_estruturada.json
🎯 Por que isso muda o Triad
Sem o Gemini, o Triad estava limitado a texto e código. Com ele, qualquer ativo de mídia entra no loop — screenshots de bug, vídeos de demo, PDFs de contrato, áudios de cliente. O Condutor agora roteia por modalidade, não só por tipo de tarefa.
🔑 Conceitos-chave
Condutor escolhe ferramenta pela mídia da entrada, não só pelo tipo de tarefa
Output do Gemini entra no Crítico como qualquer draft — mesmas regras
Peça JSON sempre que o resultado for consumido por outro programa
Vídeo, áudio, imagem viram primeira-classe no Triad com Gemini
🧰 Expandindo para GitHub CLI, OpenAI CLI e outros
O padrão CLI-como-ferramenta é extensível. Qualquer binário com stdin/stdout bem definidos pode virar skill do Hermes — basta estar no PATH e ter entrada no tools.json.
O que é
O modelo extensível onde Gemini, GitHub CLI, OpenAI CLI, ffmpeg, jq e qualquer outro binário scriptável se tornam ferramentas registradas que o Condutor pode despachar conforme a capability necessária.
🧩 CLIs comuns para registrar
- •gh (GitHub CLI): issues, PRs, repos, workflows — Condutor lê issue → Worker abre PR
- •openai CLI: alternativa quando precisar de DALL-E para imagem ou Whisper para áudio
- •ffmpeg: extrai áudio de vídeo antes de mandar pro Gemini — corta custo em ordens de magnitude
- •jq: processa JSON entre etapas, filtra campos, transforma estruturas
- •pandoc: converte entre formatos de documento (markdown, docx, html, pdf)
🔧 Adicionando uma CLI customizada ao tools.json
"minha_cli": {
"binary": "/usr/local/bin/minha-cli",
"capabilities": ["domain_x", "analysis"],
"invoke": "minha-cli --input {file} --prompt \"{prompt}\"",
"cost_tier": "local"
}
}
🎯 O padrão por trás
O Triad não é monolítico. Cada CLI é um especialista substituível. Gemini hoje é o melhor multimodal gratuito; amanhã pode ser outro. O contrato — entrada via flag, saída via stdout — sobrevive à troca. Construa para o contrato, não para o vendor.
🔑 Conceitos-chave
Padrão extensível: qualquer binário scriptável vira skill do Triad
Interface unix universal — sobrevive a troca de vendor
ffmpeg extrai áudio → gemini transcreve → jq estrutura — pipeline real
Cada CLI cobre um nicho — trocar uma não quebra o sistema
✅ Resumo do Módulo
gemini --versiongemini auth login, sem cartão, tier gratuito de 1.000 req/dia-i imagem, -f arquivo para PDF/vídeo/áudiohermes setup tools varre PATH, escreve tools.json, expõe Gemini ao CondutorPróximo Módulo:
2.5 — Orpheus: o sintetizador de áudio do Triad