SCUA

News

One-shot tools for AI agents

July 20, 2026

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.