A growing amount of SCUA's design attention goes to a specific shape of program: the one-shot tool an AI agent calls. Read arguments, do one job, print one answer, exit. 0.13.0 shipped the contract for it.
sys.parse_args reads typed arguments from CLI flags or a
JSON body on stdin, validated against a record you declare.
sys.emit(value) prints exactly one JSON result on stdout
and claims the channel, so diagnostics cannot corrupt the payload;
sys.fail(msg) does the same for errors on stderr with a
chosen exit status. The agent side gets a machine-checkable interface:
scua schema emits the JSON Schema for the same record your
tool validates with, so the model calling your tool and the tool itself
share one definition. And scua pack renders a compact
language summary you can paste into a system prompt to teach a model
SCUA itself.
The search tools got the same treatment. fs.grep can
return structured matches, counts, or just paths, so an agent can ask
for the cheapest answer that settles its question instead of paying
tokens for output it will throw away. fs.grep_text renders
the classic path:line: text form in one string when that is
what the context window wants.
Sandboxing is what makes this more than convenience. The tool an agent runs holds exactly the capabilities you granted and nothing else, so "let the model write the tool" stops being a trust decision about the model.