SwiftUI • MultipeerConnectivity • WatchConnectivity

Presentation Remote for Apple Fans

Control Keynote, PowerPoint, or Google Slides without dongles or cloud accounts. ClickerRemote pairs your Mac, iPhone, and Apple Watch using encrypted local networking so every tap lands exactly when you need it.

Mac 1.10ClickerRemoteReceiver
iOS 1.10ClickerRemote
watchOS 1.10ClickerWatch

Designed for stage control, not slide anxiety

Swift 5.9, SwiftUI, and Apple’s haptics toolkit combine for a tactile experience that mirrors the clickers pros carry on stage. Every surface follows the liquid glass aesthetic outlined in our product design language.

01

Peer-to-peer reliability

No external servers, accounts, or analytics. The Mac advertises Bonjour services and the iPhone joins instantly on the same network.

02

Cross-device control

Apple Watch double-tap gestures and Digital Crown rotation trigger the same RemoteCommand used by the iPhone UI, routed through WatchConnectivity.

03

Timer with haptic cues

Set presentation timers and feel pulses as milestones approach—ideal for keynotes with tight run-of-show schedules.

04

Menu bar minimalism

The macOS receiver lives in the menu bar, requests accessibility permissions once, and injects previous and next keystrokes for any frontmost app.

One system, three tailored experiences

Each binary ships with the right distribution channel: App Store for iPhone + Watch, notarized DMG for Mac. Shared Swift packages keep RemoteCommand and networking logic aligned.

iOS logo

ClickerRemote (iPhone)

  • Liquid glass vertical remote layout
  • Dark-only UI for backstage visibility
  • Subscription-ready with trials
  • Automatic Mac discovery via MultipeerConnectivity
  • Live Activities on Lock Screen & Dynamic Island
macOS logo

ClickerRemoteReceiver (Mac)

  • Signed + notarized DMG workflow
  • Menu bar controller and keystroke bridge
  • Hardened Runtime, accessibility permissions
  • DMG distributed on GitHub with Homebrew tap
Apple Watch screenshot

ClickerWatch (Apple Watch)

  • Installed automatically with iOS app
  • Digital Crown rotation for slide navigation
  • Double-tap gesture for hands-free next slide
  • Extended runtime session keeps app alive
  • Relays commands through iPhone instantly

Simple onboarding before showtime

Install the Mac App and iOS app. Test the iOS or Watch app. Connect your Mac to the screen.

Install the Mac receiver

Download the notarized DMG, drag `ClickerRemoteReceiver` to Applications, and grant accessibility control when prompted.

Pair the iPhone remote

Install from the App Store, open ClickerRemote, and select your Mac from the Bonjour list. No manual IP addresses required.

Activate the Watch

The Watch companion installs automatically. Use the Digital Crown, double-tap gesture, or on-screen buttons to control slides from your wrist.

Present with confidence

Swipe or tap to advance slides while the timer, haptics, and liquid glass UI keep you focused on your story.

Install via Homebrew

Get the Mac receiver up and running in seconds with Homebrew. No manual downloads or drag-and-drop required.

$ brew tap douinc/clicker https://github.com/douinc/clicker
$ brew install --cask clicker-remote-receiver

Architecture snapshot

Every layer is documented in the GitHub wiki and compiled via XcodeGen for reproducible builds.

Stack

  • Language: Swift 5.9 with shared RemoteCommand models
  • UI: SwiftUI
  • Networking: MultipeerConnectivity + WatchConnectivity
  • Build: XcodeGen + `just` automation
  • Platforms: macOS 14+, iOS 18+, watchOS 10+

Distribution

  • iOS & Watch: App Store via TestFlight pipeline
  • Mac: Signed + notarized DMG
  • Homebrew tap: Easily download and update ClickerRemoteReceiver Mac app using homebrew

Security posture

  • Local only: Commands stay on your network
  • Accessibility: Minimal permissions, once per Mac
  • Hardened Runtime: Required for notarization
  • Crown threshold: 3-detent threshold prevents accidental slide jumps

Need help or ready to contribute?

Everything—Swift code, wiki docs, and distribution scripts—lives on GitHub. File issues, follow TestFlight betas, or dive into the wiki if you want to extend Clicker to your stage setup.