Verificando acesso...

Início / Trilha 2 / Módulo 2.4
MÓDULO 2.4

🎬 Gemini CLI — Capacidade multimodal no terminal

Instale, autentique e integre o Gemini CLI ao Hermes para análise de vídeo, imagem e PDF diretamente do terminal — adicionando visão e áudio ao seu Triad.

7
Tópicos
~35
Minutos
Intermediário
Nível
Prática
Tipo
1

💻 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, tee e 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 vs SDK vs API

CLI é o binário; SDK é a lib em código; API é o endpoint HTTP cru

Multimodal local

Arquivos ficam no disco, só o necessário sobe pra inferência

Ferramenta do Hermes

Gemini CLI vira especialista que o Condutor invoca quando a tarefa exige visão

stdout como contrato

O Hermes consome o output igual a qualquer comando unix

2

📥 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

1

Verificar Node.js 18+

$ node --version
# esperado: v18.x ou superior
2

Clonar o repositório oficial

$ git clone https://github.com/google/gemini-cli && cd gemini-cli
3

Instalar globalmente

$ npm install -g .
# instala o binário gemini no PATH global
4

Verificar instalação

$ gemini --version
$ 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

npm install -g

Instala globalmente — binário fica disponível em qualquer diretório

PATH do npm

Pasta onde npm coloca executáveis globais — precisa estar no PATH

Node 18+

Pré-requisito para fetch nativo e ESM modernos

which

Confirma qual binário o shell executa quando você digita gemini

3

🔐 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

$ gemini auth login
# 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 vs API key

OAuth vincula à conta humana; API key é credencial técnica revogável

Token persistente

Salvo em ~/.config/gemini/ — não precisa refazer login a cada uso

Tier gratuito generoso

1.000 req/dia cobre Triad pessoal com folga

Sem cartão

Sem risco de fatura surpresa — limite é hard cap, não soft

4

⚡ 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

$ gemini "explique arquitetura de microsserviços em 3 bullets"

Análise de imagem (-i)

$ gemini "describe this image" -i screenshot.png

Análise de PDF (-f)

$ gemini "summarize" -f doc.pdf

Análise de vídeo (-f)

$ gemini "transcribe + highlights" -f video.mp4

Pipe para outros comandos

$ gemini "extraia bullets em JSON" -f doc.pdf | jq '.bullets'
$ 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 vs -i

-f para documentos (PDF, vídeo, áudio); -i para imagens

stdout como contrato

Todo output vai pro stdout — pipa e redireciona livremente

Prompt explícito

O prompt manda no formato — peça JSON, markdown, bullets, como precisar

Custo por modalidade

Vídeo > áudio > PDF > imagem > texto em consumo de token

5

🔌 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

$ hermes setup tools
→ 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

Auto-discovery

Hermes varre PATH e identifica CLIs conhecidas sem config manual

tools.json

Manifesto que o Condutor lê pra decidir qual ferramenta usar

Capabilities

Tags que mapeiam tarefa → ferramenta (vision → gemini, repo → gh)

Re-scan manual

Setup roda só on-demand — instalou ferramenta nova, rode de novo

6

🎥 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

$ gemini "transcreva a reunião e estruture em JSON com:
  - 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

Roteamento por modalidade

Condutor escolhe ferramenta pela mídia da entrada, não só pelo tipo de tarefa

Gemini no loop

Output do Gemini entra no Crítico como qualquer draft — mesmas regras

Prompt estruturado

Peça JSON sempre que o resultado for consumido por outro programa

Mídia como input

Vídeo, áudio, imagem viram primeira-classe no Triad com Gemini

7

🧰 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

CLI-como-ferramenta

Padrão extensível: qualquer binário scriptável vira skill do Triad

Contrato stdout/stdin

Interface unix universal — sobrevive a troca de vendor

Composição de ferramentas

ffmpeg extrai áudio → gemini transcreve → jq estrutura — pipeline real

Especialista substituível

Cada CLI cobre um nicho — trocar uma não quebra o sistema

Resumo do Módulo

CLI como ferramenta — terminal scriptável, composável, local-first; melhor interface para integração com Hermes
Instalação em 4 passos — Node 18+, git clone, npm install -g, verificar com gemini --version
OAuth com conta Googlegemini auth login, sem cartão, tier gratuito de 1.000 req/dia
Três flags resolvem tudo — prompt direto, -i imagem, -f arquivo para PDF/vídeo/áudio
Auto-discovery do Hermeshermes setup tools varre PATH, escreve tools.json, expõe Gemini ao Condutor
Padrão extensível — gh, openai, ffmpeg, jq, pandoc seguem o mesmo modelo. Construa para o contrato, não para o vendor

Próximo Módulo:

2.5 — Orpheus: o sintetizador de áudio do Triad