Befehlszeilentool
Installiere den Befehl echolot und lerne, was alle Befehle gemeinsam haben: Secrets, Umgebungsvariablen und Exit-Codes.
echolot führt aus einem Terminal oder einem CI-Job aus, was du in der App baust: Es sendet Anfragen, führt einen
Arbeitsbereich mit seinen Prüfungen aus und schreibt Berichte, importiert und exportiert Sammlungen, prüft Specs,
stellt Mocks bereit, führt Flows aus und stellt einen Arbeitsbereich KI-Agenten über MCP bereit. Es liest dieselben
Dateien des Arbeitsbereichs wie die App, nichts muss konvertiert werden.
Das Befehlszeilentool laden
Der Direkt-Download bringt das Tool in der App mit. So legst du es in deinen PATH:
- Wähle Echolot › Befehlszeilentool installieren … oder öffne Einstellungen › Allgemein und klicke unter Befehlszeilentool auf Befehlszeilentool installieren ….
- Echolot legt einen Link
echolotauf das Tool in der App in/opt/homebrew/binoder/usr/local/binan. Ist keiner der beiden Ordner beschreibbar, fragt macOS nach dem Passwort eines Administrators. - Öffne ein neues Terminalfenster und tippe
echolot --help.
Einstellungen › Allgemein › Befehlszeilentool zeigt, wo das mitgelieferte Tool liegt und wo der Link in deinem
PATH. Nutze Neu installieren, nachdem du die App verschoben hast, und Entfernen, um den Link zu entfernen.
Steht eine Datei namens echolot, die Echolot nicht dorthin gelegt hat, im Weg, fragt Echolot, bevor es sie
ersetzt, und die Datei kommt in den Papierkorb.
Weil der Link in die App zeigt, wird das Tool mit der App aktualisiert.
Mac-App-Store-Edition
Die Version aus dem App Store hat kein Tool in sich und keinen Menübefehl Befehlszeilentool installieren …. Installiere das Tool stattdessen aus dem Zip auf der Seite der Releases. Es arbeitet mit denselben Arbeitsbereichen.
Editionen vergleichenDas Befehlszeilentool läuft nie ab, auch nicht in Beta-Builds der App. Es braucht macOS 15 oder neuer auf einem Mac.
Befehle
| Befehl | Was er macht |
|---|---|
echolot send | Sendet eine Anfrage, eine URL oder eine gesicherte Anfragedatei, und schreibt den Body in die Standardausgabe. |
echolot run | Führt einen Arbeitsbereich, einige seiner Ordner oder Anfragen oder eine Postman-Sammlung aus, mit Prüfungen und Berichten. |
echolot validate | Prüft, dass jede Datei eines Arbeitsbereichs lesbar ist und jede Anfrage sich auflöst. |
echolot import, echolot export | Bringt Sammlungen in einen Arbeitsbereich und schreibt einen Arbeitsbereich als Postman, Insomnia, Bruno oder Echolot aus. |
echolot mcp | Prüft MCP-Server, meldet sich bei ihnen an, stellt einen Arbeitsbereich Agenten bereit und gibt Setups für Clients aus. |
echolot spec | Prüft OpenAPI-Dokumente und prüft und wendet Änderungen der Spec auf den Ordner an, der der Spec folgt. |
echolot graphql diff | Vergleicht zwei GraphQL-Schemas und stuft jede Änderung ein. |
echolot grpc | Beschreibt gRPC-Services und ruft ihre Methoden auf. |
echolot mqtt | Abonniert bei MQTT-Brokern und veröffentlicht dort. |
echolot mock | Stellt einen Mock bereit: die Routen eines Mocks des Arbeitsbereichs oder ein OpenAPI-Dokument. |
echolot fake | Erzeugt Beispieldaten aus einer Vorlage, für Fixtures und Seed-Daten. |
echolot flow | Listet die Flows eines Arbeitsbereichs auf, führt sie aus, erstellt sie und stellt sie bereit. |
echolot agent | Führt den eingebauten Agenten mit einer Aufgabe aus, mit einer Richtlinie statt Genehmigungen. |
echolot help <command> und echolot <command> --help geben alle Optionen eines Befehls aus. Befehle mit
Unterbefehlen nehmen sie genauso: echolot mcp serve --help.
Optionen, die jeder Befehl hat
| Option | Bedeutung |
|---|---|
--version | Gibt die Version und den Build aus, etwa 0.5.0 (8). |
-h, --help | Gibt die Optionen des Befehls aus. |
Arbeitsbereiche und Umgebungen
Befehle, die an einem Arbeitsbereich arbeiten, nehmen seinen Ordner, den mit workspace.toml darin. Einige nehmen ihn
als Argument (echolot run Alpenglow.echolot), andere mit -w oder --workspace
(echolot flow list -w Alpenglow.echolot); die Seite jedes Befehls sagt, wie. Wo er optional ist, wird der aktuelle
Ordner genutzt.
--env wählt eine Umgebung nach ihrem Dateinamen ohne .toml (staging). run, validate und flow nehmen auch
ihren Namen (Staging). Ohne --env lösen sich Anfragen mit den eigenen Variablen des Arbeitsbereichs auf. Siehe
Umgebungen.
Secrets
Geheime Werte liegen nie in den Dateien des Arbeitsbereichs: Eine Datei nennt die geheime Variable und sonst nichts. Das Befehlszeilentool findet jeden Wert in dieser Reihenfolge:
- Eine Umgebungsvariable
ECHOLOT_SECRET_<NAME>. Der Name ist der Name der Variable in Großbuchstaben, wobei jedes Zeichen, das kein Buchstabe oder keine Ziffer ist, zu_wird:tokenistECHOLOT_SECRET_TOKEN,me_passwordistECHOLOT_SECRET_ME_PASSWORD. - Bei
echolot runeine Datei, die mit--secretsangegeben wird: einNAME=valuepro Zeile,#für Kommentare, Anführungszeichen um einen Wert werden entfernt.NAMEist der Name der Variable (token=…) oder der ganze Name der Umgebungsvariable (ECHOLOT_SECRET_TOKEN=…). Werte in der Datei haben Vorrang vor Umgebungsvariablen. - Auf einem Mac die Einträge im Schlüsselbund, die die App führt. Ein Secret, das du in der App festlegst, oder ein MCP-Server, bei dem du dich angemeldet hast, funktioniert auch im Terminal.
export ECHOLOT_SECRET_PASSWORD="$(op read 'op://Shop/Alpenglow staging/password')"
echolot run Alpenglow.echolot --env stagingDer Schlüsselbund wird nie genutzt, wenn CI gesetzt ist (auf irgendetwas außer leer, 0 oder false) oder wenn
ECHOLOT_KEYCHAIN=0 gilt. So wartet ein CI-Job nie auf eine Abfrage des Schlüsselbunds. Siehe
Secrets.
Umgebungsvariablen
| Variable | Genutzt von | Bedeutung |
|---|---|---|
ECHOLOT_SECRET_<NAME> | Jeder Befehl, der Anfragen auflöst | Der Wert der geheimen Variable <NAME>. |
ECHOLOT_KEYCHAIN=0 | Jeder Befehl | Den Schlüsselbund weder lesen noch beschreiben. |
CI | Jeder Befehl | Ist sie gesetzt, ist der Schlüsselbund aus, wie mit ECHOLOT_KEYCHAIN=0. |
HTTPS_PROXY, HTTP_PROXY, ALL_PROXY, NO_PROXY | send, run, mqtt und andere | Proxys, gelesen wie curl sie liest. --proxy und --no-proxy überschreiben sie; die eigene Proxy-Einstellung eines Arbeitsbereichs hat Vorrang. |
ECHOLOT_CERT_PASSPHRASE | send, run, mqtt | Die Passphrase des Schlüssels oder der PKCS#12-Datei, die mit --cert oder --key angegeben wird. |
ECHOLOT_MQTT_PASSWORD | mqtt | Das Passwort für den Broker. |
ECHOLOT_MCP_TOKEN | mcp serve --http | Das Bearer-Token, das Clients senden; sonst ein zufälliges. |
ECHOLOT_WEBHOOK_TOKEN | flow serve | Das Token, das Aufrufer des Webhooks senden; sonst ein zufälliges. |
ECHOLOT_BROWSER | mcp sign-in | Der Befehl, der die Anmeldeseite statt im Standardbrowser öffnet. |
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY | agent | Der API-Schlüssel des Modellanbieters. |
NO_COLOR | run | Einfache Ausgabe in der Konsole. |
Ausgabe und Exit-Codes
Ergebnisse gehen in die Standardausgabe: der Body einer Antwort, ein Bericht, die Zeilen, die ein Abonnement ausgibt. Fortschritt, Warnungen, Testergebnisse und Zeiten gehen in die Standardfehlerausgabe, sodass du die Ausgabe weiterreichen kannst:
echolot send https://demo.echolot.dev/v1/products/TNT-MH-2P | jq .name| Exit-Code | Bedeutung |
|---|---|
0 | Alles hat funktioniert, und jede Prüfung bestand. |
1 | Etwas ist fehlgeschlagen: keine Antwort, eine fehlgeschlagene Prüfung oder ein fehlgeschlagener Test, gefundene Probleme (validate, spec lint), Breaking Changes (graphql diff), ein anderer gRPC-Status als OK, eine abgelehnte MQTT-Verbindung, ein Agent, der nicht fertig wurde. |
22 | Nur echolot send: Der Status der Antwort war 400 oder höher, wie bei curl --fail. |
64 | Die Befehlszeile selbst war falsch: eine unbekannte Option, eine fehlende Datei, eine Umgebung, die es nicht gibt. Der Grund wird ausgegeben. |