Saltar al contenido
Lyncat Tria

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.

En un script nadie puede contestar preguntas. Un comando que tendría que preguntar algo sale con un error, salvo que le digas qué hacer con una opción.

Sin preguntas

ComandoPara 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:

bash
tria sort --dry-run > propuestas.txttria sort --dry-run --json > propuestas.json

Con --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

json
{  "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  }}
CampoQué es
itemsCada documento de la bandeja: file, status (proposal, duplicate o pending), destination, confidence (high, medium o low), reason y, si la hay, doubt.
appliedLo que se ha movido, de from a to.
failedLo que no se ha podido mover, con el motivo.
model, usage, costEl modelo, los tokens y el coste aproximado en USD.
interruptedSolo 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ódigoCuándo
0Todo bien. En tria sort, no queda nada pendiente; con --dry-run, siempre que no haya error.
1tria sort deja documentos en la bandeja; tria rules ask no hace el cambio; tria eval --baseline acierta menos.
2Ha habido un error.
130Interrumpido con Ctrl-C.
bash
tria sort --auto --json > hoy.jsonif [ $? -eq 1 ]; then echo "Quedan documentos en la bandeja"; fi

Variables de entorno

VariableEfecto
ANTHROPIC_API_KEY, OPENAI_API_KEYLa clave, en lugar de la del Llavero.
NO_COLORSin colores ni animaciones, con cualquier valor no vacío.
CLICOLOR_FORCE=1Colores aunque la salida no sea un terminal. NO_COLOR manda.
TERM=dumbTexto plano, sin animaciones ni pantalla completa.
TRIA_LANGEl idioma de los mensajes y de la ayuda: ca, es o en.
XDG_CONFIG_HOMEDó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.