Echolot
Ligne de commande et CI

Outil en ligne de commande

Installez la commande echolot et découvrez ce que toutes les commandes partagent : secrets, variables d’environnement et codes de sortie.

echolot exécute depuis un terminal ou une tâche de CI ce que vous construisez dans l’app : il envoie des requêtes, exécute un espace de travail avec ses vérifications et écrit des rapports, importe et exporte des collections, analyse des specs (lint), sert des mocks, exécute des flux et sert un espace de travail à des agents IA via MCP. Il lit les mêmes fichiers d’espace de travail que l’app : rien à convertir.

Obtenir l’outil en ligne de commande

Le téléchargement direct embarque l’outil dans l’app. Pour le placer dans votre PATH :

  1. Choisissez Echolot › Installer l’outil en ligne de commande…, ou ouvrez Réglages › Général et cliquez sur Installer l’outil en ligne de commande… sous Outil en ligne de commande.
  2. Echolot place dans /opt/homebrew/bin ou /usr/local/bin un lien echolot vers l’outil à l’intérieur de l’app. Si aucun de ces dossiers n’est accessible en écriture, macOS demande un mot de passe d’administrateur.
  3. Ouvrez une nouvelle fenêtre Terminal et saisissez echolot --help.

Réglages › Général › Outil en ligne de commande indique où se trouve l’outil intégré et le lien dans votre PATH. Utilisez Réinstaller après avoir déplacé l’app, et Retirer pour supprimer le lien. Si un fichier nommé echolot qu’Echolot n’a pas placé là gêne le passage, Echolot demande avant de le remplacer, et le fichier va dans la corbeille.

Comme le lien pointe vers l’intérieur de l’app, l’outil se met à jour avec l’app.

Édition du Mac App Store

L’édition App Store n’embarque pas l’outil et n’a pas d’élément Installer l’outil en ligne de commande…. Installez plutôt l’outil depuis le zip de la page des versions. Il fonctionne avec les mêmes espaces de travail.

Comparer les éditions

L’outil en ligne de commande n’expire jamais, y compris dans les builds bêta de l’app. Il nécessite macOS 15 ou ultérieur sur un Mac.

Commandes

CommandeEffet
echolot sendEnvoie une requête, une URL ou un fichier de requête enregistré, et écrit le corps sur la sortie standard.
echolot runExécute un espace de travail, certains de ses dossiers ou requêtes, ou une collection Postman, avec des vérifications et des rapports.
echolot validateVérifie que chaque fichier d’un espace de travail se lit et que chaque requête se résout.
echolot import, echolot exportImporte des collections dans un espace de travail et exporte un espace de travail en Postman, Insomnia, Bruno ou Echolot.
echolot mcpVérifie des serveurs MCP, s’y connecte, sert un espace de travail à des agents et affiche les configurations de clients.
echolot specAnalyse des documents OpenAPI (lint), et vérifie et applique les changements de spec au dossier qui suit la spec.
echolot graphql diffCompare deux schémas GraphQL et note chaque changement.
echolot grpcDécrit des services gRPC et appelle leurs méthodes.
echolot mqttS’abonne à des brokers MQTT et y publie.
echolot mockSert un mock : les routes d’un mock de l’espace de travail, ou un document OpenAPI.
echolot fakeProduit des données fictives à partir d’un modèle, pour des jeux de test et des données d’amorçage.
echolot flowListe, exécute, crée et sert les flux d’un espace de travail.
echolot agentExécute l’agent intégré sur une tâche, avec une politique à la place des approbations.

echolot help <command> et echolot <command> --help affichent toutes les options d’une commande. Les commandes avec des sous-commandes les acceptent de la même façon : echolot mcp serve --help.

Options de toutes les commandes

OptionSignification
--versionAffiche la version et le build, par exemple 0.5.0 (8).
-h, --helpAffiche les options de la commande.

Espaces de travail et environnements

Les commandes qui travaillent sur un espace de travail prennent son dossier, celui qui contient workspace.toml. Certaines le prennent en argument (echolot run Alpenglow.echolot), d’autres avec -w ou --workspace (echolot flow list -w Alpenglow.echolot) ; la page de chaque commande le précise. Quand il est facultatif, le dossier courant est utilisé.

