# appliyo/remotekey architecture

> Architecture diagram of the GitHub repository appliyo/remotekey, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/appliyo/remotekey
- Repository: https://github.com/appliyo/remotekey

## Overview

RemoteKey is a Windows companion server that lets mobile devices discover and pair with a PC, then send desktop input and receive system audio over a local connection. The documented workflow is beacon discovery, PIN authorization, and control; audio streaming is a parallel capability. The repository tree contains no runtime source files, so implementation nodes have null paths and the graph shows only relationships explicitly described in the README.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_connectivity["Local connectivity"]
  node_server["RemoteKey server"]
  node_discovery["UDP beacon discovery"]
  node_socket["TCP/UDP connection"]
end

subgraph group_security["Device pairing"]
  node_pairing["PIN pairing"]
end

subgraph group_control["Desktop control"]
  node_input["Input execution"]
end

subgraph group_audio["Audio streaming"]
  node_capture["System audio capture"]
  node_audio_stream["Audio streaming"]
end

node_mobile(("Mobile device"))
node_lan(("Local network"))
node_windows(("Windows desktop"))

node_server -->|"advertises via"| node_discovery
node_discovery -->|"broadcasts on"| node_lan
node_lan -->|"reveals server to"| node_mobile
node_mobile -->|"connects over"| node_socket
node_socket -->|"communicates via"| node_lan
node_mobile -->|"verifies PIN"| node_pairing
node_pairing -->|"authorizes device"| node_socket
node_socket -->|"carries input"| node_input
node_input -->|"controls"| node_windows
node_windows -->|"provides system audio"| node_capture
node_capture -->|"supplies audio"| node_audio_stream
node_audio_stream -->|"streams audio to"| node_mobile

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_discovery,node_socket toneBlue
class node_pairing toneAmber
class node_input toneMint
class node_capture,node_audio_stream toneRose
class node_mobile,node_lan,node_windows toneIndigo
```

## Components

### Local connectivity

- **RemoteKey server**
- **UDP beacon discovery**
- **TCP/UDP connection**

### Device pairing

- **PIN pairing**

### Desktop control

- **Input execution**

### Audio streaming

- **System audio capture**
- **Audio streaming**

### Other components

- **Mobile device**
- **Local network**
- **Windows desktop**

## Connections

- RemoteKey server → UDP beacon discovery: advertises via
- UDP beacon discovery → Local network: broadcasts on
- Local network → Mobile device: reveals server to
- Mobile device → TCP/UDP connection: connects over
- TCP/UDP connection → Local network: communicates via
- Mobile device → PIN pairing: verifies PIN
- PIN pairing → TCP/UDP connection: authorizes device
- TCP/UDP connection → Input execution: carries input
- Input execution → Windows desktop: controls
- Windows desktop → System audio capture: provides system audio
- System audio capture → Audio streaming: supplies audio
- Audio streaming → Mobile device: streams audio to
