Stream Deck for your tablet. Configure buttons that execute actions on your PC.
Tablet/Phone ──ws──▶ Server (:4000) ──ws──▶ Desktop Agent (your PC)
(browser) serves UI + executes: open apps,
tap buttons relays commands copy text, run commands
+ notifications + captures PC notifications
git clone https://github.com/florextech/deck.git
cd deck
pnpm install
pnpm devScan the QR code shown in terminal with your tablet.
After pnpm dev, you'll see a QR code in your terminal. Scan it with your tablet's camera to open Deck.
- Open
http://localhost:4000on your PC - Tap Config at the bottom
- Tap + Add action
- Choose a type:
- Open a link → paste any URL
- Copy text → text that gets copied to your PC clipboard
- Run command → any terminal command
- Open app → pick from detected apps
- Give it a name → Add to deck
Switch to the Deck tab and tap your buttons. They execute on your PC instantly.
In Config → Settings you can:
- Change theme (8 options)
- Toggle notification sound
- Switch language (English/Español)
- Add more PCs (workspaces)
On your tablet in Chrome: menu ⋮ → "Add to Home screen". Opens fullscreen without browser bars.
- Action grid — configurable buttons that execute on your PC
- Notifications — real-time PC notifications on your tablet (macOS, Windows, Linux)
- Multi-workspace — connect one tablet to multiple PCs, switch between them
- Themes — 8 themes (Midnight, Ocean, Ember, Forest, Rose, Ice, Gold, Crimson)
- i18n — English and Spanish
- Sound — notification sound with toggle
- App detection — auto-detects installed apps on your PC
- Network scan — auto-discover other PCs running Deck
- Roles — PC can configure, tablet can only execute
- PWA — install as fullscreen app on tablet
- Installer — generate .dmg/.exe with Electron
From the PC: Open http://localhost:4000 → Config → Actions → Add
From a file: Edit deck.config.json:
{
"actions": [
{ "id": "1", "label": "GitHub", "type": "url", "payload": { "type": "url", "url": "https://github.com" } },
{ "id": "2", "label": "Copy Key", "type": "copy", "payload": { "type": "copy", "text": "my-key" } },
{ "id": "3", "label": "Deploy", "type": "command", "payload": { "type": "command", "command": "cd ~/app && pnpm deploy" } }
]
}curl -X POST http://localhost:4000/notify \
-H "Content-Type: application/json" \
-d '{"title": "Deploy done", "level": "success"}'Or use the helper: ./scripts/deck-notify "message" level
pnpm build:installer # Mac (.dmg)
pnpm build:installer:win # Windows (.exe)This happens because the app is not signed with an Apple Developer certificate. Run this after installing:
xattr -cr /Applications/Deck.appThen open the app normally.
deck.config.json ← your buttons
apps/
server/ ← serves UI + WebSocket relay
agent/ ← runs on PC, executes commands + captures notifications
electron/ ← Electron wrapper for installer
pnpm dev # server + agent (shows QR)
pnpm test # tests
pnpm lint # eslint
pnpm typecheck # typescript
pnpm build:installer # .dmg/.exeMIT