--env choisit un environnement par son nom de fichier sans .toml (staging). run, validate et flow acceptent aussi son nom (Staging). Sans --env, les requêtes se résolvent avec les variables propres de l’espace de travail. Voir environnements.

Secrets

Les valeurs secrètes ne vivent jamais dans les fichiers d’un espace de travail : un fichier nomme la variable secrète et rien de plus. L’outil en ligne de commande trouve chaque valeur dans cet ordre :

  1. Une variable d’environnement ECHOLOT_SECRET_<NAME>. Le nom est celui de la variable en majuscules, chaque caractère qui n’est ni une lettre ni un chiffre étant remplacé par _ : token donne ECHOLOT_SECRET_TOKEN, me_password donne ECHOLOT_SECRET_ME_PASSWORD.
  2. Pour echolot run, un fichier donné avec --secrets : un NAME=value par ligne, # pour les commentaires, les guillemets autour d’une valeur sont retirés. NAME est le nom de la variable (token=…) ou le nom complet de la variable d’environnement (ECHOLOT_SECRET_TOKEN=…). Les valeurs du fichier l’emportent sur les variables d’environnement.
  3. Sur un Mac, les éléments du trousseau que l’app conserve. Un secret que vous avez défini dans l’app, ou un serveur MCP auquel vous vous êtes connecté, fonctionne aussi dans Terminal.
export ECHOLOT_SECRET_PASSWORD="$(op read 'op://Shop/Alpenglow staging/password')"
echolot run Alpenglow.echolot --env staging

Le trousseau n’est jamais utilisé quand CI est défini (à autre chose que vide, 0 ou false), ou quand ECHOLOT_KEYCHAIN=0. Cela évite qu’une tâche de CI attende une invite du trousseau. Voir secrets.

Variables d’environnement

VariableUtilisée parSignification
ECHOLOT_SECRET_<NAME>Toutes les commandes qui résolvent des requêtesLa valeur de la variable secrète <NAME>.
ECHOLOT_KEYCHAIN=0Toutes les commandesNe pas lire ni écrire le trousseau.
CIToutes les commandesQuand elle est définie, le trousseau est désactivé, comme avec ECHOLOT_KEYCHAIN=0.
HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, NO_PROXYsend, run, mqtt et d’autresLes proxies, lus comme les lit curl. --proxy et --no-proxy les remplacent ; le réglage de proxy propre à un espace de travail passe en premier.
ECHOLOT_CERT_PASSPHRASEsend, run, mqttLa phrase secrète de la clé ou du fichier PKCS#12 donné avec --cert ou --key.
ECHOLOT_MQTT_PASSWORDmqttLe mot de passe du broker.
ECHOLOT_MCP_TOKENmcp serve --httpLe jeton Bearer que les clients envoient ; un jeton aléatoire sinon.
ECHOLOT_WEBHOOK_TOKENflow serveLe jeton qu’envoient les appelants du webhook ; un jeton aléatoire sinon.
ECHOLOT_BROWSERmcp sign-inLa commande qui ouvre la page de connexion à la place du navigateur par défaut.
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEYagentLa clé d’API du fournisseur de modèle.
NO_COLORrunSortie console sans couleur.

Sortie et codes de sortie

Les résultats vont sur la sortie standard : un corps de réponse, un rapport, les lignes qu’affiche un abonnement. La progression, les avertissements, les résultats de tests et les durées vont sur la sortie d’erreur, pour que vous puissiez chaîner la sortie :

echolot send https://demo.echolot.dev/v1/products/TNT-MH-2P | jq .name
Code de sortieSignification
0Tout a fonctionné et chaque vérification a réussi.
1Quelque chose a échoué : pas de réponse, une vérification ou un test en échec, des problèmes détectés (validate, spec lint), des changements incompatibles (graphql diff), un état gRPC autre que OK, une connexion MQTT refusée, un agent qui n’a pas terminé.
22echolot send uniquement : l’état de la réponse était 400 ou plus, comme avec curl --fail.
64La ligne de commande elle-même était erronée : une option inconnue, un fichier manquant, un environnement qui n’existe pas. La raison est affichée.

Suite

Sur cette page