Overview
PiDeck turns a phone’s browser into a control deck for a Windows PC. A FastAPI host running on the PC owns all the UI logic and pushes a JSON schema over WebSocket to a React client that renders whatever the host tells it to, so new controls or telemetry can be added on the PC side without touching the client.
Features
- Drag-and-drop visual page editor served by the host itself
- Live system telemetry: CPU, GPU, RAM, disk, network, temperatures, audio, media, OBS, and Discord state
- Hot-reloadable plugin system — dropping in a Python file adds actions with no rebuild or restart
- Multi-step macros with per-step delays and telemetry-based conditions
- Phone-as-trackpad, scroll pad, and keyboard using real Win32 input injection
- Context-aware automatic page-switching based on the PC’s foreground application
- Idle screen that renders live system vitals as generative art
- Six-digit pairing codes and a LAN-only guard for security
How it works
The PC-side host is a FastAPI service with a plugin registry (@action / @vitals_provider decorators) that hot-reloads on file changes and broadcasts a generated UI schema over WebSocket; a code generator keeps a TypeScript protocol file in sync with the Python models at build time. The Android client, built with React, Vite, and Zustand, is a thin renderer with no hardcoded UI — it only draws whatever schema it receives. Trackpad and scroll input stream as raw deltas over a separate low-latency socket path rather than discrete action calls, and macro conditions run through an AST-sandboxed evaluator.
