Use the Apple TV Siri Remote as a wireless trackpad, button input, and dictation microphone for your Mac.
iRemote is a menu-bar app for macOS that turns Apple Siri Remote into a useful input device for your Mac. The touchpad becomes a focus-and-click navigator for the system UI, the MENU button toggles the iRemote menu, and the Siri/microphone button captures audio that's transcribed locally with whisper.cpp and pasted into the focused app.
Status: v1.0.0 — first public release. Tested on macOS 26 (Tahoe) on Apple Silicon with the 1st-generation Apple TV Siri Remote.
- Touchpad → focus navigator. Slide your finger across the remote's touchpad to move a focus indicator across the screen. UI elements light up as you pass over them; click the touchpad to activate the highlighted control. Single, double, and triple clicks are all supported.
- MENU button → iRemote menu. Press the MENU button on the remote to toggle the iRemote menu-bar menu. No need to reach for the cursor.
- Siri/mic button → local dictation. Hold the Siri button to record; release to transcribe. Audio is decoded from the BLE stream and transcribed entirely on-device using whisper.cpp. The transcript is pasted into the frontmost text field.
- Multilingual dictation. Whisper handles ~99 languages. iRemote ships an extra Mandarin punctuation prompt that significantly improves Chinese transcription quality, plus an automatic punctuation-normalisation pass that produces fullwidth punctuation in Chinese contexts and halfwidth punctuation in English contexts — no manual switching.
- Whisper model manager. A built-in window lets you download additional Whisper models from Hugging Face (tiny / base / small / medium / large-v3 / large-v3-turbo / English-only variants), switch the active model on the fly, and delete unused ones.
- Live Bluetooth-access status. The menu shows whether iRemote is currently receiving BLE traffic from the remote and surfaces a one-click affordance to install the Apple Bluetooth Logging Profile if it's missing (see Setup below).
- Touchpad calibration. A built-in calibration flow learns the orientation of your remote so the touchpad axes match your screen, regardless of how you hold the remote.
- An Apple Silicon Mac running macOS 14 (Sonoma) or later.
- An Apple TV Siri Remote (1st generation) — the silver one with a touchpad on the top half.
- 2nd generation and later remotes are not currently supported; they use a different BLE protocol that this project does not decode. Future updates will support them.
- The remote must be paired to your Mac in System Settings → Bluetooth like any other Bluetooth peripheral.
| Dependency | Why | How to get it |
|---|---|---|
| macOS 14+ | Modern AppKit + AX APIs used by the focus driver. | Built-in. |
| PacketLogger | Apple's Bluetooth packet-capture CLI; how iRemote sees the remote's BLE traffic. | Bundled with Apple's Additional Tools for Xcode. Install the .dmg, then drag PacketLogger.app to /Applications/ (or ~/Downloads/, ~/Applications/ — iRemote searches all four). |
whisper.cpp whisper-cli |
Local transcription. | brew install whisper-cpp (Apple Silicon: /opt/homebrew/bin/whisper-cli). |
| Bluetooth Logging Profile | Apple's diagnostic profile that grants PacketLogger access to private BLE traffic. Without it iRemote cannot see remote events. | iRemote opens Apple's direct download link for you when the profile is missing — just click "Install Bluetooth Profile…" in the iRemote menu. Sign in with your Apple ID, the download starts automatically, then approve the install in System Settings → Privacy & Security → Profiles. |
- Grab the latest
iRemote-vX.Y.Z.dmgfrom the Releases page. - Drag
iRemote.appto your/Applications/folder. - Launch it. The icon appears in your menu bar.
The build is ad-hoc signed (not notarized). The first launch may prompt Gatekeeper; right-click the app and choose Open, then Open again on the confirmation dialog.
See BUILDING.md.
The first time you launch iRemote, walk through the four prerequisites:
- Pair the remote. System Settings → Bluetooth → put the Siri Remote into pairing mode (hold MENU + Volume Up for ~5 s) → pair.
- Install PacketLogger. Download "Additional Tools for Xcode" (see Requirements) and drag
PacketLogger.appinto one of the searched directories. - Install whisper.cpp.
brew install whisper-cpp. - Install the Apple Bluetooth Logging Profile. Open the iRemote menu. The "Bluetooth Access" row tells you the current state. When it reads "Setup needed", hover the row — it morphs into "Install Bluetooth Profile…" — and click it. Your browser opens Apple's direct download URL for
Bluetooth_macOS.mobileconfig. Sign in with your Apple ID; the download starts automatically. Approve the install in System Settings → Privacy & Security → Profiles.- The profile is Apple-confidential and cannot be redistributed; iRemote points you at Apple's direct-download URL instead of bundling the file.
- Grant Accessibility permission. iRemote uses macOS's Accessibility APIs to read on-screen UI and post clicks. On first launch, macOS will surface a permission prompt — grant it in System Settings → Privacy & Security → Accessibility.
- Download a Whisper model. On first launch, iRemote's "Manage Whisper Models…" window opens. Pick a model — Small is the default and the best speed/accuracy balance for most users — and click the cloud-download icon. The model is cached at
~/.cache/whisper/. - Calibrate the touchpad (optional but recommended). iRemote menu → "Calibrate Touchpad…" → follow the on-screen instructions. Takes 10 seconds.
- Move the focus dot. Slide your finger across the touchpad. UI elements highlight as the focus crosses them.
- Click. Press the touchpad. Double-click and triple-click work the same way they do with a real mouse (within macOS's standard double-click interval).
- Open the iRemote menu. Press the MENU button on the remote.
- Dictate. Hold the Siri/microphone button (the one with the icon below the touchpad). Release to transcribe. The transcript is pasted into whichever app is frontmost.
- Switch Whisper models. iRemote menu → "Manage Whisper Models…" → select a row → "Use Selected".
- Pause/resume. iRemote menu → "Pause Listener" / "Start Listener". Pausing stops the BLE capture pipeline, which fully releases the remote.
Out of the box, iRemote uses Whisper's auto language detection. The model decides per-utterance.
- Pure English audio is transcribed accurately with any model size; punctuation comes out as standard ASCII.
- Pure Mandarin audio benefits significantly from iRemote's built-in punctuation prompt: clauses get fullwidth commas (
,), sentence ends get fullwidth periods (。), and questions get fullwidth question marks (?). - Mixed English/Mandarin audio is handled by iRemote's post-pass punctuation normaliser: punctuation marks adjacent to CJK characters become fullwidth; marks adjacent only to Latin characters stay ASCII.
- Other languages are transcribed by Whisper directly. Punctuation handling for languages other than English and Mandarin is whatever the underlying model produces — no extra processing.
To pin the language, set the IREMOTE_WHISPER_LANG environment variable before launching (e.g. launchctl setenv IREMOTE_WHISPER_LANG es for Spanish).
iRemote captures Bluetooth traffic and audio. It does not send any data off your Mac.
See PRIVACY.md for the full data-handling notes.
iRemote is released under the MIT License.
Third-party components used:
- whisper.cpp (MIT) — local transcription.
- Apple SF Symbols — built-in macOS, used under Apple's standard license.
- Apple PacketLogger (Additional Tools for Xcode) — used as an external dependency only; not bundled.
- Apple Bluetooth Logging Profile — not bundled. Users download directly from Apple.
The 1st-generation Apple TV Siri Remote is a trademark of Apple Inc. iRemote is an independent open-source project and is not affiliated with or endorsed by Apple.
Bug reports and pull requests welcome. Please open an issue first for non-trivial changes so we can discuss approach and avoid duplicated work.
See BUILDING.md for how to get a development build running.
iRemote stands on the shoulders of:
- The whisper.cpp project for excellent on-device transcription.
- The macOS Bluetooth stack and Apple's PacketLogger tool for making BLE diagnostics tractable.
- Years of community reverse-engineering work on the Siri Remote's HID and BLE protocols.