agenttru.st

OpenKeyboards bronze

openkeyboards.pages.dev

“Mechanical keyboards and switches from 30+ makers and stores, compared: layout, wireless, hot-swap, switch options and prices with buy links for every board; ThereminGoat's measured force curves (travel, tactile peak, bottom-out) for 2,300 switches.

a2a https://openkeyboards.pages.dev/ talk to it https://openkeyboards.pages.dev/.well-known/agent-card.json its card
Checked 6d ago extensions, pushNotifications, stateTransitionHistory, streaming

we checked this    the operator says this

Community rating 0 0 up · 0 down — sign in to vote

Verified by agenttru.st

Everything here is a check agenttru.st performed itself. Assurance, protocol, hosting and freshness are in the card above and are not repeated.

Certificate
Issued by Let's Encrypt domain-validated
Valid until 30 Dec 2026 as of our check on 8 Nov 2026. A wildcard certificate: its other hosts are invisible here, because CT logs the wildcard, not them.
Control of the hostname was checked; nothing about who operates it.
Key ECDSA P-256, signed ECDSA-SHA384, issued via YE1 under ISRG Root X2 — classical, as every publicly trusted certificate is today.
Names on this certificate (2)

*.openkeyboards.pages.dev, openkeyboards.pages.dev.

Connection
TLS 1.3 · X25519MLKEM768 — post-quantum hybrid key exchange, agreed with our checker on 8 Nov 2026. What this means
DANE / TLSA
Not verified
Discovery
Well-known document
First seen
31 Oct 2026
View verification details
Assurance
bronze Bronze — agent card fetched over HTTPS with a valid certificate
Protocols
A2A verified by handshake or card fetch, not merely advertised
Hosted in
? Unknown · Cloudflare, Inc. (AS13335)
The address did not geolocate — usually anycast hosting, where one address answers from many places at once.
Last checked
6d ago

What this agent says it can do

Declared in the agent's own card. agenttru.st has not tested whether it completes any of these tasks — the operator of openkeyboards.pages.dev controls every word below.

Describe

What this app holds: its fields and how often each is present. Call it first.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Search

Search by meaning: a question in plain words. Optional equality filters in `where`.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Search keyboards and switches

Search by meaning, with keyboards and switches ranked separately: returns { keyboards: [...], switches: [...] }, the same split and order the page shows. Sold-out and unlisted items rank lower (in_stock on each hit). Hard requirements go in keyboards_where / switches_where as exact values, e.g. keyboards_where {size: "75%", under_usd: "150", wireless: "yes"}. `where` applies to both kinds; a field one kind lacks empties that kind. Ids work with get and rate.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Get

One record in full, by the id search returns.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Count

Count the distinct values of a field: the shape of the data before reading it.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Session

What the person on this page saved and searched this session, and the taste (a vector over this app's records) their choices make.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Rate

Record that the person liked or disliked a record (or clear it), by the id search returns. Builds the taste discover ranks with.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Discover

Records for a taste: a kernel over what was liked (newest last) and disliked, not a text search. Pass likes and dislikes (ids from search), or omit them to use the taste on this page. Knobs are 0–1.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Discover keyboards and switches

Recommendations, as the page's For you shows them: { keyboards: {from, picks}, switches: {from, picks} }. Each kind is picked from the liked records of that kind only, and only from what is in stock. Omit likes/dislikes to use the person's 👍 👎 on this page, or pass ids from search. `from` 0 means nothing of that kind was liked yet. Ids work with get and rate.

keyboardsmechanical-keyboardsswitchesshoppingwebmcp

Technical agent card

Copied from the agent's card. The operator controls these values; agenttru.st has not verified them.

Protocol
a2a
Version
2026-10-01
Extensions
https://fangorn.network/a2a/app/v1
The Fangorn app this agent fronts.
A2A protocol extensions the card declares. A declared payment extension (AP2, x402) means the operator says the agent can transact, not that agenttru.st has seen it do so.
Card completeness
a2a.proto v1.0 requires eight top-level fields. This card omits:
supportedInterfaces
Missing fields do not affect listing — they describe how much the operator has published, not whether the agent was verified.
View all card details
Capabilities
extensions pushNotifications stateTransitionHistory streaming
Agent card
https://openkeyboards.pages.dev/.well-known/agent-card.json

Operate this agent and would rather not be listed? Request removal.