CULTIVA IA · Automatizaciones
v1.0.0 · Apache-2.0

OpenCLI — Guía de Uso y Referencia

Convierte cualquier web, app Electron o CLI externa en una superficie uniforme opencli <site> <comando> que los agentes pueden invocar sin scraping.

Instalación
npm global
desde fuente
doctor
$ npm install -g @jackwener/opencli # requiere Node >= 21
$ opencli doctor # verifica bridge de navegador (daemon + extensión + Chrome)
Nota: doctor solo valida estrategias COOKIE/INTERCEPT/UI · PUBLIC y LOCAL funcionan sin browser bridge
Los tres pilares
PILAR 01 · ADAPTADORES
Adapter Commands
Adaptadores pre-construidos para 100+ sitios. Viven en clis/ (oficiales) o ~/.opencli/clis/ (usuario). Cada uno tiene una estrategia que indica si necesita Chrome.
opencli github pr-list -f json
opencli notion page-create --title "Q3"
opencli twitter post --text "..."
PILAR 02 · BROWSER
Browser Driving
Subcomandos opencli browser * para interacción ad-hoc cuando no existe adaptador. Incluye bind para adjuntarse a una pestaña ya abierta.
opencli browser open https://app.xyz
opencli browser click "#submit-btn"
opencli browser extract "table.data"
PILAR 03 · PASSTHROUGH
External CLI Passthrough
Envuelve CLIs externas (gh, docker, vercel) bajo la misma interfaz. Instalación via opencli external o registro manual.
opencli gh pr list --limit 5
opencli vercel deploy --prod
opencli docker ps -a
Estrategias de conexión
Estrategia Requiere Uso típico en CULTIVA Ejemplo de site
PUBLIC Nada — HTTP puro, sin browser APIs públicas, búsquedas, datos open github (repos públicos), npm
COOKIE Chrome logueado + extensión OpenCLI Publicar tweets, gestionar Notion twitter, linkedin, notion
INTERCEPT Chrome + extensión + captura de request Plataformas con tokens firmados loom, figma
UI Chrome + extensión + DOM completo Flujos sin API, clicks reales chatgpt-app, discord-app
LOCAL Nada — endpoint local/dev Microservicios CULTIVA internos localhost, dev APIs
Descubrimiento (siempre primero)
🔍
Explorar adaptadores disponibles
100+ sites
opencli list Tabla agrupada por site, para humanos
opencli list -f json Machine-readable — fuente de verdad para agentes
opencli list | grep twitter Filtrar por site específico
opencli <site> --help Comandos + flags del site
opencli <site> <cmd> --help Args posicionales y flags del comando
✗ NO hardcodear No pegues listas de esta guía — úsa list -f json
Flags universales
-f, --format <fmt>
table · yaml · json · plain · md · csv
Los agentes casi siempre quieren -f json
-v, --verbose
Debug logs + stack traces en fallos. Equivale a OPENCLI_VERBOSE=1
--trace retain-on-failure
Guarda traza cuando falla un adaptador. El envelope de error incluye bloque trace con summary.md para auto-reparación
--help
Disponible en cualquier nivel del árbol de comandos
Outputs por contexto
json
agentes IA
plain
piping
table
humanos TTY
Flujos reales de CULTIVA IA
1
Deploy + revisión de PRs
opencli gh pr list --limit 5 -f json
opencli gh pr review 42 --approve
opencli vercel deploy --prod
opencli vercel deployment-status -f json
2
Publicación de contenido
opencli twitter post --text "Hilo 1/5..."
opencli twitter analytics --period 7d -f json
opencli linkedin post --content brief.md
opencli loom upload --file demo.mp4
3
Documentación en Notion
opencli notion page-create --db "Proyectos"
opencli notion block-append --id abc123
opencli notion db-query --filter status=done
opencli notion page-export -f md
4
Adaptador roto → auto-reparar
opencli twitter timeline --trace retain-on-failure
# lee trace.summary.md → patch selector
opencli validate twitter/timeline
opencli verify twitter/timeline --smoke
5
Browser ad-hoc sin adaptador
opencli browser open https://app.nueva.io
opencli browser find "button[data-action]"
opencli browser extract "table.results" -f json
opencli browser network --detail
6
Registrar CLI interna
opencli external register cultiva-cli \
--binary cultiva --desc "CLI interna"
opencli external list -f json
opencli cultiva-cli deploy --env prod
Variables de entorno
OPENCLI_DAEMON_PORT
default: 19825
Puerto del bridge daemon ↔ extensión Chrome
OPENCLI_BROWSER_CONNECT_TIMEOUT
default: 30 seg
Segundos de espera para el bridge de navegador
OPENCLI_BROWSER_COMMAND_TIMEOUT
default: 60 seg
Timeout por comando individual
OPENCLI_CDP_ENDPOINT
Override manual de CDP (dev / Chrome remoto / Electron)
OPENCLI_CACHE_DIR
~/.opencli/cache
Cache de capturas de red y estado de browser
OPENCLI_VERBOSE
false
Logging verbose (también activa -v en el proceso)
¿A qué skill ir después?
Quiero conducir un browser en vivo (sin adaptador o prototipando)
opencli-browser
Quiero escribir un nuevo adaptador o añadir un comando
opencli-adapter-author
Adaptador roto tras un cambio del sitio
opencli-autofix
Enrutar una búsqueda / lookup al adaptador correcto
smart-search
Reglas de oro — No hacer
No pegues listas de comandos de esta guía en tu plan — rotarán. Llama opencli list -f json al inicio de cada tarea.
No asumas que todo adaptador necesita browser — la estrategia PUBLIC y LOCAL no lo necesitan. Revisa el campo strategy.
No hagas fallback silencioso a un fetch manual cuando el adaptador falla — usa --trace retain-on-failure primero.