Gabriel Neuman
Gabriel Neuman
AGENTS · CLI

Mete cualquier API en un CLI hecho para que un agente lo use, no un humano.

Los agentes leen mejor un CLI estructurado que una API REST. Este repo lo automatiza: lee el OpenAPI, absorbe lo mejor de cada cliente que ya existe, y escupe un CLI optimizado para agentes con SQLite offline.

Estrellas
2.4k★
Lenguaje
Go
Input
OpenAPI
Revisado
22 may 2026
Lo que ofrece

De un vistazo, lo que vas a obtener si lo instalas.

  • ·
    Genera CLI + skill + MCP

    Tres artefactos por API: CLI en Go, skill para Claude Code, MCP server. Cubre todos los puntos de entrada de agentes.

  • ·
    SQLite sync

    El CLI mantiene un mirror local. Los agentes consultan local primero, llaman al API solo cuando hace falta.

  • ·
    Comandos compuestos

    Una query del estilo vuelos no-stop sobre 8 horas desde Seattle, más baratos primero, es UN comando, no una secuencia.

  • ·
    Sniffer para APIs no documentadas

    Funciona contra ESPN, Google Flights, Domino's y otros sitios sin API oficial. Riesgo legal a tu cuenta.

  • ·
    Token-efficient por diseño

    Cada flag, cada output, cada error message está pensado para que el agente lo consuma con mínimo overhead.

Por qué importa

El contexto detrás del repo.

Hay un insight oculto en cómo trabajan los agentes de coding modernos: no leen documentación, ejecutan comandos. Y un CLI bien diseñado es como muscle memory para un agente — sin buscar en docs, sin equivocarse de flag, sin gastar tokens en exploración.

CLI Printing Press lo lleva al extremo. Lee la documentación oficial de un API, estudia cada CLI y MCP server que la comunidad ya construyó, sniffea la web cuando no hay API oficial, y aplica el playbook que Peter Steinberger comprobó con discrawl y gogcli — SQLite local, comandos compuestos, flags agent-native. Después fusiona todo eso y "imprime" un CLI en Go, un skill de Claude Code y un MCP server para ese API o sitio.

Tres CLIs ya impresos que puedes instalar hoy: ESPN (sin API oficial, sniffed), flight-goat (combina Kayak + Google Flights), linear-pp-cli (queries SQLite locales 50ms contra un mirror de Linear). El catálogo completo vive en printingpress.dev.

Para qué te sirve

Cuándo lo recomiendo (y cuándo no).

Lo recomiendo para equipos que están construyendo agentes contra APIs que no tienen buen tooling agent-native, o contra sitios sin API oficial. En lugar de escribir tu propio wrapper, le pasas el OpenAPI (o le dejas sniffear) y obtienes un CLI optimizado en horas, no semanas.

Si tu agente está pegado a Stripe, Linear, Notion o cualquier API mainstream, busca primero en el catálogo de printing-press-library — quizás ya está impreso. Si no, conviene revisar el código generado antes de meterlo a producción: sigue siendo código generado, vale la auditoría.

Cómo arrancarlo

En 3 pasos, listo para probar.

  1. 01

    Instala un CLI ya impreso

    # Ejemplo: ESPN CLI (deportes en vivo)
    brew tap mvanhorn/printing-press
    brew install espn-cli
    
    # Ejemplo: flight-goat (vuelos)
    brew install flight-goat

    Revisa el catálogo completo en printingpress.dev. Cada CLI viene con su skill de Claude Code y MCP server. Instalas el CLI, los otros artefactos quedan disponibles automáticamente.

  2. 02

    Imprime un CLI nuevo desde un OpenAPI

    cli-printing-press print --openapi ./mi-api.yaml --out ./mi-cli

    El comando lee el spec, busca clientes existentes en la comunidad para extraer features, y genera un CLI nuevo optimizado para agentes. El proceso toma minutos para APIs medianas.

  3. 03

    Conecta a tu agente

    El CLI generado trae un skill de Claude Code y un MCP server. Para Claude Code, copias el directorio del skill al folder de skills. Para MCP, agregas el server al config de tu cliente. El README del CLI impreso tiene la receta exacta.

Por qué CLIs ganan a APIs para agentes

Un agente de coding que consume un REST API gasta tokens en tres cosas: leer la documentación, equivocarse en el primer intento, y procesar respuestas verbosas. Un CLI bien diseñado las elimina las tres: el comando es autodocumentado, las flags son nombradas, la salida está estructurada para consumo programático.

Por eso los agentes serios prefieren CLIs. Y por eso un proyecto que automatiza la generación de CLIs agent-native vale prestar atención.

El catálogo: lo que ya está impreso

Tres ejemplos que muestran el rango:

  • ESPN — sin API oficial. Sniffed del sitio. "Los juegos de NBA esta noche con score, estado de serie, líder de cada equipo y noticias de lesiones de las últimas 24 horas." Una llamada, todo lo que pediste.
  • flight-goat — combina la búsqueda de Kayak con datos sniffeados de Google Flights. "Vuelos no-stop sobre 8 horas desde Seattle para 4 personas, del 24 dic al 1 ene, más baratos primero." Dos fuentes, una consulta.
  • linear-pp-cli — 50ms contra un mirror local. "Cada issue bloqueado cuyo bloqueador ha estado atorado por una semana." Queries compuestos que el API de Linear no responde.

Mi recomendación

Si construyes agentes que interactúan con servicios externos, vale mirar el catálogo primero antes de escribir tu propio wrapper. Y si tu caso de uso no está cubierto, el generador es de las pocas herramientas que automatizan la parte aburrida de hacer un agente útil contra una API.

Para experimentación personal está perfecto. Para producción, audita el código generado — sigue siendo código que un sistema produjo, no que un humano revisó línea por línea.

De Gabriel Neuman para tu equipo

¿Tu equipo necesita un agente conectado a APIs que no tienen buen tooling?

Si tu agente IA tiene que pegarle a APIs viejas o sitios sin API oficial, te ayudo a diseñar la capa de integración —custom o usando herramientas como CLI Printing Press— para que funcione en producción. Una llamada para revisar tu caso.