VERSION 010
The fastest way to give ANY model eyes.
Videos. Web pages. Pictures. Voice. One product, fully local, no API keys — and your model has already seen the media by the time you ask about it.
The film — 2:42
Ver esta página en español → See the repo →
Right now, when your model needs to see something, you do the work for it. You screenshot it. You describe it. You paste it in and hope you did not leave out the one detail that mattered. You are the eyes, and you are the bottleneck.
EYES28 ends that. Your model sees the video, the page, the picture, the screen - by itself, in about a second, and it has already looked before you finish asking.
| without EYES28 | with EYES28 | |
|---|---|---|
| a 19-second video | you watch it and summarise | already seen |
| a web page | copy, paste, lose the layout | read whole, ~1.1s |
| what is on screen | screenshot and describe it | read directly |
| a blurry recording | squint and guess | read anyway |
Nothing leaves your machine. No API keys, no accounts, no telemetry, no monthly bill to something that reads your screen. It works with the internet unplugged, and it will still work the day a provider changes their pricing or their policies.
It fits what you already own. Any model that can run a command - large or small, cloud or local. You are not switching to anything. You are giving the setup you already built a sense it never had.
The source stays private while every licence funds the next build. Which is the honest reason to get in early rather than late.
Clean, sharp text is a solved problem, and we will not pretend otherwise: there we tie. The difference shows up on the material people actually have - a screen recording, a compressed clip, a photo of a monitor.
| the source | read plainly | read with EYES28 |
|---|---|---|
| normal text | 98.4% | 98.4% |
| small print | 96.1% | 96.1% |
| blurry recording | 22.7% | 75.4% |
More than three times more readable on damaged sources - the case where everything else gives up and hands you a shrug. Same machine, same images, scored against text known to be correct. The harness ships with the product, so you can re-run every number here yourself.
And on the small print specifically - status bars, log tails, dense dashboards, the places numbers hide - v010 reads 9-pixel text at 91.0% where the previous version managed 47.2%.
Until now a picture reached your model as a picture, which only helps if your model can see. v010 hands over the words — so a small text-only model, with no vision at all, can use a computer.
eyes28 read shot.png the words in a picture
eyes28 read --screen the words on your screen right now
eyes28 read --window "Sales" the words in a window, even when it is covered
Anything that already passed EYES28 a picture now gets the text alongside it, with nothing to change at your end.
It reads the small print: status bars, log tails, dense dashboards. The text too small to read straight off the screen is exactly where the numbers hide.
| text size | before | v010 |
|---|---|---|
| 9 px | 47.2% | 91.0% |
| 11 px | 94.0% | 94.4% |
| across 9–22 px | 86.4% | 94.8% |
2.04× faster while doing it. Measured on the same machine, same work, both versions running alternately in one process, median of several runs, with accuracy scored at the same time — never one number remembered from one run and compared against another.
Nothing the previous version read is lost: every line it found is checked against the new reading, one line at a time, on live screens. It adds, it does not remove. Identical input always gives identical output. Existing licences keep working.
Each one measured the same way, kept here so every claim can still be checked.
v006 read screens far more accurately but took longer doing it. v007 keeps every bit of that accuracy and gives the speed back — and a screen that has not changed is answered instantly.
| v006 | v007 | |
|---|---|---|
| one read | 1.18 s | 0.46 s |
| the same screen again | 1.18 s | instant |
| accuracy | 83.3% | 83.3% — unchanged |
Two real faults were found and fixed on the way: a screen with no text on it now answers plainly instead of failing, and two screens read at the same time can no longer affect each other. The test suite that found them ships with the product.
Claude and Claude Code — EYES28 is used through it every day, including to build EYES28 itself. Cursor. And seven local models across six families — Llama, Qwen, Phi, Gemma, Hermes and Qwen Coder — every one measured on this machine, including a one-billion-parameter model that cannot see pictures at all.
Those are tested results, not a compatibility list. And because EYES28 hands your model plain text from a plain command, anything that can run a command and read works — there is no SDK to install and nothing to keep in sync when your tools change.
Small interface text is where every reader struggles, and it is most of what is on a screen. v006 gets it right far more often, tells you how confident it is, and can keep a label next to its value instead of flattening a dashboard into a list.
| v005 | v006 | |
|---|---|---|
| lines read perfectly | 68.8% | 83.3% |
| figures read correctly | 75.0% | 87.5% |
Measured on generated text where the correct answer is known in advance,
at four sizes from 11px up. The harness ships with the product, so every number here can
be reproduced.
Existing licences keep working, and owners are emailed
automatically when a new version ships.
Giving a model eyes used to mean a heavyweight download and a graphics card. Now it needs neither, and it works with the small fast models too. Verified against seven of them.
Kept running alongside your assistant, EYES28 now answers in about a millisecond instead of about two seconds. Same commands, same answers — it simply does not have to start over every time it is asked something.
| before | v004 | |
|---|---|---|
| one look | 1,954 ms | 1.3 ms |
| four looks in one answer | 7.8 seconds | 0.01 seconds |
over 1,500× faster
Measured on the same machine, same work, stopwatch on both. It still sees
more of your screen than anything else can, and still never interrupts what you are doing.
Existing licences keep working, and owners are emailed automatically when a
new version ships.
| typical agent flow | EYES28 | |
|---|---|---|
| when you ask | extracts and transcribes while you wait | reads results already on disk |
| time at the ask | ~4 seconds | 0.012 seconds |
~300× faster at the ask
Same 19-second video, same machine, stopwatch on both. Page rendering, measured separately on the same pages: 1.10 s per page in batch — 3.6× faster than a parallel renderer running four browsers at once, while capturing 63% more of each page. Every number is reproducible; the method and the harness ship with the product.
Most tools that let a model see require a model that can look at pictures. That rules out nearly every fast local model. EYES28 does not. If it can read, it can see — so the fast little model you actually run all day works just as well as the big one.
Tested here against Llama, Qwen, Phi, Gemma, Hermes and Qwen Coder, plus Claude Code and Cursor. Those are measured results, not a compatibility promise — and because it hands your model plain text from a plain command, there is no SDK to install and nothing to keep in sync.
Works with Claude Code, Cursor, and any model that can run a command. Runs fast on an ordinary laptop. Nothing leaves your machine — no keys, no telemetry.
After you buy: run EYES28 once — it prints a short machine code. Email it to djbrightfutures@gmail.com and your key comes back locked to your machine, usually within minutes. One license = one model on one machine.
Platform: Windows, macOS and Linux — all three ship today, in the same download. One file each, nothing to install but ffmpeg.