Live · kitchen voice control

86 IT Say it once. Every screen knows.

A cook says “86 salmon” into a headset. The moment the transcript lands it’s greyed out on the kitchen display, the servers’ screen and the online menu — no ticket printing, no shouting, no tapping a greasy screen.

4screens, one state
10voice tools
<1sspeech → action
0databases

Live board

connecting
86 list —
Tickets 0 open · oldest –
Last words
  1. Waiting for the kitchen…
Kitchen Durable Object fan-out · kds · foh · menu
“86 salmon” COOK
Salmon 86’d on KDS · FOH · menu <1s

The loop 01 → 04

01 / HEAR

Straight from the mic

The headset streams 24 kHz audio from the browser itself — no media server, no phone app.

audio → one WebSocket
02 / UNDERSTAND

It knows the slang

Speech-to-text, LLM and speech on one connection, with keyterms for every dish and call-out.

prompt · 10 tools · keyterms · voice focus
03 / ACT

The tool fires

A strict command grammar acts on the transcript at once; the model confirms and handles fuzzy phrasing.

mark_86 · fire_ticket · flag_allergy
04 / EVERYWHERE

Every screen repaints

Kitchen display, servers’ screen and the online menu all update from the same state.

kds · foh · menu — <1s

What the line says / what happens

“86 salmon”Salmon greys out on the KDS, the servers’ screen and the online menu — same moment
“Fire 12” / “Bump 4”The ticket moves on the kitchen display
“How long on 7?”“Seven: 14 minutes.”
“All day fries”“Three fries all day.”
“Twelve has a nut allergy”A red banner lands on ticket 12
“Void 7” → “yes”Asks first — only then it acts
(kitchen chatter)Nothing. The agent stays silent
(ticket passes 10 min)Speaks up on its own: “Table 4, 12 minutes.”

Four screens, one Durable Object

Measured, not claimed

43/43clips passed in the clean eval; 42/43 under pink noise
12/12chatter lines ignored — zero replies, zero ghost actions
22unit tests over the reducer, fuzzy matching and void safety
100%of sessions recorded by AssemblyAI and replayable