streamPhoneDeck
Phone → Computer · end-to-end encrypted

Your phone is the button.

A native app pairs with your computer by scanning a QR — encrypted, over your own Wi-Fi. Then a grid of tiles launches apps, opens sites, fires shortcuts, or types text on your Mac or PC.

Scan a QR to pair — X25519 + AES-256-GCM
streamPhoneDeck
Switch a profile or tap a tile →
The signal path

Scan once to pair — then every press is sealed end-to-end.

The phone is a native app. It scans a QR to do an X25519 key exchange with an installable desktop host, then each button press is an AES-256-GCM message only that host can open. No cloud, no account — just your Wi-Fi.

01

Pair

Scan the host's QR — a forward-secret handshake.

02

Phone app

Tap a tile; it's sealed with your device key.

03

Desktop host

Menu-bar app verifies + runs the action.

04

Your OS

App opens · site loads · keys & text fire.

What a tile can do

Five kinds of action, one tap each.

🚀

Launch an app

type: app

Open or focus any application by name.

open -a "Visual Studio Code"
🌐

Open a website

type: url

Send any URL to your default browser.

https://github.com
⌨️

Fire a shortcut

type: keys

Paste a key string — validated live. macOS & Windows.

4 → screenshot
📝

Type text

type: text

Send any string — typed into the focused app. Optional countdown delay.

type "Hello, world!"

Run a command

type: shell

Execute a shell command on the host machine.

osascript -e 'set volume…'
Make it yours

Build your deck on the phone. No code.

  • Add, edit, delete tiles right in the app — tap Edit, then any tile.
  • Drag to reorder tiles right on the grid — mouse or touch.
  • Live tile state — app tiles light up when that app is running, and highlight the one you're focused on.
  • Resize the grid & tiles — pick 2–5 columns, and make any tile span cells (2×1, 2×2…).
  • Paste key strings like 4 — checked as you type and shown back to you.
  • Send free text with an optional countdown, plus icon & color quick-picks.
  • Saved per device — your phone keeps its own layout.
Premium

Built for the way you actually work.

Profiles that follow your focus, a live app switcher, and custom tile faces. Swipe through — or let them rotate on their own.

Get running

Install the host, run the app, scan to pair.

Run the desktop host

Install the menu-bar app (macOS/Windows), or run it from source. It shows a pairing QR.

cd desktop && npm install
npm start  # tray app + QR window
Install the phone app

Build a dev or standalone client — the Android APK also builds in CI.

cd mobile && npm install
npx expo run:ios --device  # or run:android
Scan the QR to pair

Both devices on the same Wi-Fi — the channel is end-to-end encrypted. Then tap tiles.

Pair a phone → scan → paired ✓
Secure by design

No cloud, no account — and nobody on your Wi-Fi gets in.

The QR carries only a public key. Phone and host derive a shared key over X25519, and every message is AES-256-GCM with a monotonic counter — so an attacker on the same network can't read, forge, replay, or hijack the pairing.

🔑

Forward-secret pairing

A screenshot of the QR can't derive the key, and a later leak doesn't expose past sessions.

🔒

Per-device keys

Each phone gets its own key and appears in the host — revoke any of them with one tap.

⚠️

One honest caveat

A shell tile runs arbitrary commands on the host — that's the point, but only pair devices you control. For public distribution, sign the desktop app (Developer ID / Authenticode) so it installs without warnings.