MacKeyHost
A Mac companion app that turns your Mac into an input target for Vision Pro — type and click using spatial input.
What MacKeyHost is
MacKeyHost is a small macOS app that lets your Apple Vision Pro drive the Mac sitting next to it. Once you launch MacKeyHost on the Mac and pair it from vmux on the Vision Pro, every keystroke from the spatial virtual keyboard and every motion from the visionOS trackpad ornament gets re-emitted as a real macOS keyboard or mouse event. macOS sees a normal CGEvent — Finder, Safari, Xcode, Terminal, your password manager, Mail, Messages — and reacts as if you were typing on a hardware keyboard plugged into the Mac itself.
The Mac does not need to be in the same room as the Vision Pro, only on the same local network or close enough for Apple's peer-to-peer wireless transports to find each other. Pairing happens automatically over Multipeer Connectivity. There is no relay server, no Apple ID lookup, and no manual code entry.
What you'd actually use it for
- Type long passages into a Mac app while wearing the Vision Pro. The spatial virtual keyboard becomes your Mac keyboard. Drafting an email, filling out a form, writing code in a Mac IDE — all of it now accepts spatial input without you taking the headset off.
- Click around macOS using gaze and tap, or the visionOS trackpad ornament. The Vision Pro pointer becomes a real Mac cursor that moves, clicks, drags, and scrolls.
- Drive the Mac while the visionOS view is the main display. If you mirror the Mac to a virtual visionOS window, MacKeyHost is the missing input half — output goes Mac → Vision Pro, input goes Vision Pro → Mac.
- Quick text capture on a Mac you don't sit at. Leave MacKeyHost running on a Mac at your desk; from across the room with the Vision Pro on, paste a snippet, run a one-line shell command, or unlock a session.
MacKeyHost does not show the Mac's screen on the Vision Pro. It is purely an input bridge. For viewing the Mac's display you can use macOS Mac Virtual Display (built into visionOS) alongside MacKeyHost, or run ssh / vmux into the Mac if you only need text.
How it fits together
Vision Pro Mac
| |
| spatial keyboard / trackpad ornament |
v |
vmux ----- Multipeer Connectivity ---------> MacKeyHost
(encrypted, AWDL/Wi-Fi/BLE) |
v
CGEvent / Accessibility
|
v
Frontmost Mac appvmux on the Vision Pro encodes each spatial keystroke or pointer motion as a small JSON envelope and sends it over Apple's Multipeer Connectivity link with encryptionPreference: .required. MacKeyHost on the Mac decodes the envelope and turns each event into a CGEvent posted at cghidEventTap, the same event tap used by physical USB keyboards. macOS routes the event to whichever app is currently frontmost, exactly as if it had come from a connected hardware device.
System requirements
| Requirement | Minimum |
|---|---|
| macOS | macOS 14 Sonoma or later, Apple silicon or Intel |
| Vision Pro | Apple Vision Pro running visionOS 2 or later, with vmux installed |
| Network | Both devices on the same Wi-Fi network, or both within Bluetooth range |
| Permission | Accessibility permission granted to MacKeyHost on the Mac |
| Disk | About 4 MB on the Mac |
| Memory | Negligible — typically under 25 MB resident |
The Vision Pro and the Mac do not have to be signed in to the same Apple ID, but it helps. macOS uses the system identity ring to pre-trust devices on the same iCloud account, which makes peer discovery faster.
Why Accessibility permission is required
Posting synthetic keyboard and mouse events on macOS requires Accessibility permission. This is the same gate that tools like Karabiner-Elements, Rectangle, and BetterTouchTool live behind. Without it, MacKeyHost cannot inject any events — your keystrokes from the Vision Pro will arrive at MacKeyHost (the on-screen counter ticks up) but macOS will silently discard the synthetic CGEvent.
Granting Accessibility is a one-time step the first time you launch MacKeyHost. The app detects the missing permission and shows a banner that links straight to the right pane in System Settings.
See Security and permissions for the full threat model.
What MacKeyHost is not
- It does not stream the Mac's screen. Use macOS Mac Virtual Display for that.
- It does not transfer files or the clipboard. Use Universal Clipboard or AirDrop.
- It is not an SSH client. For text-only Mac access from anywhere on the internet, see vmux on visionOS.
- It is not the same as vmuxAgent, which forwards SSH signing requests from a Mac to an iPhone. MacKeyHost goes the other direction — it makes the Mac a follower of the Vision Pro.
Where to go next
- Getting started — install, grant Accessibility, first paired keystroke.
- Pairing with Vision Pro — Bonjour discovery, what happens on each side.
- Input injection — how keys and mouse events become
CGEvents, and what the limits are. - Security and permissions — Accessibility, encrypted transport, untrusted peers.
- Troubleshooting — symptoms and fixes.
For the broader app family, see all vmux apps and the security overview.