Scripts y --json
tria se porta bien fuera de la terminal: sin colores ni animaciones cuando nadie mira, con JSON para leerlo desde otro programa y con códigos de salida que dicen qué ha pasado.
Sin preguntas
| Comando | Para que no pregunte |
|---|---|
tria sort | --auto aplica lo claro; --dry-run y --json, solos, no mueven nada. |
tria init | --template con su plantilla; con --learn, añade -y. |
tria rules ask | -y aplica el cambio sin preguntar. |
tria rules learn y tria eval | -y acepta el coste sin preguntar. |
Sin ellas, tria dice «Sin terminal interactiva: usa --yes, --auto, --dry-run o --json según el comando.» y sale con 2. Con tria init --template sin terminal, el perfil se crea sin rellenar.
Salida limpia
Si la salida no es un terminal, tria escribe texto plano. La animación de espera va a la salida de errores, así que lo que guardas en un fichero sale limpio:
tria sort --dry-run > propuestas.txttria sort --dry-run --json > propuestas.jsonCon --json --show-prompt, lo que se envía a la IA va a la salida de errores y la estándar sigue siendo solo JSON.
El JSON de tria sort
{ "applied": [ { "from": "99-Pendiente/Scan_20261011_0012.pdf", "to": "2-Facturas Recibidas/2026/4T/Factura Papeleria Mar - 2026-10-11.pdf" } ], "cost": 0.00936, "failed": [], "items": [ { "confidence": "high", "destination": "2-Facturas Recibidas/2026/4T/Factura Papeleria Mar - 2026-10-11.pdf", "file": "99-Pendiente/Scan_20261011_0012.pdf", "reason": "Factura de Papelería Mar del 11 de octubre de 2026.", "status": "proposal" } ], "model": "claude-sonnet-5-5", "usage": { "cacheReadTokens": 5800, "cacheWriteTokens": 0, "inputTokens": 2100, "outputTokens": 400 }}| Campo | Qué es |
|---|---|
items | Cada documento de la bandeja: file, status (proposal, duplicate o pending), destination, confidence (high, medium o low), reason y, si la hay, doubt. |
applied | Lo que se ha movido, de from a to. |
failed | Lo que no se ha podido mover, con el motivo. |
model, usage, cost | El modelo, los tokens y el coste aproximado en USD. |
interrupted | Solo si el lote se ha cortado a medias, con el motivo. |
Los campos sin valor no salen. tria eval --json escribe el informe de la evaluación con la misma idea.
Códigos de salida
| Código | Cuándo |
|---|---|
0 | Todo bien. En tria sort, no queda nada pendiente; con --dry-run, siempre que no haya error. |
1 | tria sort deja documentos en la bandeja; tria rules ask no hace el cambio; tria eval --baseline acierta menos. |
2 | Ha habido un error. |
130 | Interrumpido con Ctrl-C. |
tria sort --auto --json > hoy.jsonif [ $? -eq 1 ]; then echo "Quedan documentos en la bandeja"; fiVariables de entorno
| Variable | Efecto |
|---|---|
ANTHROPIC_API_KEY, OPENAI_API_KEY | La clave, en lugar de la del Llavero. |
NO_COLOR | Sin colores ni animaciones, con cualquier valor no vacío. |
CLICOLOR_FORCE=1 | Colores aunque la salida no sea un terminal. NO_COLOR manda. |
TERM=dumb | Texto plano, sin animaciones ni pantalla completa. |
TRIA_LANG | El idioma de los mensajes y de la ayuda: ca, es o en. |
XDG_CONFIG_HOME | Dónde buscar tria/config.toml. |
Un espacio solo lo ordena un proceso a la vez. Si la app u otro tria lo está ordenando, tria sort sale con 2 y lo dice: vuelve a probar cuando termine.