AI Glot websiteOpen AI Glot
CLIAutomatización y salida de la CLI

Automatización y salida de la CLI

Ejecuta la CLI de AI Glot de forma segura en scripts y CI mediante JSON o NDJSON, credenciales de entorno, perfiles, códigos de salida y reintentos limitados.

La CLI muestra tablas legibles en el terminal y JSON cuando la salida se canaliza, por lo que el mismo comando funciona tanto de forma interactiva como en procesos automatizados.

Terminal
aiglot batches list                    # table on a terminal
aiglot batches list | jq '.data[0].id' # JSON when piped
aiglot batches list --output ndjson    # one object per line
aiglot account --json                  # explicit JSON

Los errores y los avisos que el usuario necesita conocer, como una página de resultados truncada, se envían a la salida de error estándar. Así, la salida estándar se puede canalizar a otro programa sin problemas.

Esperar a que termine una traducción

Prepara primero el plan y revisa su alcance, las exclusiones y el coste calculado. La CLI devuelve los objetos individuales directamente: consulta .id, .status y .plan, no .data.id ni .data.status. Los comandos de listado siguen usando una matriz data.

Terminal
set -euo pipefail

batch=$(aiglot batches create catalogue.csv --instruction "Translate into French" --json)
id=$(printf '%s' "$batch" | jq -er '.id')
printf '%s\n' "$batch" | jq '.plan'

Ejecuta el siguiente bloque solo después de autorizar el plan, la calidad Standard seleccionada y el coste calculado. La autorización existente es suficiente si los cubre. La espera está limitada a 60 consultas y termina cuando el estado es completed, failed o cancelled. Si el proceso se interrumpe o agota el tiempo, conserva el ID del lote y reanúdalo sin crear otra traducción.

Terminal
aiglot batches approve "$id" --quality standard --json

for ((attempt = 0; attempt < 60; attempt++)); do
  status=$(aiglot batches get "$id" --timeout 15 --json | jq -er '.status')
  case "$status" in
    completed)
      aiglot batches download "$id" --output result.csv
      break
      ;;
    failed|cancelled)
      printf 'Batch %s ended with status %s.\n' "$id" "$status" >&2
      exit 1
      ;;
    awaiting_instructions|awaiting_approval)
      printf 'Batch %s needs a decision; inspect its plan before continuing.\n' "$id" >&2
      exit 2
      ;;
  esac
  if ((attempt == 59)); then
    printf 'Wait limit reached. Resume batch %s; do not create a duplicate.\n' "$id" >&2
    exit 1
  fi
  sleep 5
done

Estos son todos los estados que puede mostrar una traducción, incluidos los tres que la finalizan. Todos responden a la misma pregunta: ¿quién está esperando y a qué?

EstadoSignificadoQuién esperaTerminal
analyzingse está leyendo la estructura del archivonosotros, unos segundos
awaiting_instructionsel archivo ya se ha leído, pero aún no se ha solicitado nadatú
awaiting_approvalel plan está listo y tiene un preciotú
translatingen curso; es el único estado que consume créditosnosotros
completedfinalizado; hay un archivo de resultados disponiblenadie✓
failedfinalizado sin resultados; consulta error.codetú, para volver a intentarlo✓
cancelleddetenido deliberadamente; solo se cobra el trabajo realizadonadie✓

Paginación

batches list y glossaries list usan cursores. Pasa sin modificar a --cursor el next_cursor de la respuesta anterior o deja que --all lo siga automáticamente hasta que has_more sea false (con un límite de 200 páginas como medida de seguridad):

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

Con --output ndjson, --all muestra cada fila de cada página a medida que llega. En los modos table y json, muestra un único resultado combinado con has_more: false, next_cursor: null y un recuento pages_fetched en lugar de request_id, ya que no se puede asignar una sola petición cuando se han ejecutado varias.

Autenticación en CI

Crea una clave de API exclusiva con los permisos mínimos necesarios y guárdala en el gestor de secretos de tu proveedor de CI:

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

La CLI busca las credenciales en este orden: AIGLOT_API_KEY, el llavero del sistema operativo y, por último, su archivo de configuración protegido.

Códigos de salida

CódigoSignificado
0Éxito
1Error de API o del servidor
2Comando o argumentos no válidos
3Error de autenticación o permisos
4Recurso no encontrado
5Límite de solicitudes alcanzado
6Conflicto con el estado del recurso

Los scripts deben basarse en el código de salida o en error.code estructurado, no en el texto del mensaje de error.

Reintentos

Los reintentos son automáticos, pero solo cuando son seguros. Los errores 429 se reintentan con todos los comandos, respetando Retry-After y aplicando una espera progresiva limitada. Los errores 408 y 5xx solo se reintentan en solicitudes idempotentes (RFC 9110 §9.2.2): lecturas, glossaries replace y glossaries delete.

glossaries create, glossaries add, glossaries remove, batches rename y batches archive no se reintentan tras un error 5xx, porque es posible que la escritura ya se haya aplicado y un segundo intento la aplicaría dos veces. Estos errores se devuelven al script con el código de salida 1: vuelve a leer el recurso y decide si quieres intentarlo de nuevo, en lugar de reintentarlo a ciegas.

Usa --no-retry cuando el control de los reintentos corresponda a quien realiza la llamada y --timeout <seconds> (60 de forma predeterminada) para establecer el tiempo máximo de una solicitud. Los comandos destructivos nunca esperan indefinidamente a que se responda a una solicitud interactiva: en un entorno no interactivo, debes pasar --force.

Perfiles

Usa perfiles con nombre para mantener separadas las credenciales de distintos espacios de trabajo o entornos:

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

Variables de entorno

VariableFunción
AIGLOT_API_KEYClave de API; prevalece sobre las credenciales almacenadas
AIGLOT_PROFILEPerfil de credenciales con nombre
AIGLOT_NO_TUIFuerza el uso de un formato legible por máquina
AIGLOT_NO_KEYCHAINOmite el llavero del sistema operativo
NO_COLOREstándar (no-color.org). Desactiva solo los colores; no cambia el formato de salida

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.