Turn your iPhone, iPad or Android phone into a trackpad, keyboard and button
deck for your Mac.
No app to install on the phone. No account. Nothing leaves your network.
|
1. Install on your Mac |
2. Scan the QR code |
3. You're in control |
|
|
ALSO FROM RS APPLICATION WinPalm brings the same phone-to-computer idea to Windows, with native Windows input and integrations. Turn your phone into a Windows trackpad, keyboard and shortcut deck. |
Pair as many phones and tablets as you like. Each one's settings, custom keyboards and gestures are kept on your Mac too, so they survive a cleared browser. Use Copy settings from another device to choose individual settings sections and custom keyboards. Only your selection is added or updated; the rest of your setup stays as it is. Deck pages and buttons are already shared by all devices paired with the same Mac.
Use Settings → Back up or restore this device on the phone to export your settings and custom keyboards as a file, or review and restore a saved setup. Device backups leave your name and pairing as they are and never contain pairing tokens. Export the shared Deck separately from Settings → Deck on the Mac.
|
Presenting |
Movie night |
Cooking |
|
Gaming |
Streaming |
Quick replies |
|
Local only |
Only devices you pair |
|
One switch to stop everything |
Encrypted when you want it |
Read SECURITY.md for the full details.
- A Mac with Apple silicon, running macOS 15 Sequoia or later.
- An iPhone or iPad with iOS 17 or later, or an Android phone, on the same network as the Mac. CmdPalm works in Safari, Chrome, Firefox and Samsung Internet.
With Homebrew
brew install --cask rahatsagor/tap/cmdpalmOr download it
-
Download CmdPalm.dmg and drag CmdPalm into Applications.
-
CmdPalm is free and open source, and it isn't notarized by Apple yet, so macOS asks you to confirm the first time it opens. Run this once in Terminal:
xattr -dr com.apple.quarantine /Applications/CmdPalm.app
Or open CmdPalm, then go to System Settings → Privacy & Security and click Open Anyway.
-
Open CmdPalm from Applications. It appears in the menu bar.
You only do this once. Updates install from inside the app, and Homebrew skips this step for you.
The CmdPalm docs explain every screen, setting and button in detail, from getting started to the encrypted connection and troubleshooting.
- Allow Accessibility. macOS requires it for any app that moves the pointer or types. CmdPalm asks on first launch and opens the right page in System Settings.
- Scan the QR code in the menu bar with your phone's camera. You can also open the address shown under the code and enter the six-digit PIN while the CmdPalm menu is open. CmdPalm remembers the phone, so it reconnects on its own next time.
- Add it to your home screen for a full-screen app:
- iPhone and iPad: Share → Add to Home Screen.
- Android: Chrome installs web apps only over an encrypted connection. Set it up from Settings → Phone Setup → Encrypted Connection on the Mac, then install CmdPalm from Chrome's menu. Without it, Chrome can add a shortcut that opens in a browser tab.
Tip
If scanning the QR code on an Android phone doesn't open CmdPalm, set
QR link uses to IP Address under the QR code. Some Android phones
can't open .local names.
Browsers allow the microphone only over an encrypted connection. Open Settings → Phone Setup → Encrypted Connection on the Mac, install the certificate on your phone as shown, then pair with the Encrypted link. Without it, everything else works, and you can still dictate with the microphone button on your phone's keyboard.
Your Mac recognises the speech itself, so voice typing needs on-device recognition for your language. If CmdPalm says it isn't available, turn on Dictation in System Settings → Keyboard so macOS downloads it, or pick another language.
| On the trackpad | Does |
|---|---|
| Tap | Click |
| Two-finger tap | Right-click |
| Touch and hold, then move | Drag |
| Tap, then touch again and move | Drag |
| Two-finger move | Scroll |
| Drag the scroll strip on the edge | Scroll; hold the short strip at the top or bottom to keep going |
| Pinch | Zoom smoothly, as on a Mac trackpad (or ⌘+ and ⌘−) |
| Turn two fingers | Rotate photos, maps and PDFs |
| Two-finger double-tap | Smart zoom (turn it on in settings) |
| Three-finger swipe up / down | Mission Control / App Exposé |
| Three-finger swipe left / right | Switch spaces |
| Three-finger tap | Middle click |
| Three-finger move | Drag (turn it on in settings; three-finger swipes then turn off) |
| Four-finger swipe up / down | Apps (Launchpad on macOS 15) / Show Desktop |
| Thumb and three fingers pinch / spread | Apps / Show Desktop |
The scroll strip can be short, long or hidden under Scrolling & zoom in the phone's settings. It can also be wider, and sit right at the screen edge so a finger sliding along the side of the phone scrolls. Every gesture can be changed in the phone's settings. Turn on Show advanced settings for pointer acceleration, gesture mapping and text options.
Modifiers work three ways: tap for the next key only, double-tap to lock, or hold while you press another key or click. The hand button in the top bar lets go of every held key and button at once.
The phone can't reach the Mac
Both need to be on the same network. Guest networks and some office or hotel Wi-Fi block devices from talking to each other. If scanning the QR code doesn't open CmdPalm, set QR link uses to IP Address under the QR code. Check that the macOS firewall allows incoming connections for CmdPalm.
The pointer stopped moving after an update
macOS ties the Accessibility permission to the app's signature. If CmdPalm is listed and switched on but nothing happens, select it in System Settings → Privacy & Security → Accessibility, remove it with the – button, then add it again.
Keys type the wrong characters
CmdPalm follows the Mac's current input source. For apps that ignore typed text, such as games, virtual machines and remote desktops, set Send text as to Key presses in the phone's advanced settings and turn Live off in the typing panel. Live typing always sends characters.
Using a VPN, your own DNS name or a reverse proxy
Most people never need this. If you connect your devices some other way, CmdPalm can go along with it:
- A VPN or mesh network (WireGuard, Tailscale, ZeroTier and the like): in Settings → Phone Setup, set Address in the QR code to Custom and pick the Mac's VPN address from the menu next to the field.
- A name from your own DNS, such as
studio.home.arpa: type it in Custom. CmdPalm accepts connections that use that name. - A reverse proxy on the Mac (Caddy, nginx, or a VPN's HTTPS sharing):
point it at
http://localhost:8790, type itshttps://address in Custom, and turn on Accept connections through a proxy on this Mac under Settings → Advanced. The phone then gets an encrypted connection from the proxy's certificate.
Each address is a separate site to the phone's browser, so pair once for each address you use.
Something else
The troubleshooting docs cover
more problems. Logs are in ~/Library/Logs/CmdPalm, and they never contain
what you type.
Please include them when you
open an issue.
You need Xcode, Rust, Bun and XcodeGen.
brew install xcodegen
scripts/build-app.sh # build/Release/CmdPalm.appCONTRIBUTING.md covers the project layout and development workflow. Bug reports and ideas are welcome as issues; the project does not accept pull requests.
© 2026 CmdPalm. Free and open source under the GNU Affero General Public License v3.0. You may use, study, share and modify CmdPalm, but anything you distribute or offer to others that is based on it must be released under the same license, with its full source code.







