Every IT helpdesk knows this call. "What does the screen say?" "It went black. There's some tiny writing at the bottom." The machine won't boot, so the monitoring agent on it can't report anything, and the first hour of the ticket goes on questions.
For the last ten days of October that call was my whole world. Meta and Cerebral Valley ran the Meta Global AI Developer Hackathon, remote and worldwide, with a million dollars in prizes and early access to Meta's newest models. I entered the startup track as a team of one, with Wegweiser behind me and an idea I'd have to throw away on day two.
The idea that didn't survive day two
I applied with a site survey: walk a client's office with a phone, photograph the comms cabinet and the workstations, and let the models fill in the inventory. On the first day Muse Code, Meta's coding agent, built a first version of it inside DocuVault.
On the second day I described it to a friend who spent years running support for one of the big RMM vendors. His verdict took four words: Just not that interesting. Serial numbers and warranty dates can already be read from the machine itself, data centres arrive audited, and you can't trace a cable from a photo.
He was right, and it stung for about an hour. Then a better question turned up: what can't the agent see?
A machine that won't boot can't report. A power light blinking a code, a stop code in small print on a black screen, the sticker on the back of the case: it all sits in front of the customer, and none of it reaches the technician without a phone call.
By that afternoon the idea had a name. Eyewitness is a step in front of the helpdesk that reads each new ticket, works out what a technician will need, and asks the customer's phone for it.
What it does
A ticket arrives by email, through the portal or from the help button Wegweiser puts on managed machines. Muse Spark reads it against a checklist of what a technician needs. When something is missing that only a person at the machine can see, Eyewitness holds the ticket and sends the customer a link with a short list of steps: photograph the screen, film the power light for ten seconds, or tell us what happened in a voice note.
On the phone, every capture is checked twice, in the browser and again on the server, before any model sees it. A blurred photo gets a precise retake instruction straight away.
Then the readers go to work. Spark reads the stop code off the black Windows 11 crash screen, including the bottom line that every photo seems to lose. SAM 3.1 follows the blinking light through the clip, and a few lines of code count the flashes: two amber and three white means "memory not detected" on a Dell. Voice Transcribe takes a voice note in any of 25 languages.
The findings go on the ticket as an internal note, and Wegweiser's triage takes it from there. Everything the customer sends is treated as untrusted. No model writes a word the customer reads, and when a test photo of a sticky note asked for the admin password, Eyewitness flagged it and carried on treating it as text in a photo.
Two agents and a brief
I wrote very little of the code. What I did was decide.
The build ran as a relay. Claude Code, which carries the memory of every project I run through the memory palace, turned each decision into a written brief. Muse Code took the brief and built the phase on its own, headless, on Muse Wonder at maximum effort, so any question it had went unanswered.
Claude then read what it had written, fixed what it found, deployed it to a staging server and ran it against real tickets in a real Zammad. Seven phases went through that relay on 28 and 29 October, and the entry was submitted on day four.
The reviews mattered more than I expected. In the last phase Muse Code built beep recordings: hold the phone near a PC that won't start and record the beeps it makes. Its tests passed.
Then Claude played it the voice note from our own demo film, a woman describing her problem in German, and it counted thirteen short beeps. A vowel, it turns out, can be as pure as a tone for a tenth of a second.
A beep now has to hold one pitch and one level for at least 0.15 seconds, at the same pitch as the rest of its pattern, and every voice note, the film's music and a fan's whirr now read as no beeps at all.
My part was taste. When the first demo film came back jittery, with the phone squeezed into half the frame, I said so, and Claude rebuilt it from scratch in Remotion with a steady camera.
When I watched printer panels and router lights being read, I asked why each new task needed a code release. They're instructions to a model and a few fields to fill. That became the last phase: every task a customer can be given is now a small file a technician writes, and a new task is a new file and a restart.
The model looks, and code counts
The rule that held it together came from SAM. Meta's segmentation model follows a small light through a video well, from a point that code picks out for it. Given only a description, it didn't find the same small light reliably from one run to the next.
So the split became the design. SAM finds the light in each frame, a function counts the flashes, and a table maps the pattern to its meaning. No language model is asked to count anything, and the beep counter needs no model at all.
27.9 billion parameters on an 8 GB card
Some of my clients can't let a customer's photo leave their own network. Meta's open-weights Muse Glimmer offered a way: run every read on the support company's own hardware, behind any OpenAI-compatible server.
I joked that Glimmer was for people who can afford this year's GPU prices, and then we ran it on the desktop next to me anyway. The 8 GB RTX 3050 did a quarter of the work and the Ryzen did the rest. It read the stop code off the crash screen in a little over a minute, at no cost, and a tenant set to its own hardware sends nothing to the cloud, even when the local server is down.
For some clients, slow and private is the right trade.
Brenda, at 08:57
The demo film has a cast of two: Brenda at the front desk, whose computer has gone black, and a technician with a very large coffee. Muse Image drew them at a cent a panel, an ElevenLabs voice tells the story, and every shot of the product comes from one run on the staging server. I liked the drawings so much that Wegweiser is getting a set of its own, in the same style.
What's left
The code is public. 166 tests run without a database or a paid call, and nine end-to-end scenarios pass on staging, from a ticket by email to a sticky note that tries to talk to the AI. A whole ticket costs four to six cents of Meta's API.
Judging runs until 8 November, and the five best entries in each track meet in a live final on the 9th.
Whatever the judges decide, Eyewitness is coming to Wegweiser, and I had a great time building it.