EnConvert CLI — Conversion de fichiers et données web en ligne de commande#

enconvert est l'interface en ligne de commande officielle de l'API EnConvert — convertissez des fichiers via 46 routes d'upload, rendez des URL et des sites entiers en PDF ou en captures d'écran, et récupérez des données web prêtes pour les agents (perceive, discover, lookup, distill, ingest) sans quitter votre terminal. Elle s'installe depuis Homebrew, un script d'installation vérifié par sha256, Scoop ou npm, n'embarque aucune télémétrie et est conçue pour le scripting de bout en bout : --json sur chaque commande, un filtre --jq intégré, des codes de sortie déterministes, et les fichiers convertis sont enregistrés sur disque avec le chemin imprimé sur stdout.

npm : @enconvert/cli · Source : enconvert/cli · Licence : MIT · Télémétrie : aucune

Installation#

Homebrew (macOS et Linux) :

brew install enconvert/tap/enconvert

Script d'installation (macOS et Linux, vérifié par 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 (toute plateforme, Node.js >= 22.12) :

npm i -g @enconvert/cli

Vérifiez l'installation avec enconvert --version, puis explorez tout ce que le binaire sait faire avec enconvert --help.


Authentification#

enconvert auth login

Collez votre clé API privée (sk_live_...) — saisie masquée, validée en direct auprès de l'API et stockée dans credentials.toml avec le mode de fichier 0600. Chaque requête s'authentifie via l'en-tête X-API-Key. En CI, sautez login et définissez ENCONVERT_API_KEY à la place.

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 clé active pour la transmettre à d'autres outils — aucune autre commande ne l'affiche jamais.


Convertir des fichiers#

enconvert convert couvre les 46 routes d'upload — formats de données, documents bureautiques, images, cibles universelles et compression. L'endpoint est déduit de l'extension du fichier plus --to :

Conversion Commande Endpoint appelé
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

Les globs se déploient en une conversion par fichier, et -o - diffuse les octets bruts pour le piping :

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

Par défaut, le fichier converti est téléchargé sur disque et son chemin est imprimé sur stdout. -o out.pdf choisit la destination, -O conserve le nom de fichier du serveur, --url-only imprime l'URL présignée sans télécharger, et -o - écrit à la place les octets bruts sur stdout.

enconvert formats liste toutes les routes prises en charge ; enconvert params <route> affiche les paramètres qu'un endpoint donné accepte.


Rendre des URL et des sites#

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

Les sites entiers s'exécutent en lots asynchrones. Par défaut, la CLI attend et affiche la progression ; --no-wait imprime l'id du lot et rend la main immédiatement :

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

Données web pour agents#

Les commandes V2 correspondent 1:1 aux endpoints d'intelligence 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 rend une page en artefacts markdown, HTML, capture d'écran et PDF en un seul appel ; discover énumère les URL d'un site sans rendu ; lookup lance une recherche web, actualités, scholar ou maps ; distill extrait des données structurées conformes à votre schéma JSON ; et ingest crawle un site vers du JSONL découpé prêt pour le RAG. Les jobs d'ingest ont leurs propres auxiliaires — enconvert ingest list, enconvert ingest files <job_id>, enconvert ingest webhook-secret — et tout artefact produit se récupère avec enconvert files download <id>.

Vous travaillez dans un assistant IA plutôt que dans un terminal ? enconvert mcp install configure le serveur MCP EnConvert pour vous.


Jobs et scripting#

Chaque commande accepte --json (un unique document JSON), --jsonl (lignes en streaming), un filtre --jq intégré et --template pour une sortie texte personnalisée :

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

Le travail asynchrone suit un motif démarrer / attendre / récupérer :

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 fait sortir les commandes en attente avec le résultat du job, --poll-interval règle la cadence de polling, --dry-run imprime la requête sans l'envoyer, et --no-input désactive toutes les invites pour la CI. Les codes de sortie sont stables et adaptés aux scripts :

