Stop digging through
System Settings to toggle
Private Relay

A tiny macOS menu bar app. One click or Cmd+Shift+P to turn iCloud Private Relay on or off. Free.

Download for macOS macOS 15+ · Apple Silicon · v1.0.0

Apple buried it three levels deep

iCloud Private Relay is great for privacy, but it silently bypasses your custom DNS. Pi-hole, AdGuard, NextDNS, local network resolvers — all ignored while Private Relay is on. When a website breaks or your network filtering stops working, you need to turn it off.

That means opening System Settings, clicking into Apple Account, clicking iCloud, scrolling to Private Relay, clicking into it, flipping the toggle, and confirming the dialog. Six clicks, three levels deep. And Apple provides no API, no terminal command, no URL scheme on macOS to do it faster. We checked.

Custom DNS bypassed

Private Relay routes around your local DNS. Ad blocking, parental filters, security rules — all ignored.

Websites breaking

Some sites block relay traffic or misidentify your location. Quick disable, fix it, re-enable.

Network debugging

Diagnosing connectivity? Private Relay adds a proxy layer that makes troubleshooting harder.

Six clicks every time

Apple Account → iCloud → Private Relay → toggle → confirm. Every. Single. Time.

Features

Menu bar native Lives in the menu bar. No Dock icon, no window. Click the icon to see the current state and toggle.
Global hotkey Press Cmd+Shift+P from any app to toggle without touching the mouse.
Smart disable Turn off completely or just until tomorrow. The hotkey defaults to “until tomorrow” for quick troubleshooting.
Launch at login Set it once. Toggle Private Relay starts automatically when you log in.
Notifications Confirms every toggle with a macOS notification so you always know the current state.
Signed & notarized Code-signed with a Developer ID and notarized by Apple. No Gatekeeper warnings.

How it works

Opens System Settings via a deep link to the iCloud pane

Navigates to iCloudPrivate Relay using the macOS Accessibility API

Flips the toggle, handles the confirmation dialog, reads the new state

Updates the menu bar icon, posts a notification, and closes System Settings

System Settings flashes briefly during the toggle — this is unavoidable. Apple provides no API for Private Relay. The Accessibility API requires the UI to be rendered. Built with Swift and AppKit. Runs as a lightweight agent app with minimal memory footprint.

What you need

macOS 15 Sequoia or later
iCloud+ subscription
Accessibility permission

Questions

Is it free?
Yes. Free, no ads, no tracking, no subscriptions.
Why does it need Accessibility permission?
Apple provides no API for toggling Private Relay. The app uses the macOS Accessibility API to interact with the toggle in System Settings on your behalf. It does not read or record any other information from your screen.
Why does System Settings flash briefly?
The Accessibility API requires the UI to be rendered. The app opens System Settings, navigates to the toggle, flips it, and closes the window — all in under a second. There is no way around this without an API from Apple.
Will it work on macOS 16?
It should, assuming Apple does not significantly change the System Settings layout. The app uses recursive search rather than hardcoded UI paths, which makes it resilient to minor changes. Check back here for updates if a new macOS version breaks it.
Can I customize the keyboard shortcut?
Not yet. The default is Cmd+Shift+P. Customizable shortcuts are on the roadmap.
Private Relay turned itself back on. Can the app detect that?
Not currently. Private Relay is a server-side iCloud setting — there is no local state file, no API, and no observable system property on macOS that reports whether it is on or off. Apple can re-enable it silently after an OS update, an iCloud sync, or when an “until tomorrow” timer expires. The only way to read the current state is to open System Settings and inspect the UI via the Accessibility API, which is too disruptive for background polling. When you toggle via this app, the menu bar icon reflects the last known state, but it cannot detect changes made outside the app.