navigator.modelContext · LanguageModel · no server
A site with two audiences.
One of them has no eyes. Websites are starting to receive visitors that never look at a page — they ask it what it can do and call the answer directly. This one is built for both at once, and shows you both layers while you use it. The model that operates it is running on your machine, not ours. Disconnect your network and it keeps thinking.
You are looking at the human surface.
Cabinet: lamp at 38 of 100, mainspring tension 72 of 100, 0 of 3 doors open.
Three doors, as von Kempelen built it. Open them with the controls, or ask an agent to — left door is still shut.
Controls
Each of these calls a tool. So does an agent. The manifest records both the same way.
Tension decays on its own. The gears stop when it reaches zero because a spring at rest is not a slow spring.
The manifest
Everything this page can do, declared once. The controls on the left are built from this list; so is what an agent sees. There is no second copy that could drift.
navigator.modelContext · not in this browser
navigator.modelContext is not in this browser. WebMCP is in origin trial from Chrome 149 to 156, so this is the ordinary case today rather than a fault. The tools below are real and callable — an agent simply cannot reach them here.
/tools.json — the same list, served to any agent, crawler or person who asks
open_panelOpen a door1
Open one of the cabinet's three doors, or all of them at once, revealing the mechanism behind it. Von Kempelen opened the doors of the original Turk before every performance to show the audience there was no person inside. There was.
- panelstring · required
- Which door to open.left | centre | right | all
close_panelClose a door1
Close one of the cabinet's three doors, or all of them.
- panelstring · required
- Which door to close.left | centre | right | all
set_lampSet the lamp1
Set the brightness of the lamp lighting the cabinet, from 0 (dark) to 100 (full). This changes how much of the mechanism is visible.
- levelnumber · required
- Brightness from 0 to 100.0–100
wind_mechanismWind the mainspring1
Wind the mainspring. Tension drives the speed of the mechanism and decays on its own over roughly a minute, so it must be wound again to keep the machine moving.
- turnsnumber · required
- Number of turns, 1 to 10. Each turn adds about 8 tension.1–10
read_cabinetRead the state0
Report the current state of the cabinet: lamp level, mainspring tension, and which doors stand open. Call this first if you need to know what you are looking at — you cannot see the page.
no arguments
ask_automatonAsk the automaton1
Put a question to the automaton. It answers using a language model running entirely on this machine — nothing is transmitted anywhere. Requires Chrome 148 or later; on other browsers this tool reports itself unavailable rather than pretending.
- questionstring · required
- The question to put to the automaton.
Call log0
Nothing has been called yet. Operate a control, or ask the automaton to operate one for you, and both routes will appear here marked with who made the call.
The man in the box
In 1770 Wolfgang von Kempelen presented a chess-playing machine to the Habsburg court. It toured for decades and beat most people who sat down against it, including — by long tradition, though the record is thin — Napoleon. Before each game the operator opened the cabinet doors in sequence to show there was nobody inside.
There was somebody inside. A chess player on a sliding seat, moving from compartment to compartment as each door swung open. The machine was a costume worn by a person.
Every demonstration of a thinking machine since has invited the same suspicion, and usually deserved it — there is nearly always a server somewhere doing the work, and a bill arriving for it. The cabinet above is the version where you get to check.
What changed
Two things, both recent, and neither much discussed outside the browser teams that shipped them.
The model moved onto your machine. Chrome’s Prompt API reached stable in Chrome 148. The model it runs is already on most desktops — it arrived quietly, and there is no key, no request, and no per-token cost. This page cannot see what you ask it.
Pages started declaring what they can do. WebMCP lets a site hand an agent a typed list of its own capabilities instead of making it guess from the markup. It is in origin trial now. When it lands properly, the shape of a website changes: half your visitors stop reading and start calling.