EnConvert CLI — Conversión de archivos y datos web desde la línea de comandos#

enconvert es la interfaz de línea de comandos oficial de la API de EnConvert — convierte archivos a través de 46 rutas de subida, renderiza URLs y sitios completos a PDF o capturas de pantalla, y obtén datos web listos para agentes (perceive, discover, lookup, distill, ingest) sin salir de tu terminal. Se instala desde Homebrew, un script de instalación verificado con sha256, Scoop o npm, no incluye telemetría alguna y está construida para scripting de principio a fin: --json en cada comando, un filtro --jq integrado, códigos de salida deterministas y archivos convertidos guardados en disco con la ruta impresa en stdout.

npm: @enconvert/cli · Fuente: enconvert/cli · Licencia: MIT · Telemetría: ninguna

Instalación#

Homebrew (macOS y Linux):

brew install enconvert/tap/enconvert

Script de instalación (macOS y Linux, verificado con sha256):

curl -fsSL https://get.enconvert.com/install.sh | sh

Scoop (Windows):

scoop bucket add enconvert https://github.com/enconvert/scoop-bucket && scoop install enconvert

npm (cualquier plataforma, Node.js >= 22.12):

npm i -g @enconvert/cli

Comprueba la instalación con enconvert --version y explora todo lo que puede hacer el binario con enconvert --help.


Autenticación#

enconvert auth login

Pega tu clave API privada (sk_live_...) — entrada oculta, validada en vivo contra la API y almacenada en credentials.toml con modo de archivo 0600. Cada petición se autentica con la cabecera X-API-Key. En CI, omite login y define ENCONVERT_API_KEY en su lugar.

enconvert auth status     # where the key comes from, plan, quota
enconvert whoami          # one-line identity check
enconvert usage           # current-period conversion and V2 usage
enconvert auth switch     # change the active profile
enconvert auth logout     # delete the stored key

enconvert auth token imprime la clave activa para encadenarla a otras herramientas — ningún otro comando la muestra jamás.


Convertir archivos#

enconvert convert cubre las 46 rutas de subida — formatos de datos, documentos de oficina, imágenes, destinos universales y compresión. El endpoint se infiere de la extensión del archivo más --to:

Conversión Comando Endpoint llamado
DOCX → PDF enconvert convert report.docx --to pdf POST /v1/convert/doc-to-pdf
HEIC → WebP enconvert convert photo.heic --to webp POST /v1/convert/heic-to-webp
JSON → YAML enconvert convert data.json --to yaml POST /v1/convert/json-to-yaml
Markdown → PDF enconvert convert README.md --to pdf POST /v1/convert/markdown-to-pdf

Los globs se despliegan en una conversión por archivo, y -o - transmite bytes crudos para encadenar:

enconvert convert *.heic --to webp
enconvert convert data.csv --to json -o - | jq '.[0]'

Por defecto, el archivo convertido se descarga a disco y su ruta se imprime en stdout. -o out.pdf elige el destino, -O conserva el nombre de archivo del servidor, --url-only imprime la URL prefirmada sin descargar, y -o - escribe los bytes crudos en stdout en su lugar.

enconvert formats lista todas las rutas soportadas; enconvert params <route> muestra los parámetros que acepta un endpoint concreto.


Renderizar URLs y sitios#

enconvert url pdf https://example.com -o page.pdf      # POST /v1/convert/url-to-pdf
enconvert url screenshot https://example.com           # POST /v1/convert/url-to-screenshot
enconvert url markdown https://example.com/article     # POST /v1/convert/url-to-markdown

Los sitios completos se ejecutan como lotes asíncronos. Por defecto la CLI espera y muestra el progreso; --no-wait imprime el id del lote y retorna de inmediato:

enconvert site pdf https://example.com
enconvert site screenshot https://example.com --no-wait

Datos web para agentes#

Los comandos V2 se corresponden 1:1 con los endpoints de inteligencia web V2:

enconvert perceive https://example.com                               # POST /v2/perceive
enconvert perceive batch urls.txt                                    # async batch, up to 1000 URLs
enconvert discover https://example.com                               # POST /v2/discover
enconvert lookup "best static site generators"                       # POST /v2/lookup
enconvert distill https://example.com/pricing --schema schema.json   # POST /v2/distill
enconvert ingest https://docs.example.com                            # POST /v2/ingest

perceive renderiza una página en artefactos de markdown, HTML, captura y PDF en una sola llamada; discover enumera las URLs de un sitio sin renderizar; lookup ejecuta una búsqueda web, de noticias, académica o de mapas; distill extrae datos estructurados conforme a tu esquema JSON; e ingest rastrea un sitio hacia JSONL troceado listo para RAG. Los trabajos de ingest traen sus propios auxiliares — enconvert ingest list, enconvert ingest files <job_id>, enconvert ingest webhook-secret — y cualquier artefacto producido puede obtenerse con enconvert files download <id>.

