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 "..."
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"
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
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
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?
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.