AI Glot websiteOpen AI Glot
CLIAutomatisation CLI et sorties

Automatisation CLI et sorties

Exécutez le CLI AI Glot en toute sécurité dans des scripts et en CI via JSON ou NDJSON, des identifiants d'environnement, des profils, des codes de sortie et des tentatives limitées.

Le CLI affiche des tableaux lisibles dans un terminal et du JSON lorsque la sortie est redirigée, ainsi la même commande fonctionne en mode interactif comme en automatisation.

Terminal
aiglot batches list                    # tableau dans un terminal
aiglot batches list | jq '.data[0].id' # JSON lors d'une redirection
aiglot batches list --output ndjson    # un objet par ligne
aiglot account --json                  # JSON explicite

Les erreurs sont envoyées vers la sortie d’erreur standard (stderr), tout comme les avertissements que l’appelant doit voir, tel qu’une page de résultats tronquée. La sortie standard (stdout) peut donc être redirigée en toute sécurité vers un autre programme.

Attendre la fin d’une traduction

Un script qui lance une traduction doit généralement attendre sa fin. Interrogez batches get et arrêtez-vous sur un statut terminal :

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

Voici tous les statuts qu’une traduction peut rapporter, dont les trois qui y mettent fin. Chacun répond à la même question : qui attend, et quoi ?

StatutSignificationQui attendTerminal
analyzingla structure du fichier est luenous, pendant quelques secondes
awaiting_instructionsle fichier est lu ; aucune instruction n’a été donnéevous
awaiting_approvalun plan est prêt et chiffrévous
translatingen cours ; seul état ayant consommé des créditsnous
completedterminé, un fichier de résultat est disponiblepersonne
failedterminé sans résultat ; lisez error.codevous, pour réessayer
cancelledarrêté volontairement, facturé uniquement pour le travail effectuépersonne

Pagination

batches list et glossaries list sont basés sur des curseurs. Renvoyez le next_cursor de la réponse précédente tel quel avec --cursor, ou laissez --all s’en charger jusqu’à ce que has_more soit false (limité à 200 pages par sécurité) :

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

En mode --output ndjson, --all affiche chaque ligne de chaque page au fur et à mesure de leur arrivée. En mode table et json, il affiche un résultat combiné avec has_more: false, next_cursor: null et un compte pages_fetched à la place de request_id, puisqu’aucune requête unique ne peut être nommée une fois que plusieurs ont été exécutées.

Authentification CI

Créez une clé API dédiée avec un périmètre minimum et stockez-la dans le gestionnaire de secrets de votre fournisseur CI :

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

Le CLI vérifie les identifiants dans cet ordre : AIGLOT_API_KEY, le trousseau de clés de l’OS, puis son fichier de configuration protégé.

Codes de sortie

CodeSignification
0Succès
1Erreur API ou serveur
2Commande ou arguments invalides
3Échec d’authentification ou de permission
4Ressource non trouvée
5Limite de débit atteinte (Rate limited)
6Conflit d’état de ressource

Les scripts doivent se baser sur le code de sortie ou le error.code structuré, et non sur le texte du message d’erreur.

Tentatives (Retries)

Les tentatives sont automatiques, mais uniquement là où elles sont sûres. L’erreur 429 est retryée pour chaque commande, en respectant Retry-After avec un backoff borné. Les erreurs 408 et 5xx sont retryées uniquement pour les requêtes idempotentes (RFC 9110 §9.2.2) : lectures, glossaries replace, glossaries delete.

glossaries create, glossaries add, glossaries remove, batches rename et batches archive ne sont pas retryées après une 5xx, car l’écriture a pu être enregistrée et une seconde tentative l’appliquerait deux fois. Ces échecs remontent à votre script avec le code de sortie 1 : relisez la ressource et décidez vous-même s’il faut réessayer plutôt que de le faire aveuglément.

Utilisez --no-retry lorsque l’appelant gère sa propre politique de tentative, et --timeout <seconds> (par défaut 60) pour limiter une requête unique. Les commandes destructives n’attendent jamais indéfiniment une invite interactive : l’utilisation non interactive doit passer l’option --force.

Profils

Utilisez des profils nommés pour séparer les identifiants de différents espaces de travail ou environnements :

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

Variables d’environnement

VariableUsage
AIGLOT_API_KEYClé API ; remplace les identifiants stockés
AIGLOT_PROFILEProfil d’identifiants nommé
AIGLOT_NO_TUIForce une sortie lisible par une machine
AIGLOT_NO_KEYCHAINIgnore le trousseau de clés du système d’exploitation
NO_COLORStandard (no-color.org). Désactive uniquement la couleur ; ne change pas le format de sortie

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.