Point it at a window. glance reads what is on the screen the way a person does — from the application's own accessibility tree when there is one, from pixels when that is all there is — and turns every change into one line of text with a time on it. It never types, never clicks, never sends a byte anywhere.
On a transplant floor the donor record is a cloud application the OPO does not control and cannot integrate with, often reached through Citrix or RDP where the workstation sees only pixels. Every tool that wants to help a coordinator has to read what the coordinator reads.
On a developer's machine the same is true of every native window an agent cannot see: the build panel, the console, the dialog that is blocking. glance is the honest way to read either — the accessibility tree first, because it is text with names on it; pixels second, only where they changed, with the operating system's own OCR.
| no hands | No SendInput, no clicks, no keys, no SetForegroundWindow. The build greps the import table and fails if any of them appears. |
| no network | The exe links neither Winsock nor WinHTTP nor WinINet. glance --about prints the receipt, read from its own import table. |
| no frames | Captured pixels live in memory for one hash and one OCR call and are zeroed. Nothing is ever written to disk but text. |
| no model | A rules file you own turns a label into an event. There is no model in the tool and none is needed. |
| no verdict | glance reports what changed on a screen. The coordinator, the clock and the resident decide. |
A window that does not change produces nothing: no line, no OCR, no CPU. That residual is the whole trick, and it is what makes glance livable on a machine that is already busy.
UI Automation, the same interface a screen reader uses. glance walks the window once for every control with a name and a value, then watches for property and structure events. Changes arrive as events, not polling, so an idle window costs nothing at all.
Chromium and Electron expose their DOM this way once a client asks; WPF, WinUI and most Win32 controls expose names and values natively. Median 18 ms from a value changing to a line, and 32 ms at worst on a fully loaded machine.
Where the tree is empty — Citrix, RDP, a canvas, a custom-drawn grid — glance duplicates the desktop, cuts the window into tiles, keeps a difference hash of each, and runs the OS's OCR only on the bands that moved.
A change is read twice before it becomes a line, so a window caught mid-repaint never prints half-drawn text. Recognition runs on its own worker, so a slow read never blocks the next frame. Median 44–183 ms.
Asked to read a live Remote Desktop window, glance finds this in the accessibility tree:
Every value on the far side lives inside one painter window. That is exactly the case pixels exist for, and it is why the second reader is not optional.
A line becomes a fact by rule, not by model. A file you own maps a label on the screen to an event name and a time parser; glance emits whole minutes from a reference both tools agree on, and the fact carries the screen path as its citation.
Piped into caseclock, an evening reads like the transcript beside this. Three times fill in while the clock counts a deadline nobody entered and nothing on the screen mentions. Then the serology is drawn at 23:50, and the plan is short by 95 minutes: the morning OR window is gone, and the tool says by how much and which constraints cannot all hold.
Not one character of it was typed by a person. Every value is synthetic.
An i9-9900K with an RTX 4070 Ti SUPER at 225 % DPI, with the machine's own model stack resident. No number appears on this page that was not measured on that machine; where a target was missed, it says so.
An agent beside a coordinator cannot see the record. An agent beside a developer cannot see the dialog that is blocking the build. glance hands both the window as text — and after the first read, only what changed.
Every surface reads one change stream, so a human and an agent get the same answer: the line on the strip, --json, --spool, --facts, and a read-only MCP server with five verbs. None of them can click anything, because the binary has nothing to click with.
Windows 10 1809 or later, x64. The binary is unsigned, so Windows will warn on first run; the source builds with one batch file and Visual Studio 2022 if you would rather compile it yourself.