CLI
Un solo binario estático. Los comandos centrales:
synsema run program.syn # ejecutar (sale cuando el programa termina)
synsema test program.syn # correr bloques `test` (un archivo o un directorio)
synsema check program.syn # solo parsear — sin ejecutar (rápido)
synsema serve program.syn # quedarse vivo para HTTP / crons / agentes
synsema repl # REPL interactivo
synsema conform --swarm app.syn # dump de estado post-corrida (blackboard + agentes) en JSON
synsema daemon start app.syn # daemon en background (ver Deploy)
Flags útiles
| Flag | Comando | Efecto |
|---|---|---|
--flat | run | parsear un archivo .fsyn (documento plano) |
--explain | run | reporte rico de error en stderr (contexto, call stack, sugerencias) |
--format json | run --explain | diagnósticos estructurados para tools/agentes |
--provider <name> | run | forzar el proveedor LLM (anthropic/openai/minimax/deepseek) |
--sandbox | run / test | techo del host stdout,time — ejecutar código no confiado (ver Capacidades) |
--cap-set "<lista>" | run / test | techo del host a medida (name o name=scope); mutuamente excluyente con --sandbox |
--env-file <path> / --no-env-file | todos | override / desactivar la carga del .env |
--port / --domain / --tls-auto / --bind / --secure | serve | knobs de deploy (ver Deploy) |
Exit codes
0 al tener éxito; 1 ante un error de parseo, un error de runtime, o si algún agente spawneado terminó en ERROR. El run plano imprime la línea estable Runtime error: file:line:col: msg; agregá --explain para el reporte rico. (Para medir exit codes en una shell, no pipees antes de echo $? — redirigí.)