¿Trabajas dentro de un asistente de IA en lugar de un terminal? enconvert mcp install configura el servidor MCP de EnConvert por ti.


Jobs y scripting#

Cada comando acepta --json (un único documento JSON), --jsonl (líneas en streaming), un filtro --jq integrado y --template para salida de texto personalizada:

enconvert jobs get <job_id> --json --jq .status

El trabajo asíncrono sigue un patrón de iniciar / esperar / recoger:

enconvert site pdf https://example.com --no-wait
enconvert jobs batch <batch_id>
enconvert jobs wait <batch_id> --wait-timeout 600 --exit-status

--exit-status hace que los comandos en espera terminen con el resultado del trabajo, --poll-interval ajusta la cadencia de sondeo, --dry-run imprime la petición sin enviarla, y --no-input desactiva todos los avisos interactivos para CI. Los códigos de salida son estables y aptos para scripts:

Código Significado
0 Éxito
2 Error de uso — flags o argumentos incorrectos
4 Autenticación fallida
5 Límite de peticiones superado
6 Límite de plan o cuota alcanzado
7 Conversión o formato no soportado
8 Entrada rechazada
9 Error del servidor o fallo del trabajo
10 Error de red o timeout
130 Interrumpido con Ctrl-C

El comando api#

Un passthrough al estilo de gh que alcanza cualquier endpoint de EnConvert — incluidos los nuevos para los que la CLI aún no tiene verbo dedicado:

enconvert api /v2/perceive -f url=https://example.com
enconvert api /v1/convert/status/<job_id> --jq .status

-f añade campos de cadena, -F añade campos mágicos tipados (números, booleanos, @file para leer un valor desde disco). Con campos la petición es un POST, sin ellos un GET, y --jq filtra la respuesta JSON al vuelo.


Configuración y perfiles#

Los ajustes viven en ~/.config/enconvert/config.toml como perfiles con nombre; las claves viven aparte en credentials.toml (modo 0600); un .enconvertrc.toml local del proyecto sobrescribe ambos:

[profile.default]
api_url = "https://api.enconvert.com"

[profile.work]
timeout = 120

Selecciona un perfil por invocación con --profile work, por shell con ENCONVERT_PROFILE, o de forma persistente con enconvert auth switch. enconvert config lee y escribe cualquier ajuste desde la línea de comandos.


Variables de entorno#

Variable Propósito
ENCONVERT_API_KEY Clave API — sobrescribe las credenciales almacenadas
ENCONVERT_API_URL Sobrescritura de la URL base de la API
ENCONVERT_PROFILE Nombre del perfil activo
ENCONVERT_CONFIG Ruta explícita del archivo de configuración
ENCONVERT_CONFIG_DIR Sobrescritura del directorio de configuración
ENCONVERT_DEBUG Registro detallado de peticiones y respuestas
ENCONVERT_NO_INPUT Desactivar los avisos interactivos
ENCONVERT_NO_UPDATE_NOTIFIER Silenciar el aviso de actualización
NO_COLOR Desactivar la salida con color (se respeta la familia NO_COLOR)

Los flags ganan a las variables de entorno, que ganan al .enconvertrc.toml del proyecto, que gana a la configuración global.


Autocompletado del shell#

source <(enconvert completion zsh)

Añade esa línea a tu perfil del shell. Los autocompletados de bash, fish y powershell se generan de la misma manera.


Actualización#

enconvert upgrade

Detecta cómo se instaló la CLI (Homebrew, script de instalación, Scoop, npm) y actualiza por el mismo canal. Define ENCONVERT_NO_UPDATE_NOTIFIER=1 para silenciar el aviso de actualización diario.


Desinstalación#

brew uninstall enconvert          # Homebrew
scoop uninstall enconvert         # Scoop
npm rm -g @enconvert/cli          # npm
rm "$(command -v enconvert)"      # install script

Opcionalmente elimina ~/.config/enconvert/ para borrar la configuración y las credenciales.


Solución de problemas#

command not found: enconvert tras npm i -g. La build de npm requiere Node.js >= 22.12, y el directorio bin global de npm debe estar en tu PATH — compruébalo con npm prefix -g. Las builds de Homebrew, script de instalación y Scoop son binarios autocontenidos sin requisito de Node.

Un archivo redirigido contiene una ruta de archivo en lugar del documento. Por defecto la CLI descarga el archivo a disco e imprime la ruta en stdout — enconvert url pdf ... > out.pdf captura ese texto de ruta. Transmite los bytes reales con -o -, o fija el destino con -o out.pdf.

Código de salida 4 en CI. No hay clave API utilizable. Define ENCONVERT_API_KEY en los secretos de tu CI; enconvert auth status muestra exactamente de dónde viene (o no viene) la clave.

Un comando se queda colgado en CI. Está esperando un aviso interactivo. Pasa --no-input (o define ENCONVERT_NO_INPUT=1) para que los avisos fallen rápido en lugar de bloquear.


Enlaces#