Cua's 2.8 MB open model fills forms without an LLM call
Most of what an agent does is not reasoning — it is deciding that this value goes in that box. Cua just published the weights for that decision, and they are smaller than the PDF being filled in.
Cua open-sourced CUA-S1-FORMS on Friday: a 706,048-parameter model that scores form-filling decisions in one forward pass, generates no text, and ships as a 2.8 MB checkpoint. It is the first release in what the company calls the CUA-S1 family of "System One" models — fast, bounded decisions — and it sits behind Cua Driver, the open driver the company already sells into agent stacks, which turns the model's chosen option into an actual click or field entry. The pitch is deliberately narrow. Given structured elements and the labeled values a document extractor already pulled out, the model picks one of fill, check, click or skip per element, all elements scored together in a single batch, with the application code — not the model — deciding execution order and refusing to touch a checkbox whose state it cannot read.
The engineering is small on purpose: byte-level embeddings, a two-layer transformer encoder 128 wide with four attention heads, trained for six epochs on 10,000 synthetic episodes built from 55 field concepts, with look-alike confuser pairs such as email versus street address and phone versus emergency contact phone forced into the mix. Training the first iteration took under 30 minutes. Cua reports 99.95% top-1 accuracy on a form-disjoint synthetic test of roughly 15,000 decisions and 100% on a 196-decision evaluation over three real forms and three real PDFs, against 37% when the context is shuffled — the control that shows the model reads the element and not the statistics of the option list.
The head-to-head against TypeSafe's hosted Jev API is the part people will quote, and it needs its caveats attached. On Cua's own form task, the specialist scored 99.7% correct across the full decision set against 83.6% for hosted Jev with no fine-tuning; 100% versus 96% on steps that require an action; and 100% versus 74% on the quiet steps — recognizing an already-filled field and leaving it alone, a convention Cua trained for and Jev was not. Cua also measured 7–9 milliseconds to score a form locally against 260–280 milliseconds per hosted call including network latency, and says plainly that those two numbers measure different things and are not end-to-end completion times. We covered the framing when TypeSafe shipped it in September — TypeSafe exits stealth with $40M for models that don't chat — and this is the first time that framing arrives as a downloadable checkpoint you can run on a laptop.
The release includes the synthetic data generator, training and evaluation code, and the driver integration under an MIT license, with weights hosted separately on Hugging Face. The checkpoint format is a safetensors file plus a JSON sidecar carrying a SHA-256 signature over the tensors, and the loader rejects pickled checkpoints by design — arbitrary pickle in a public model file is a code-execution path, and Cua is one of the few shops that has said so out loud.
The limits are documented rather than marketed. The model card states that the checkpoint has not been validated beyond the demo set, that the label vocabulary is English-centric, and that the model can only choose among values an upstream extractor already found — it cannot infer or compose a missing value, which removes the failure mode of inventing one but also caps what it can do on a badly parsed document. Expected failures include window-title changes and concepts that look alike, such as state versus an organization name. Deployment guidance asks for isolated environments, least-privilege credentials, and a human confirmation gate before anything consequential or irreversible.
What to watch: whether the family extends past forms to the other recurring micro-decisions in an agent loop, and whether anyone outside Cua reproduces the numbers — a 196-decision real evaluation is a demo, not a benchmark.
If a specialist model can handle the boring decisions for a fraction of a millisecond, what is left for the general agent to actually be good at? Tell us in the comments.
Sources: Cua — CUA-S1 source and training code (GitHub) · CUA-S1-FORMS model card (Hugging Face) · Hacker News — Show HN: CUA-S1 · RuntimeWire