Watch a sentence become ciphertext
This runs the actual production encryption code tebDictate ships (e2ee-live-cursor.js) β
right here, in this page. No phone, no account, nothing sent anywhere.
Prove it on the real thing β 60 seconds
Verify the live service, end to end, with your phone and a laptop.
- On a laptop, open tebchart.com/dictate. A QR code appears.
- Press F12 (or right-click β Inspect) β click the Network tab β type
streamin the filter box. - Scan the QR with your phone's camera and dictate a sentence out loud.
- Back on the laptop, click the
streamrequest β open the EventStream tab (in Firefox, the Response tab). - Read the data arriving from our server. Every frame looks like:
Your words are nowhere in it β only{"v":2,"iv":"9Xk2β¦","ct":"Qz7Rf1pβ¦","n":3}
ct, the ciphertext. The readable text appears only on your screen, after your browser decrypts it.
Bonus β try to break it: attempt to send unencrypted text to the relay and it refuses with
HTTP 400 β end-to-end encryption required. The server is physically unable to store your words in the clear.
Why this is real, not a marketing word
The design, in four facts anyone can check.
Keys meet through your camera
The pairing key travels inside the QR code, scanned camera-to-screen β never through our servers. So we can't sit in the middle.
Standard, audited crypto
X25519 key agreement β AES-256-GCM, the same primitives that protect Signal and TLS. No home-grown ciphers.
Nothing is stored
No account, no database of notes. The relay holds only ciphertext under a key that expires in minutes β undecryptable the moment your session ends.
The code is open to read
The entire client is plain, un-minified source you can inspect line by line.
Read the source yourself: dictate.html Β· e2ee-live-cursor.js Β· dictate-phone.html