What to expect
A monitor and a keyboard, not an API.
That is the whole proposition and the whole limitation. It is why the interface reaches machines nothing else reaches, and it is why some things you would expect to be easy are not. Everything below was established on our own bench, and most of it was learned the expensive way.
What it does well.
What it cannot do.
What surprises people
The screen is not a passive canvas.
These are the ones that cost us the most time. They matter to you because they are the difference between a loop that works and a loop that reports success while doing nothing.
What we will tell you.
If the job does not need this, we will say so. An API you already have is cheaper than an interface, and most of the value here is in the cases where no API exists.
If a target turns out to be a bad fit, that comes back as a finding rather than a slower loop. Hardware that re-enumerates, a display that will not hold a mode, a host that cannot own the hardware: all of it is better known in week one.
What we do not experiment with
Serving a hand-built EDID to a machine in use wedged its display output, and it never came back across two reboots, a restore of the known-good blob and a physical replug. There is no undo from the source side, because the sink has to re-read to notice and a wedged sink never re-reads. We parse any candidate blob with an independent tool first, and we only ever serve one to a bench target, never to something you depend on.
How we know it holds
We proved it on a harder target than a business screen.
The most demanding thing we have driven this way is a real-time game: a closed loop against nothing but pixels and a keyboard, with no access to the program's state, finishing levels on the clock. Two of them, on the same day, each after several failed attempts that were worth more than the successes.
A dialog box does not move while you think about it. Almost every failure we catalogued there, a detector fooled by scenery it was told could not fool it, a recovery ladder that could not run from the one state it had never considered, an instrument that answered when it could not see, is the same failure that turns up on ordinary screens, only slower and easier to miss.
What that was and was not
A demonstration on our own bench, not a customer deployment, and the runs used the game's own invulnerability so the loop was being tested rather than the marksmanship. What it establishes is narrow and useful: a control loop that reads only the screen, acts only through a keyboard, recovers from its own mistakes, and keeps going long enough to finish something. That is the part that transfers.
Where it is the wrong tool.
If a documented API exists and you are allowed to use it, use it. It will be faster, cheaper and easier to reason about than any screen, and we will tell you so in the first conversation rather than the last.
The same goes for anything needing data the screen never shows, bulk file movement, or a rate no keyboard could sustain. Those are jobs for a different instrument.
A useful test
Ask what a competent person would do at the machine. If the answer is that they would sit down, look at the screen and type, this fits. If the answer is that they would call an endpoint, it does not, and the honest recommendation is the endpoint.