AI Glot websiteOpen AI Glot
CLICLI-Automatisierung und Ausgabe

CLI-Automatisierung und Ausgabe

Betreiben Sie die AI Glot CLI sicher in Skripten und CI unter Verwendung von JSON oder NDJSON, Umgebungsvariablen für Anmeldedaten, Profilen, Exit-Codes und begrenzten Retries.

Die CLI gibt in einem Terminal lesbare Tabellen aus und JSON, wenn die Ausgabe per Pipe weitergeleitet wird, sodass derselbe Befehl sowohl interaktiv als auch in der Automatisierung funktioniert.

Terminal
aiglot batches list                    # Tabelle im Terminal
aiglot batches list | jq '.data[0].id' # JSON bei Pipe
aiglot batches list --output ndjson    # ein Objekt pro Zeile
aiglot account --json                  # explizites JSON

Fehler werden an den Standard-Error-Stream gesendet, ebenso wie Warnungen, die der Aufrufer sehen muss, wie etwa eine gekürzte Ergebnisseite. Der Standard-Output bleibt daher sicher für die Weiterleitung in ein anderes Programm.

Warten auf den Abschluss einer Übersetzung

Ein Skript, das eine Übersetzung startet, muss normalerweise auf deren Abschluss warten. Pollen Sie batches get und stoppen Sie bei einem terminalen Status:

Terminal
id=$(aiglot batches create catalogue.csv --instruction "Translate into French" --json | jq -r '.data.id')
aiglot batches approve "$id" --json > /dev/null

until status=$(aiglot batches get "$id" --json | jq -r '.data.status'); [ "$status" = "completed" ] || [ "$status" = "failed" ]; do
  sleep 5
done

[ "$status" = "completed" ] && aiglot batches download "$id" --output result.csv

Dies sind alle Status, die eine Übersetzung melden kann, sowie die drei, die sie beenden. Jeder beantwortet dieselbe Frage: Wer wartet und worauf?

StatusBedeutungWer wartetTerminal
analyzingdie Dateistruktur wird gelesenwir, für Sekunden
awaiting_instructionsDatei ist gelesen; es wurde noch nichts angefordertSie
awaiting_approvalein Plan ist fertig und bepreistSie
translatingläuft; der einzige Zustand, bei dem Credits verbraucht werdenwir
completedabgeschlossen, eine Ergebnisdatei ist verfügbarniemand
failedohne Ergebnis beendet; lesen Sie error.codeSie, für Retry
cancelledabsichtlich gestoppt, nur für ausgeführte Arbeit berechnetniemand

Pagination

batches list und glossaries list basieren auf Cursoren. Übergeben Sie den next_cursor aus der vorherigen Antwort unverändert mit --cursor zurück, oder lassen Sie --all dies für Sie übernehmen, bis has_more den Wert false hat (begrenzt auf 200 Seiten als Sicherheitsmaßnahme):

Terminal
aiglot batches list --status completed --all
aiglot glossaries list --all --output ndjson

Bei --output ndjson gibt --all jede Zeile jeder Seite aus, sobald sie eintrifft. Im Modus table und json wird ein kombiniertes Ergebnis mit has_more: false, next_cursor: null und einer pages_fetched-Zählung anstelle der request_id ausgegeben, da kein einzelner Request benannt werden kann, wenn mehrere ausgeführt wurden.

CI-Authentifizierung

Erstellen Sie einen dedizierten API-Key mit minimalen Berechtigungen und speichern Sie diesen im Secret-Manager Ihres CI-Providers:

Terminal
export AIGLOT_API_KEY="aig_live_…"
aiglot account --json

Die CLI prüft die Anmeldedaten in dieser Reihenfolge: AIGLOT_API_KEY, OS-Keychain, dann die geschützte Konfigurationsdatei.

Exit-Codes

CodeBedeutung
0Erfolg
1API- oder Serverfehler
2Ungültiger Befehl oder Argumente
3Authentifizierungs- oder Berechtigungsfehler
4Ressource nicht gefunden
5Rate Limit erreicht
6Ressourcen-Zustandskonflikt

Skripte sollten basierend auf dem Exit-Code oder dem strukturierten error.code verzweigen, nicht auf dem Text der Fehlermeldung.

Retries

Retries erfolgen automatisch, jedoch nur dort, wo ein Retry sicher ist. 429 wird für jeden Befehl unter Beachtung von Retry-After mit begrenztem Backoff wiederholt. 408 und 5xx werden nur für idempotente Anfragen wiederholt (RFC 9110 §9.2.2): Lesezugriffe, glossaries replace, glossaries delete.

glossaries create, glossaries add, glossaries remove, batches rename und batches archive werden nach einem 5xx nicht wiederholt, da der Schreibvorgang möglicherweise bereits erfolgreich war und ein zweiter Versuch ihn doppelt anwenden würde. Diese Fehler werden Ihrem Skript mit Exit-Code 1 gemeldet: Lesen Sie die Ressource erneut aus und entscheiden Sie selbst, ob Sie es erneut versuchen möchten, anstatt blind zu wiederholen.

Verwenden Sie --no-retry, wenn der Aufrufer die Retry-Strategie steuert, und --timeout <seconds> (Standard 60), um eine einzelne Anfrage zu begrenzen. Destruktive Befehle warten niemals endlos auf eine interaktive Eingabe: Bei nicht-interaktiver Nutzung muss --force übergeben werden.

Profile

Verwenden Sie benannte Profile, um Anmeldedaten für verschiedene Workspaces oder Umgebungen getrennt zu halten:

Terminal
aiglot --profile client-a auth login --key "$CLIENT_A_KEY"
aiglot --profile client-a account
export AIGLOT_PROFILE=client-a

Umgebungsvariablen

VariableZweck
AIGLOT_API_KEYAPI-Key; überschreibt gespeicherte Anmeldedaten
AIGLOT_PROFILEBenanntes Anmeldedaten-Profil
AIGLOT_NO_TUIErzwingt maschinenlesbare Ausgabe
AIGLOT_NO_KEYCHAINÜberspringt den OS-Keychain
NO_COLORStandard (no-color.org). Deaktiviert nur Farben; ändert nicht das Ausgabeformat

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search AI Glot Docs documentation and read it in full, instead of answering from memory.

https://ai-glot.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://ai-glot.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.