Presentation remote
Advance your slides from your pocket.
Volume up is the next slide. Volume down is the previous one. Stage Wand pairs your phone with the computer running the deck over Bluetooth or Wi‑Fi, and keeps a trackpad behind a deliberate unlock gesture so nothing fires by accident.
Notarized Mac app, macOS 14 or later. iPhone beta via TestFlight, iOS 17 or later.
Other platforms: macOS Windows Linux Arch Linux iPhone Android
Volume buttons, even when locked
Up sends Right, down sends Left, so any slide app that listens for arrow keys follows along.
A trackpad when you need one
Draw the guided square to unlock touch controls: move, click, scroll, and switch spaces.
No venue Wi‑Fi required
Bluetooth direct is the default. Wi‑Fi nearby and a Cloudflare tunnel are there as fallbacks.
Setup
One computer, one phone.
Install a host on the computer running the presentation, then a remote on your phone. Pick your platforms.
Mac Host
macOS 14 or later. Notarized build.
- Download Stage Wand for macOS (latest release; checksums), open it, and drag Stage Wand to Applications.
- Launch it. A pairing window shows the four-digit code, connection status and listening port. Reopen it any time from the menu bar item.
- On first launch, allow Accessibility (System Settings → Privacy & Security → Accessibility), Bluetooth, and Local Network. Choose Allow if the firewall asks about incoming connections.
- Optional: enable the Mission Control shortcuts Control+Left, Control+Right and Control+Up in System Settings → Keyboard → Keyboard Shortcuts → Mission Control to switch spaces from the phone.
Build from source
make -C mac app && open ~/Applications/StageWandMac.app
Windows Host
Prebuilt download coming soon. Build from source with Go for now.
- Install Go and clone the repository.
- Build and run the host:
cd host go build -o stagewand-host.exe .\cmd\stagewand-host stagewand-host.exe - Allow the app through Windows Firewall when it binds, and turn Bluetooth on in Windows Settings.
- The console shows the pairing code, listen address and Bluetooth status. Type
kand Enter to disconnect the phone and rotate the code.
Space chords map to Win+Ctrl+Left and Win+Ctrl+Right (virtual desktops) and Win+Tab (Task View).
Linux Host
Packages for Arch Linux (x86_64) and Debian/Ubuntu (amd64: Ubuntu 22.04/24.04, Debian 12/13). Works on Wayland and X11.
Arch Linux
curl -fL -o stagewand-host-x86_64.pkg.tar.zst https://stagewand.sillyapps.co/download/arch
sudo pacman -U ./stagewand-host-x86_64.pkg.tar.zst
Debian or Ubuntu
curl -fL -o stagewand-host_amd64.deb https://stagewand.sillyapps.co/download/deb
sudo apt install ./stagewand-host_amd64.deb
- Enable Bluetooth:
sudo systemctl enable --now bluetooth, with a Bluetooth LE peripheral-capable adapter powered on. - Launch Stage Wand from the application menu, or run
stagewand. The tray app shows the pairing code, input readiness, Bluetooth status and LAN address. - If
/dev/uinputis not yet writable, log out of the graphical session and back in.
Checksums are on the release page. Building from source and the CLI-only host are covered in the README.
iPhone Remote
iOS 17 or later. Public beta through TestFlight.
- Install TestFlight, then join the Stage Wand beta.
- Open Stage Wand. Allow Bluetooth and Local Network when asked.
- Draw the square to unlock touch controls, open Settings, and type the four-digit code from the host, including leading zeros. Bluetooth direct is the default route.
- Wait for the connected state, start your slideshow, and keep media volume near the middle so presses are never at a limit.
Android Remote
Store release coming soon. Build the APK from source for now.
- Open the
android/folder in Android Studio (JDK 21, Android SDK 35) and run the app configuration, or build from the command line:cd android ./gradlew :app:assembleDebug adb install -r app/build/outputs/apk/debug/app-debug.apk - Allow Bluetooth, nearby devices (location on Android 12 and older), and notifications if asked.
- Draw the square to unlock, enter the host pairing code in Settings, and leave Host address or tunnel URL empty. Keep Bluetooth selected, or switch to Wi‑Fi.
Volume keys work while Stage Wand is in the foreground. Pocket use with the screen off depends on the phone maker; use NEXT and PREV if volume presses do not arrive.
Troubleshooting
Permissions, mostly.
Connected, but the Mac ignores input
Stage Wand needs Accessibility to send keys and pointer events. In System Settings → Privacy & Security → Accessibility, make sure the copy you are running is the enabled entry; remove stale entries from older builds, re-add the app, and relaunch. Draw the square to unlock touch controls and keep the presentation app frontmost.
Bluetooth direct stays on Connecting
Check Bluetooth is on for both devices. On a Mac, allow Stage Wand under Privacy & Security → Bluetooth. On Linux, run bluetoothctl show and confirm the adapter is powered. On Windows, turn Bluetooth on in Settings. Allow Bluetooth for Stage Wand on the phone, then relaunch the host. Only one Stage Wand host should be advertising nearby.
The phone cannot find the computer over Wi‑Fi
Allow Local Network on the iPhone (Settings → Privacy & Security → Local Network) and reopen the app. Or enter the computer's IP and port by hand, such as 192.168.1.20:8787, using the port the host shows. Guest networks often isolate devices; use your iPhone's Personal Hotspot instead.
Volume presses do not register
Keep media volume away from the maximum and minimum, and keep Stage Wand running. Reopen it after an audio interruption. The on-screen NEXT and PREV buttons always work once unlocked.
The pairing code was rejected
Read the current code from the host; disconnecting rotates it. After five failed attempts, wait 30 seconds or choose Disconnect & new code.
Linux says input is unavailable
Run stagewand-host --diagnose from the graphical session. The host needs a loaded uinput module and the seat ACL, which applies after you log out and back in. Do not add yourself to the input group.
Why does the phone lock its touch controls?
So a pocket brush cannot click or skip. Hardware volume buttons keep working while touch is locked. Trace the guided square deliberately to unlock; leaving the app or locking the screen relocks it.