no app install · end-to-end encrypted

Your phone is the keyboard
for any screen.

Put a QR code on a screen. Anyone scans it and their phone instantly becomes a keyboard, gyro mouse, and buttons for it — no app to download, nothing to pair.

Scan it — control this page

Point your phone camera at the code. Your phone opens a controller; move the pad or type, and it happens here — encrypted end to end.

waiting for a phone…

How it works

Three parties, and you only build one of them.

Show a QR

Your screen — a web page, a TV, a kiosk, a microcontroller — displays a qrkeyboard QR.

They scan

The phone opens our hosted controller. No install, no account, no pairing dance.

You get input

Keystrokes, pointer motion and taps arrive in your code — encrypted so even we can't read them.

Private by design

Input can include passwords. So the security isn't a bolt-on — it's the architecture.

🔒 End-to-end encrypted

Every keystroke and movement is encrypted between the phone and your screen with AES-256-GCM. The relay only ever sees ciphertext.

👁️ We can't read it

The encryption key lives only in the QR and never reaches our servers. Blindness is structural, not a promise.

🔑 Optional PIN lock

Make a QR public but control restricted: a PIN (via the SPAKE2 protocol) gates who can drive the screen — and can't be brute-forced.

🤝 Physical trust

Only someone who can see your QR can connect. Single-use, time-limited pairing; per-device credentials.

Where it fits

Anywhere there's a screen and no good keyboard.

Smart TVs & set-top boxes

Type search and passwords, point with the gyro — replace the awful remote.

Kiosks & signage

Visitors use their own phone instead of a shared touchscreen. Touchless and hygienic.

Presentations & AV

A slide clicker with a laser-pointer gyro cursor; control decks and production surfaces.

Makers & embedded

Give any ESP32 / Raspberry Pi project a keyboard without wiring one up.

Games & events

Turn every phone in the room into a controller or a buzzer — no app to install.

Accessibility

People use a device already tuned to their needs to drive an untailored public screen.

Built for developers

One script tag on the web, or a simple HTTP/WebSocket API from anything. We host the phone side; you handle the events.

<script src="https://qrkeyboard.com/v1.js"></script>
<div id="qrkb"></div>
<script>
  const kb = QRKeyboard.create({
    el: '#qrkb',
    caps: ['keyboard','gyro','buttons']
  });
  kb.on('key',    e => type(e.text));
  kb.on('move',   e => moveCursor(e.dx, e.dy));
  kb.on('button', e => click(e.button, e.down));
</script>

That's the whole integration. The QR renders itself, pairs through our relay, and events start flowing. Not on the web? Talk to the same HTTP/WebSocket API from a microcontroller or anything else.

No app for your users. No servers for you. Free to start; end-to-end encryption is always on.

Pricing

Free to use, with no usage limits — the whole product, security included. You only pay to put your own brand on it and unlock team & automation features.

Free — everything, no limits

The full thing: keyboard, gyro mouse, buttons, PIN access control, and end-to-end encryption. No signup, no caps, and we can never read your input. For everyone, forever — hobby or production.

Paid — brand it & extend it

Your logo and colours on the controller (drop the qrkeyboard mark), a custom QR domain, plus webhooks, analytics, SSO and audit logs for teams. You pay only for the extras you add — never for the core or the security.

Security is never a paid feature. The free tier is the full product; payment adds branding and team/automation features on top.