AI-POWERED GAMING

PLAY LIKENEVER BEFORE

Cloud AI that plays your games.
Native macOS. Seamless Unreal 5.6+.

🍎Native macOS
UE5Unreal 5.6+
🪟Windows
Loading...

Get Started

Choose your platform and follow the setup guide to start using NitroGenPlayer.

🔑

Need an API Key?

Get access to NitroGen AI with a subscription or credit pack.

🍎

macOS Setup

Run AI-controlled games on your Mac using Karabiner VirtualHID for real keyboard input injection.

🇺🇸Using:Iowa, USA

Requirements

  • macOS 13 Ventura or later
  • Python 3.10+
  • Xcode Command Line Tools
  • Homebrew
  • Game running (windowed or fullscreen)
1

Install Xcode Command Line Tools

Install the Xcode Command Line Tools if you haven't already.

xcode-select --install
💡If already installed, this will show an error which you can ignore.
2

Install Karabiner-Elements

Download and install Karabiner-Elements from the official website. This provides the VirtualHID framework.

open https://karabiner-elements.pqrs.org/
💡Download the .dmg file from the website, open it, and drag Karabiner-Elements to your Applications folder. Follow the setup prompts to grant necessary permissions.
3

Install the Karabiner VirtualHID Driver

Download and install the Karabiner VirtualHIDDevice driver package from GitHub. This creates a virtual keyboard that games recognize as real hardware.

open https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice/releases/latest
💡Click on the .pkg file (e.g., Karabiner-DriverKit-VirtualHIDDevice-3.1.0.pkg) to download it, then open the downloaded file and follow the installer prompts.
4

Activate the Karabiner VirtualHID Driver

Run this command to activate the driver. You may need to approve it in System Settings → Privacy & Security.

/Applications/.Karabiner-VirtualHIDDevice-Manager.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Manager activate
💡If prompted, go to System Settings → Privacy & Security and click "Allow" for the Karabiner extension.
5

Start the VirtualHID Daemon

The daemon must be running for the virtual keyboard to work. Run this in a separate terminal and keep it running.

sudo '/Library/Application Support/org.pqrs/Karabiner-DriverKit-VirtualHIDDevice/Applications/Karabiner-VirtualHIDDevice-Daemon.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Daemon'
💡This requires your password. The daemon will stay running until you stop it with Ctrl+C. Keep this terminal open.
6

Build the VirtualHID Client Bridge

Clone and build the bridge binary that connects the Python server to the VirtualHID driver.

cd ~ && git clone --depth 1 https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice.git && cd Karabiner-DriverKit-VirtualHIDDevice/examples/virtual-hid-device-service-client && brew install xcodegen && make
💡The binary will be built at ~/Karabiner-DriverKit-VirtualHIDDevice/examples/virtual-hid-device-service-client/build/Release/virtual-hid-device-service-client
7

Create the Virtual Gamepad Server Directory Structure

Create the folder structure for the virtual gamepad server.

mkdir -p ~/nitrogen-gamepad-server/src ~/nitrogen-gamepad-server/web
💡This creates the server folder with src/ and web/ subdirectories.
8

Save the Virtual Gamepad Server Files

Save these files into your ~/nitrogen-gamepad-server folder. Use the tabs below to view each file.

💡Copy each file using the Copy button. The src/ and web/ subdirectories should already exist from the previous step.
9

Create the Game Client Directory

Create the folder for the game client files.

mkdir -p ~/nitrogen-game-client
💡This client captures your screen and sends it to the NitroGen AI.
10

Save the Game Client Files

Save these files into your ~/nitrogen-game-client folder. Use the tabs below to view each file.

💡Replace YOUR_API_KEY_HERE in .nitrogenplayerrc with your actual API key. Control profiles: wasd (FPS/3D games), openemu (SNES emulators). Model versions: v1 (default), v1-cut (3-frame memory, same speed), v1-tiny (faster, 3-frame memory).
11

Start the Virtual Gamepad Server

Open a NEW terminal and start the virtual gamepad server.

💡Keep this terminal running in the background.
12

Run the Game Client

Open a NEW terminal and start the game client.

💡The client reads settings from .nitrogenplayerrc. AI starts paused by default.
13

Play!

Open your game and press the pause key to toggle AI control on/off.

💡Press F12 (or whatever you set as pause_key in .nitrogenplayerrc) to toggle enable AI control. The AI will now play your game!
14

(Optional) Remote Control from iPhone

Want to toggle AI from your iPhone while gaming? Use ngrok to expose the control server.

💡ngrok will give you a public URL (e.g., https://abc123.ngrok.io). Open this on your iPhone's Safari to access the touch controller UI and toggle AI on/off remotely while you play.