Code Signification
0 Succès
2 Erreur d'utilisation — flags ou arguments invalides
4 Échec de l'authentification
5 Limite de débit dépassée
6 Limite de plan ou de quota atteinte
7 Conversion ou format non pris en charge
8 Entrée rejetée
9 Erreur serveur ou échec du job
10 Erreur réseau ou timeout
130 Interrompu avec Ctrl-C

La commande api#

Un passthrough à la façon de gh qui atteint chaque endpoint EnConvert — y compris les nouveaux pour lesquels la CLI n'a pas encore de verbe dédié :

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

-f ajoute des champs chaîne, -F ajoute des champs magiques typés (nombres, booléens, @file pour lire une valeur depuis le disque). Avec des champs la requête est un POST, sans eux un GET, et --jq filtre la réponse JSON à la volée.


Configuration et profils#

Les réglages vivent dans ~/.config/enconvert/config.toml sous forme de profils nommés ; les clés vivent à part dans credentials.toml (mode 0600) ; un .enconvertrc.toml local au projet surcharge les deux :

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

[profile.work]
timeout = 120

Sélectionnez un profil par invocation avec --profile work, par shell avec ENCONVERT_PROFILE, ou de façon persistante avec enconvert auth switch. enconvert config lit et écrit n'importe quel réglage depuis la ligne de commande.


Variables d'environnement#

Variable Rôle
ENCONVERT_API_KEY Clé API — remplace les identifiants stockés
ENCONVERT_API_URL Surcharge de l'URL de base de l'API
ENCONVERT_PROFILE Nom du profil actif
ENCONVERT_CONFIG Chemin explicite du fichier de configuration
ENCONVERT_CONFIG_DIR Surcharge du répertoire de configuration
ENCONVERT_DEBUG Journalisation détaillée des requêtes et réponses
ENCONVERT_NO_INPUT Désactiver les invites interactives
ENCONVERT_NO_UPDATE_NOTIFIER Couper l'avis de mise à jour
NO_COLOR Désactiver la sortie colorée (la famille NO_COLOR est respectée)

Les flags l'emportent sur les variables d'environnement, qui l'emportent sur le .enconvertrc.toml du projet, qui l'emporte sur la configuration globale.


Complétion du shell#

source <(enconvert completion zsh)

Ajoutez cette ligne à votre profil de shell. Les complétions bash, fish et powershell se génèrent de la même manière.


Mise à jour#

enconvert upgrade

Détecte comment la CLI a été installée (Homebrew, script d'installation, Scoop, npm) et met à jour via le même canal. Définissez ENCONVERT_NO_UPDATE_NOTIFIER=1 pour couper l'avis de mise à jour quotidien.


Désinstallation#

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

Supprimez éventuellement ~/.config/enconvert/ pour effacer la configuration et les identifiants.


Dépannage#

command not found: enconvert après npm i -g. La build npm nécessite Node.js >= 22.12, et le répertoire bin global de npm doit être dans votre PATH — vérifiez-le avec npm prefix -g. Les builds Homebrew, script d'installation et Scoop sont des binaires autonomes sans dépendance à Node.

Un fichier redirigé contient un chemin de fichier au lieu du document. Par défaut, la CLI télécharge le fichier sur disque et imprime le chemin sur stdout — enconvert url pdf ... > out.pdf capture ce texte de chemin. Diffusez les octets réels avec -o -, ou fixez la destination avec -o out.pdf.

Code de sortie 4 en CI. Aucune clé API utilisable. Définissez ENCONVERT_API_KEY dans les secrets de votre CI ; enconvert auth status montre exactement d'où vient (ou ne vient pas) la clé.

Une commande reste bloquée en CI. Elle attend une invite interactive. Passez --no-input (ou définissez ENCONVERT_NO_INPUT=1) pour que les invites échouent immédiatement au lieu de bloquer.


Liens#