Een open standaard voor transparante agent–app-besturing
App Use is met opzet portabel. Er is geen aanname over welke agent, welk framework of welke leverancier zich aan de andere kant bevindt. Elke agent die het Model Context Protocol (MCP) spreekt kan elke applicatie die een App Use-surface blootstelt beschrijven, lezen en aansturen. We publiceren het protocol openlijk zodat de hele industrie het kan adopteren.
Vier lagen, één verbinding
Elke laag heeft één taak. Samen laten ze een agent elke deelnemende app beschrijven en aansturen — zonder maatwerkintegratie per app.
AppSpec
Een declaratief document dat de app publiceert: haar schermen, de aanstuurbare elementen op elk (tekstvakken, knoppen, lijsten), benoemde meerstaps-flows, events, en de actiecatalogus. Elk element draagt een doel, validatie, ondersteunde acties en of het geheim is.
MCP-transport
De app host de standaard app.*-tools over een loopback-SSE-MCP-server met een bearer-token per instance. Beschrijven, een scherm lezen, een waarde ophalen of instellen, een actie aanroepen, navigeren — alles over één verbinding.
Hub-bemiddeling
Een hub bundelt vele draaiende apps in één MCP-surface: apps.list, apps.launch, apps.stop, en app.call om een tool naar de juiste instance te routeren. Eén agentverbinding stuurt elke app aan.
Federatie (optioneel)
Vele hubs over apparaten heen vormen één cluster. Een agent die met een willekeurige hub is verbonden kan transparant apps op elke andere aansturen — via wederzijds geauthenticeerd TLS op het LAN, of een end-to-end-versleutelde relay over het internet.
Een kleine, voorspelbare toolset
Elke App Use-app beantwoordt hetzelfde vocabulaire, zodat een agent het één keer leert en alles aanstuurt. Elke tool draagt een risiconiveau; schrijf- en uitvoer-tools lopen via de toestemmingspoort.
| Tool | Wat het doet | Risico |
|---|---|---|
app.describe | Geef de AppSpec terug | lezen |
app.read_screen | Maak een momentopname van de huidige schermstatus | lezen |
app.get_value | Lees de waarde van één element | lezen |
app.set_value | Stel de waarde van een element in | schrijven |
app.invoke | Activeer een knop / actie | uitvoeren |
app.navigate | Ga naar een ander scherm | schrijven |
apps.list / app.call | Hub: opsommen + routeren naar een instance | bemiddelen |
Veilig vanuit de constructie
Capability-scopes
Elk token draagt een van drie scopes — ReadOnly, ReadWrite, of Admin — en elke tool wordt gepoort door de minimale scope die deze nodig heeft. Een alleen-lezen agent kan fysiek geen actie aanroepen.
Toestemming met mens in de lus
Voordat een schrijf- of uitvoer-tool draait, kan een in-process toestemmingspoort pauzeren voor een menselijke beslissing: Eenmalig toestaan, Voor de sessie toestaan, of Blokkeren. De operator ziet precies welke actie in behandeling is.
Manipulatiebestendige audit
Elke aanroep wordt toegevoegd aan een duurzaam, HMAC-hash-geketend logboek. Het bewerken of verwijderen van een eerdere vermelding breekt de keten bij de volgende verificatie — zodat de registratie van wat een agent deed betrouwbaar is.
Redactie van geheimen
Elementen die als geheim zijn gemarkeerd worden overal geredigeerd — bij reads, snapshots, de live feed en het auditlogboek — zodat wachtwoorden en sleutels nooit via de surface lekken.
Versleuteld over apparaten heen
Hub-naar-hub-verkeer op een LAN loopt over wederzijds geauthenticeerd TLS, vastgepind op een privé cluster-CA. Over het internet versleutelt een Noise-IK-handshake elk frame end-to-end — zelfs de relay ziet alleen ondoorzichtige bytes.
Snelle intrekking
Ondertekende, monotone intrekkingslijsten verspreiden zich binnen ongeveer 60 seconden over een cluster, zodat een gecompromitteerd credential één enkele hendel is om aan te trekken.
De volledige specificatie wordt gepubliceerd
Het volledige wire-formaat — het AppSpec-schema, de volledige app.*- en apps.*-toolreferentie, het auditlog-formaat en het federatie-peer-contract — wordt hier voorbereid voor open publicatie. Wilt u vroege toegang of helpen de specificatie vorm te geven? Neem contact op.