EDNA · SENSOR BRIDGE

Measure here. Let your AI feel it there.

This page is the EDNA Sensor Bridge: the real engine (edna.js v1.3.1) measures your interaction dynamics — typing rhythm, pauses, corrections, movement, tempo — 100% locally in your browser. With your consent it streams only quantized, non-identifying values to the production MCP endpoint, where your own AI (Kimi, Claude, GPT, …) reads them live through its MCP plugin. Same session id on both sides — that's the whole pairing.

Main live production · metered (1 credit / call) 100% on-device measurement Quantized signals only Evaluation only — EPCAL-1.0

01How the bridge works

Three moving parts, one shared session id. Nothing else to install — your production account key is the only credential.

1 · Measure on this page

The EDNA engine observes your interaction on this page only — raw behavioral data never leaves your device. Type in the scratch area, move, scroll, make corrections: organic interaction is the signal.

2 · Stream via MCP session

Every ~2 s the current proof (classification, confidence) and human context (tempo, pauses, dynamics) are submitted to the production endpoint under your session id — only after you consent, only quantized values, 1 credit per call.

3 · AI reads in its own UI

In Kimi / Claude / GPT you add the MCP endpoint once and tell the model your session id. It calls edna.get_human_context and edna.get_response_guidance — and adapts its response style to your measured interaction dynamics.

Honest scope, by design: a browser page cannot measure inside the native Kimi, Claude or GPT interface — so EDNA measures here and the AI reads the stream there. A browser extension that measures directly in those interfaces (and streams to the same MCP session) is the planned next step. The values are interaction patterns, not emotions: the AI sees tempo, pauses and dynamics — never a diagnosis of what you feel.

02Live measurement

The engine is watching this page right now. Nothing is sent anywhere until you start the stream below.

gathering_data gathering_data · 0%
Move your mouse, type below, scroll — the engine needs a few seconds of organic interaction.
bursts: — pauses: — corrections: — tempo: —

Writing process: bursts · thinking pauses · corrections · tempo dynamics — a quantized timeline of how your text comes into being. A pause is measurable; its reason is not.

Tip: pause for 2–3 seconds, then resume — the engine reads tempo shifts. Delete and re-type a word — corrections are part of the human pattern. Keep this tab visible while you chat with your AI in another tab.

03Stream to the MCP endpoint

Pair this page with your AI client through one session id. The id is generated locally and stays in your browser.

The key is stored only in your browser (localStorage) and sent as Authorization: Bearer with each stream call. 1 credit per call (€0.01) — included with an active annual license. Free-Beta keys (edna1_…) are revoked.

stream idle — consent required
What leaves this device: classification + confidence, quantized 16-channel signal vector, tempo trend, pause/channel indicators, and quantized writing-process patterns (burst counts, pause buckets, correction runs, tempo timeline — never content, never raw timings). What never leaves: raw event streams, exact timings, keystroke content, anything personally identifying. A pause is measurable — its reason is not.

04Connect your AI (Kimi · Claude · GPT)

Add the endpoint once, give the model your session id, and it reads your live sensoric while you interact here.

MCP endpoint
https://fbxzacsslrrmivdzjctx.supabase.co/functions/v1/edna-mcp/mcp
Auth
Authorization: Bearer edna2_… (your production account key — 1 credit per call, annual license includes usage)
Session pinning
header X-EDNA-Session: <id>, or tool argument session

What the AI can call: edna.get_live_brief (one-call brief for continuous perception — proof, context, writing process, guidance), edna.get_writing_process (how the current message came to be: bursts, thinking pauses, corrections, tempo dynamics, 12-step quantized timeline — never content), edna.get_human_context (time-aware dynamics with explicit limits), edna.get_response_guidance (overridable mode FLOW / FOCUS / EXPLORE / EXECUTE / REFLECT — the humanness score is never an input), and the full edna.id.* chain tools if you also run the EDNA ID demo under the same session.