KNTRL
Turn your iPhone into a real Mac gamepad.
Free Mac app, version 0.2.1
macOS 26 or later
Free beta, TestFlight invites by email
iPhone, iOS 26 or later
The controls
Press anything. This is KNTRL’s Midnight layout, and under it is exactly what your Mac receives.
Nothing yet
is what macOS reads from KNTRL Controller 1
4d 48 4e 43 01 03 de c0 17 2a 99 03 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
- 4d 48 4e 43 01 03
- “MHNC”, version 1, a state packet
- Session, sequence
- the sequence counts up, so a late packet is dropped
- Buttons
- one bit each; A is the first
- Sticks, triggers
- four axes and two triggers
01 00 08 00 00 00 00 00 00 00 00 00 00
- Buttons
- sixteen bits; A is Button 1
- Hat
- the D‑pad, eight directions; 08 is centered
- X, Y, Z, Rz
- the two sticks, down is positive
- Rx, Ry
- the two triggers, 0 to 255
Controls chart
As a virtual gamepad, every control is a real HID button or axis, so Steam Input, SDL games and emulators map it the way they map any controller you plug in. For games that only take a keyboard, KNTRL Host types keys instead, with the Shooter or Retro preset, and every key can be rebound on the Mac.
- Shows up as
- KNTRL Controller 1 to 4
- Made by
- Metahuman Network
- Connects as
- A virtual HID gamepad
- Controls
- 16 buttons and an 8‑way hat
- Axes
- Two sticks, two triggers
- Driver
- None to install
| Control | Virtual Gamepad | Shooter keys | Retro keys |
|---|---|---|---|
| Face buttons | |||
| A, bottom | Button 1 | Space | Z |
| B, right | Button 2 | C | X |
| X, left | Button 3 | R | A |
| Y, top | Button 4 | F | S |
| Shoulders | |||
| LB | Button 5 | Q | Q |
| RB | Button 6 | E | W |
| LT | Button 7, Rx axis | Right click | E |
| RT | Button 8, Ry axis | Left click | R |
| Sticks | |||
| Left stick | X and Y axes | W A S D | Arrow keys |
| Right stick | Z and Rz axes | Mouse pointer | Not used |
| Left stick click | Button 11 | Shift | Not used |
| Right stick click | Button 12 | V | Not used |
| D‑pad | |||
| Up | Hat up | 1 | Up arrow |
| Right | Hat right | 2 | Right arrow |
| Down | Hat down | 3 | Down arrow |
| Left | Hat left | 4 | Left arrow |
| Middle buttons | |||
| View | Button 9 | Tab | Right Shift |
| Menu | Button 10 | Esc | Return |
| Home | Button 13 | Not used | F1 |
| Share | Button 14 | F12 | F8 |
Rumble from game audio
Most Mac games send no rumble to a generic gamepad, so KNTRL Host listens to the game’s sound instead. Bass below 120 Hz drives the heavy motor and sharp hits drive the light one, about 30 times a second. The sound never leaves your Mac; only two motor levels do.
Up to four players
Four iPhones can join one Mac, and each plugs in as its own gamepad, so couch co‑op games see four players. In Keyboard & Mouse they share one keyboard.
- P1 3 msKNTRL Controller 1
- P2 5 msKNTRL Controller 2
- P3 4 msKNTRL Controller 3
- P4 6 msKNTRL Controller 4
What it needs
| Part | Runs on | What it does | Asks for |
|---|---|---|---|
| KNTRL | iPhone, iOS 26 or later | The controller, its layouts and motion controls | Local Network |
| KNTRL Host | Mac, macOS 26 or later | Lives in the menu bar and receives your presses | Local Network |
| Virtual Gamepad | KNTRL Host | Plugs in one HID gamepad per phone for Steam Input, SDL games and emulators | Nothing extra |
| Keyboard & Mouse | KNTRL Host | Types keys and moves the pointer, for games without controller support | Accessibility |
| Rumble | Both | Turns game audio into two motor levels | System Audio Recording |
| Network | Both | Both on the same Wi‑Fi; no Bluetooth, no cable | Nothing extra |
Set up once
Five steps, a few minutes, and only the first time. After that, open KNTRL and your Mac is already there.
Get KNTRL Host
Download for MacDownload the free Mac app and open it. It lives in your menu bar with a four‑digit pairing PIN. Under Send input as, choose Virtual Gamepad.
KNTRL Host
Ready — waiting for a controller
Pairing PIN
4729
Send input as
Find your Mac
Join the TestFlight betaOpen KNTRL on your iPhone, on the same Wi‑Fi. Your Mac appears by name. Tap it.
Enter the PIN
Type the PIN your Mac shows. You do this once per phone, and each PIN works one time.
Pick a layout
Offset, Symmetric or Classic, or build your own: drag to move, pinch to resize, relabel or duplicate any control.
Play
Start Steam, your emulator or your game. It finds KNTRL Controller 1 like any pad you plug in; map the buttons there if it asks. For keyboard‑only games, switch to Keyboard & Mouse.
Questions
Will it work with my game?
If it plays with a controller through Steam Input or SDL, which covers most of Steam, or it’s an emulator like RetroArch, yes: it sees KNTRL Controller as a gamepad. Games that only read Apple’s Game Controller framework don’t see generic gamepads. For those, and for keyboard‑only games, switch KNTRL Host to Keyboard & Mouse.
Do I need to install a driver?
No. KNTRL Host makes its controllers with macOS’s own virtual HID support, so there’s no driver or system extension to approve. When a phone leaves, its controller unplugs; quit KNTRL Host and they all do.
Why do I need a Mac app?
An iPhone app can’t act as a Bluetooth controller. So KNTRL streams your presses over Wi‑Fi to KNTRL Host, and Host plugs in a virtual gamepad for each phone.
Is there lag?
Every press crosses your local network the moment it happens, and the phone repeats its full state 30 times a second, so a lost packet is replaced within about 33 ms. If the phone goes quiet for a second, the Mac lets go of every button, so nothing stays held down.
Does it listen to my audio?
Only when you turn on rumble, and only inside KNTRL Host: it reduces the game’s sound to two motor levels and keeps nothing. Neither app collects any data.
Can I change the buttons?
All of them. On the phone, move, resize, reshape, relabel or duplicate any control. On the Mac, map the gamepad in Steam or in your game’s settings, or rebind any key in Keyboard & Mouse.