# What works where

Controller+ is in beta. This page lists what each part does today and what it needs from your system.

## Your phone

| Phone | Works |
| --- | --- |
| Any modern phone browser (Safari on iPhone, Chrome on Android) | The full controller, QR joining, private screens, sounds, tilt steering where the browser allows motion access. Android browsers also vibrate; iPhone browsers do not allow web pages to vibrate. |
| Controller+ app for iPhone and Android | Everything above, plus vibration on iPhone, encrypted connections, full mouse and keyboard control of your computer, and Pro styles. The apps are coming to the App Store and Google Play. |

## Your computer (desktop app)

| System | Gamepad mode | Game keys | Mouse, keyboard, media |
| --- | --- | --- | --- |
| Windows 10/11 (x64) | Each phone is an Xbox 360 controller. The app installs the free ViGEmBus driver in one click the first time. Without it, the vJoy driver also works. | Yes | With the phone app |
| macOS 15 or later | Coming with Apple's approval of our virtual-controller permission | Yes, after you allow Accessibility access | With the phone app |
| Linux (x64, ARM64) | Yes, through `/dev/uinput` (one-time permission) | Yes | With the phone app |

**Game keys**: pick *Arrow keys* or *WASD* for a phone on the computer, and its D-pad, stick and buttons press keys. Any game with keyboard controls works this way, and it needs no driver.

## Games made for Controller+

The [five Controller+ games](games.md) and any game built with the SDK receive phone input directly. They need no driver and no desktop app: open the game on the computer, scan its QR, play.

## Developer packages

| Package | Notes |
| --- | --- |
| JavaScript (browser and Node 22+) | Relay helper for web games, `ControllerHost` for your own server, input mapping and protocol helpers |
| Godot 4 | Add-on with action mapping, private views and feedback |
| Unity | UPM package with a WebGL bridge |
| Unreal | Runtime plugin with Blueprint nodes |
| C / C++ | Small library with a CMake build |

Private phone screens (roles, votes, drawing) need an integration. They do not appear in a game that only sees a gamepad.
