RDPeek
A Remote Desktop client for macOS, written in Swift. It connects to Windows PCs, and to Linux desktops that run an RDP server such as GNOME or xrdp.
Requires macOS 14 or later. Free and open source under the MIT license.
Build Server
ci @ build-01.lan
Last used 1 day ago
Gaming Rig
192.168.1.50
Last used 2 hr. ago
Home Server
admin @ nas.local
Last used 6 days ago
Lab Bench
dev @ lab-bench.lan
Last used 2 wk. ago
Media Center
living-room-pc.local
Office Desktop
jordan @ 10.0.1.7:3390
Last used 3 days ago
Test VM
win11-test.local
Last used 40 min. ago
Windows Laptop
windows-laptop.local
Last used 5 min. ago
This is a working copy of the main window. Click a PC to select it and give it a new color, double-click it to connect, or right-click it.
Your PCs
Every PC you save gets a tile with a color of its own, picked when you add it. Search by name, host or user name, sort by name or by when you last connected, and open a PC with a double-click, the play button that shows on hover, or Return.
Adding a PC takes only a host name or an IP address. The display name, the account, and whether to share the clipboard or play the remote computer’s sound are optional, and you can change them later. In the app, press ⌘N; here, use the sheet below.
New PC
New PC
PC
Credentials
Options
Type a host to see the tile take its name. Save adds the PC to the grid at the top of the page.
Sessions
A session window is the remote desktop under a slim titlebar. The titlebar shows whether you’re connected and holds the ⋯ menu: Disconnect, the clipboard and audio switches, which displays to show, a performance overlay, and Stats for Nerds.
The remote desktop starts at your screen’s size and follows the window as you resize it, HiDPI aware. A remote computer with several displays keeps its own layout, and you choose which of them to show. Office Desktop, in the grid above, has two.
Video arrives as H.264, in AVC420 or AVC444, and is decoded in hardware by VideoToolbox. Frames are presented on the display link, in time with your screen’s refresh.
Keyboard
While a session window has your keyboard, shortcuts with ⌘ or ⌃ go to the remote computer instead of your Mac. Click the remote desktop above and press ⌘R: the remote gets Win + R and opens its Run dialog.
| On your Mac | On the remote computer |
|---|---|
| ⌘ Command | Windows key |
| ⌃ Control | Ctrl |
| Left ⌥ Option | Alt |
| Right ⌥ Option | The character it types on your Mac, such as @ for ⌥L on a German layout, and Alt otherwise |
The remote computer is told your Mac’s keyboard layout. Keys that type the same character there are sent as keys, so input methods on the remote see them, and anything else is sent as text. When the window loses focus, keys you were holding are let go on the remote, so none get stuck.
Shortcuts in RDPeek
- ⌘N
- Add PC
- Arrow keys
- Select another PC
- Return
- Connect to the selected PC
- ⌘E
- Edit the selected PC
- ⌘D
- Duplicate the selected PC
- Delete
- Delete the selected PC
- ⌘R
- Reconnect a session that ended
- ⌘.
- Cancel connecting
- ⌘,
- Settings
⌘? opens Help with the rest. While a session has your keyboard, RDPeek’s own ⌘ shortcuts go to the remote too, so its commands are also in the ⋯ menu and the Session menu.
Clipboard
Text and files copy both ways between your Mac and the remote computer. Clipboard sharing is set for each PC, so you can keep it off for a machine you don’t trust.
With sharing on, the clipboard is shared for the whole session, and Sync Clipboard Now sends your latest copy if the remote doesn’t have it yet. With it off, Share Clipboard for 30 Seconds turns it on just long enough to move something across. Both are in the ⋯ menu of the session window above.
Passwords and certificates
Passwords are kept in your Keychain, one item per account, host and port, and removed when you delete the last PC that uses one or stop remembering it. If you’d rather not save a password, the session window asks for it when you connect, and RDPeek keeps it in memory until you quit. Saved PCs live in the app’s preferences and never include a password.
When your Mac doesn’t trust a server’s certificate, RDPeek stops before any credentials are sent and shows a warning like the one below. Trust and Connect pins the certificate’s SHA-256 fingerprint to that host and port. If the server later shows a different certificate your Mac doesn’t trust, the connection stops again and says the certificate changed.
A server that signs in with an outdated version of Network Level Authentication, CredSSP without the 2018 security update, is refused before any password is sent. Connect Anyway lets it sign in for that one connection, except on a server the session was passed on to, such as by a load balancer.
RDPeek has connected and received this certificate, but hasn’t sent any credentials.
Open source
RDPeek is free, and its source is on GitHub under the MIT license. The Remote Desktop Protocol itself is handled by RDPKit, a pure Swift RDP library built on Apple’s media, security and networking frameworks.
What changed in each version is in the changelog.