Mapa da trilha
๐งญ Conceitos: CLI vs API vs MCP
Por que CLI vence em tokens e confiabilidade
๐ฆ Instalacao completa
Go, binario, skills e starter-pack
๐ Primeiros passos
Usar o starter-pack no Claude Code
๐ ๏ธ Criando sua CLI
Pipeline research โ generate โ verify
๐ง๐ท Caso pratico: BrasilAPI
CEP, CNPJ, bancos, feriados em uma CLI
๐ Integracoes n8n + Supabase
Execute Command e SQLite mirror
๐ค Publicando no library
Steinberger bar e PR no library oficial
Conteudo detalhado
Clique nos topicos para expandir, ou abra cada modulo completo.
๐งญ Conceitos: CLI vs API vs MCP
Os tres caminhos para um agente falar com sistemas externos โ e por que CLI virou o padrao em producao.
Chamar a API HTTP do servico diretamente do agente, devolvendo o JSON cru pro contexto.
E o jeito mais documentado. Mas mostra exatamente o problema que CLI resolve: JSON inflado, auth complexa, paginacao manual.
Token overhead, payload bruto, ausencia de cache, custo crescente por request.
Model Context Protocol โ servidor que expoe tools tipadas que o agente descobre automaticamente.
Bom para prototipo. Pessimo em escala: descricoes ficam carregadas toda sessao mesmo sem invocar nada.
Overhead fixo de descoberta, server precisa estar ativo, queda de reliability em tarefas longas.
Binario local que processa a API, guarda dados em SQLite e devolve texto curto pre-formatado.
100% de confiabilidade, 35x menos tokens, funciona offline com cache e e composavel via pipes.
Output formatado, cache em SQLite, auth resolvida uma vez, sem overhead de contexto.
Tabela de comparacao publicada pelo Printing Press medindo tokens e reliability nas tres abordagens.
Da muniรงรฃo quantitativa para defender CLI em PRs e decisoes de arquitetura no time.
35x token ratio, 100% vs 72% reliability, custo por sessao em Claude Code Pro.
Caso real do video de referencia: API do Skool devolveu 132k tokens, CLI entregou 2k para o agente.
Visualiza o ganho concreto: 98,5% de reducao de contexto numa unica tarefa.
JSON cru no SQLite, sumario para o agente, throughput de sessoes longas.
Heuristica simples para decidir entre API, MCP e CLI com base no caso de uso.
Evita over-engineering: nem tudo precisa virar CLI. Mas em producao com agente, CLI quase sempre vence.
API para backend, MCP para prototipo, CLI para agente em producao.
๐ฆ Instalacao completa
Go 1.26.3, binario factory, skills do Claude Code, starter-pack e verificacao final.
Lista de ferramentas e versoes minimas para rodar todo o pipeline.
90% dos problemas de instalacao sao versoes desatualizadas. Validar antes economiza horas.
Go 1.26.3+, Node 18+, npm 9+, Claude Code 2.0+, git 2.x.
Instalar Go a partir do tarball oficial em /usr/local/go e ajustar PATH.
Printing Press e os CLIs gerados sao escritos em Go. Sem Go, nada compila.
Arquitetura (arm64 vs amd64), GOPATH, $HOME/go/bin no PATH.
O binario printing-press e a "fabrica" que GERA novas CLIs a partir de um site ou API.
E o motor por tras de toda a stack. Sem o factory voce so consome CLIs prontas, nao cria as suas.
go install ...@latest, printing-press --version, factory vs CLI gerada.
Skills sao plugins do Claude Code que sabem invocar as CLIs com os argumentos certos.
Sem skills, o agente precisaria adivinhar a sintaxe. Skills mapeiam linguagem natural para flags da CLI.
Clone vs npx skills add, namespace pp-*, descoberta automatica no startup.
Bundle inicial com espn, flight-goat, movie-goat e recipe-goat instalado em um unico comando.
Em 30 segundos voce ja tem 4 CLIs funcionais para testar o fluxo no Claude Code.
npx -y @mvanhorn/printing-press install starter-pack, bundle, list.
Script de validacao que checa todas as versoes em uma tela e lista os erros mais comuns.
Garante que o ambiente esta saudavel antes de comecar a criar CLIs. Detecta PATH quebrado, proxy, etc.
source ~/.bashrc, GOPROXY, restart do Claude Code, sudo no tar.
๐ Primeiros passos com o starter-pack
Usar as 4 CLIs do bundle no Claude Code e medir consumo de tokens em casos reais.
CLI de esportes com 10 ligas (NFL, NBA, MLB, NHL, NCAA, MLS, EPL, WNBA), placares e box score.
Mostra o caso mais simples: API publica + cache + output formatado direto pro agente.
Comando espn-pp-cli games --league nba, busca offline, head-to-head.
Junta Google Flights, Kayak e FlightAware em uma CLI unica com tracking de voo e alertas.
Exemplo de CLI que agrega tres fontes (browser-sniff + API) e devolve melhor preco normalizado.
Multi-source aggregation, AeroAPI key opcional, query em linguagem natural.
CLI que combina TMDb + OMDb e mantem watchlist em SQLite local com info de streaming.
Mostra como uma CLI pode ter estado proprio (watchlist) que persiste entre sessoes do agente.
SQLite mirror, multi-source ratings, marcador de streaming por servico assinado.
Busca a melhor versao de qualquer receita em 37 sites confiaveis, com cookbook offline e match de despensa.
Exemplo de browser-sniff em larga escala. Mostra cache local e ranking por confianca da fonte.
Browser-sniff, ranking de fonte, pantry match, offline cookbook.
Comando /context do Claude Code mostra quantos tokens cada skill/MCP consome.
Mede o ganho real ao trocar MCP por CLI. Numero concreto para o time/cliente.
Token budget, skill overhead, baseline antes de instalar.
Cada skill tem "trigger phrases" que o Claude Code reconhece para invocar a CLI automaticamente.
Voce nao precisa decorar comando. Pergunta em portugues comum e o agente roteia.
"jogos da NBA hoje", "voos GRU LIS em julho", "onde assistir filme X".
๐ ๏ธ Criando sua propria CLI
Pipeline completo: research, generate, verify, score e polish โ do briefing ao binario.
Slash command que recebe URL ou nome do app e dispara todo o pipeline de criacao.
E a porta de entrada. Saber o que esperar economiza tempo no primeiro run.
/printing-press https://api.exemplo.com, briefing interativo, output em ~/go/bin.
Primeira fase: o factory descobre endpoints, auth, schemas e casos de uso a partir do alvo.
A qualidade da CLI gerada depende desse passo. Resultados sao salvos em research/ para revisao.
OpenAPI snifff, SDKs em npm, doc oficial, exemplos curl em blogs.
Fase que cria comandos, subcomandos, flags e templates de output da CLI em Go.
Voce pode pausar e editar antes de compilar. O codigo gerado e legivel e segue padroes Cobra.
Cobra commands, structs de resposta, templates de output, SQLite schema.
Bateria de testes automaticos e nota da CLI segundo criterios oficiais do library.
Sem score alto a CLI nao entra no library. Voce identifica falhas antes de publicar.
Reliability score, token efficiency, error handling, schema stability.
Dois modos do factory para alvos sem API publica: capturar trafego do browser ou minerar SDKs.
Permite gerar CLI para servicos fechados (Skool, Notion interno, etc) sem ler doc.
HAR file, devtools network, npm registry mining, endpoints undocumented.
Comandos finais para gerenciar tokens, deixar UX bonita e validar antes de publicar.
Detalhe que separa CLI amadora de profissional: mensagens de erro, ajuda contextual, cor no terminal.
printing-press auth, polish, shipcheck, .printingpressrc.
๐ง๐ท Caso pratico: BrasilAPI
Construir do zero a CLI brasil-api-pp-cli com CEP, CNPJ, bancos, feriados e cache em SQLite.
Definicao de escopo: 5 endpoints da BrasilAPI, target de usuario, fluxo no agente.
CLI bem definida sai redondinha no primeiro generate. Escopo aberto vira monstro.
User story do agente, endpoints minimos, comandos canonicos.
Subcomando brasil-api cep 01310100 retorna logradouro, bairro, cidade, UF.
Caso mais simples: 1 input, 1 output, sem auth. Otimo para entender o pipeline.
v1 vs v2 do endpoint, cache 30 dias, output em uma linha vs multi.
CNPJ traz 40+ campos. Flag --fields razao_social,situacao filtra antes de devolver ao agente.
Padrao essencial: deixa o agente pedir so o que precisa, economizando tokens.
Field selection, JMESPath subset, defaults sensatos.
Tres comandos adicionais com listas estaveis (ideais para cache agressivo).
Mostra reuso do mesmo template para diferentes endpoints de listagem.
Cache de 24h, busca local com FTS5, output em tabela.
Tabela queries com hash da request, payload bruto e TTL por endpoint.
Reduz custo, latencia e bate o limite da BrasilAPI gratuita.
TTL diferenciado, --refresh, busca FTS5, locking.
Gerar skill que mapeia frases ("CEP de Paulista 1500", "esta firma esta ativa") para a CLI.
Fecha o ciclo: o agente brasileiro entende portugues e roteia para a CLI sozinho.
Trigger phrases em PT-BR, exemplo no SKILL.md, teste com Claude Code.
๐ Integracoes: n8n + Supabase
Trocar HTTP Request nodes do n8n por CLIs e criar mirror SQLite a partir do Supabase.
No n8n, troca o no HTTP Request por Execute Command chamando seu CLI.
Centraliza auth, cache e parsing dentro da CLI. Fluxo no n8n fica trivial.
stdout JSON, exit code, env vars compartilhadas com host.
Flag --json devolve estrutura parseavel pelo n8n; sem flag, devolve texto pro humano/agente.
Uma CLI atende dois consumidores: orquestrador (JSON) e agente (texto).
Schema estavel, versionar com --api-version, NDJSON para streaming.
CLI que faz pull periodico de tabelas do Supabase para SQLite local (read-only para o agente).
Agente consulta milhares de linhas sem gastar token nem bater rate limit do Postgres.
Incremental sync por updated_at, view materializada, FTS5 para busca.
Dois jeitos de fornecer credenciais: SUPABASE_KEY no env ou printing-press auth em keychain.
No n8n self-hosted o env e mais comodo; no dev local o keychain e mais seguro.
12-factor, secret rotation, fallback por flag.
CLI nao pula limit, mas reduz batidas com cache local agressivo e batch.
Em fluxos n8n com loop, e a diferenca entre travar e nao travar.
Token bucket local, retry com backoff, batch endpoints.
Flag --log-json escreve eventos em ~/.cache/<cli>/log.ndjson para auditoria.
Quando o fluxo falha em producao, voce tem rastro do que a CLI fez.
NDJSON, request_id, latencia, status code, parser de erro.
๐ค Publicando no library oficial
Steinberger bar, PR no printing-press-library, manutencao com regen-merge, emboss e patch.
Empacota a CLI + skill + docs e abre PR no printing-press-library automaticamente.
Evita esquecer arquivo de manifesto ou metadado obrigatorio.
Manifesto printingpress.yaml, gerar README do library, abrir PR via gh.
Bar oficial de qualidade: reliability, token efficiency, docs, exemplos, schema.
PR sem passar nessa barra e fechado automaticamente. Saber o criterio acelera o aceite.
Score minimo, smoke tests, exemplo no SKILL.md, badge no README.
Pipeline para criar fork, branch, commit assinado e PR descritivo no library.
Mostra o passo-a-passo de contribuir oficialmente.
Template de PR, checklist do reviewer, labels obrigatorias.
Quando a CLI usa API interna, voce hospeda em repo privado e o starter aponta para la.
Permite reuso entre devs do time sem expor logica de negocio.
Registry privado, deploy keys, install via --registry.
Comando que regera a CLI mantendo seus patches manuais via three-way merge.
API mudou? Regen sem perder customizacao.
Three-way merge, marker de conflict, emboss para reaplicar estilo.
patch aplica fix pontual, emboss reformata pra padrao do library.
Bug critico em producao? Patch + publish + retest, sem rodar pipeline inteiro.
Semver patch, rollback automatico, diff humano antes do commit.