Browse the docs

Privacy

Lists exactly what stays on your Mac, what goes to iCloud, what a shared macro leaves out, what the AI features send, and what an agent can see.

Switchboard is built so your macros and what they do stay on your Mac. This page lists every place where data can leave.

What stays on your Mac #

Everything lives in one folder, ~/Library/Application Support/Switchboard:

WhatWhere
Your macros and groupsLibrary/, one JSON file each
Version historyhistory/, and optionally a hidden .git folder in the Library
Traces of every runtraces.db
Shared variables (shared.*) and statestate.db
Settingssettings.json
What the palette learned from your pickspalette-picks.json
The local API tokenapi-token
Extensionsextensions/
  • Traces record each step's input and output, including text a macro typed and variables it read. They are kept for 30 days by default, up to 20,000 runs, and you can shorten that in Settings › Advanced › Traces. Failed runs are kept longer than successful ones.

  • The palette's learned abbreviations (palette-picks.json) hold what you typed in the palette and which row you chose, up to 2,000 pairs, so the same row comes first next time. They never hold results or what a row did, and a quicklink keeps only its keyword, not what you searched for. Turn it off, or forget everything, in Settings › Palette.

  • Your Anthropic API key, if you add one, is stored in the Keychain on this Mac only. It is never written to a file and never synced.

  • Your Switchboard sign-in token is also in the Keychain on this Mac only.

  • Version history with git is a local option (Settings › Sync › History). It never pushes anywhere.

Macros that run on their own use the on-device model and never send anything to a cloud model. Only Make with AI, below, does.

Local API and the command line #

The engine listens in two places so the editor, the switchboard command and switchboard-mcp can talk to it:

  • a Unix socket, readable only by your account (file mode 0600);

  • an HTTP port on 127.0.0.1 only, which requires a bearer token.

The token is created on first run and kept in api-token in the folder above. Anything that can read that file can drive the engine, so treat it like a password. The port is not reachable from other computers.

iCloud sync #

Settings › Sync › Sync through iCloud (on by default) lets your macros and Pad follow you to your iPhone through CloudKit (the Apple Watch gets its Pad from the iPhone), in your own private iCloud database. Apple holds the data under your Apple ID. Switchboard does not run a server that sees it.

What is synced is deliberately small:

  • For each macro you have exposed: its name, group, icon, inputs, approval setting, whether it is destructive, and its description. Never its steps.

  • A heartbeat from each Mac, so the iPhone knows if the Mac is awake.

  • Run requests from your iPhone or Watch, and their status: the macro, the inputs you typed in the form, and the current step as a sentence.

  • Approvals: the waiting step as a sentence, the list of the macro's steps as sentences, and your answer.

  • Your Pad order and your Sensors (their place coordinates and tag names).

Variables, traces, clipboard contents and the macro files themselves are not synced.

Turn the toggle off to stop all of it.

Sharing a macro #

Share… (File menu) shows you the exact file before it leaves. The sheet lists everything it removed, and why. Switchboard strips:

  • Secrets. Any parameter named password, token, secret, apiKey or key (in any capitalisation, with or without _ or -) is cleared, including the default of an input with such a name.

  • Shared variables. The value of a shared.* variable assignment is cleared. A reference like {{shared.name}} stays because it is only a name.

  • Keychain references. Anything that points into the Keychain ({{keychain.NAME}}, keychain:NAME) is cleared.

  • Home folder paths. An absolute path under your home folder becomes ~/…, so your user name does not leak.

  • Click positions. A locator's fallbackPosition, which records screen coordinates of your display, is dropped.

Everything else in the macro is shared as written. Read the preview. Text in a typeText step, a URL, an app name or a shell script goes as it is.

AI features #

Make with AI and Change with AI (⌃⌘M, ⌃⌘C) write a macro from a sentence. They use a cloud model, and only when you ask. You choose, in Settings › AI, between:

  • Off.

  • My Anthropic key. Requests go from your Mac straight to Anthropic with your key.

  • Switchboard's own model access (signed-in accounts, with a trial allowance). Requests go through Switchboard's relay to Anthropic.

What a request contains: your sentence, and names only for context: the apps you scoped the macro to (name and bundle id), the names, ids and one-line descriptions (first 120 characters) of up to 60 existing macros it may call, and installed extension actions. When you change a macro, it also sends that macro's name, triggers, conditions and steps, but not its history, traces or variables.

Descriptions. The one-line description under a macro's name (Macro > AI > Describe with AI) is written from the macro's blocks as sentences, never its raw file. It is written on this Mac by Apple Intelligence. Only when that model is unavailable, or the macro is too long for it, does it go to the cloud model you chose above; with the model off and no Apple Intelligence, nothing is written. Describe all after import runs on this Mac only.

If the first answer does not validate, one more request is sent with the validation errors. Nothing else leaves: no screen contents, no clipboard, no files.

Agents and MCP #

An agent connected through MCP sees only macros marked exposed. For those it can read:

  • the list of macros, their descriptions and inputs;

  • each macro's JSON as a resource;

  • the full trace of any run of an exposed macro, including each step's input and output. The "variables after the run" list is left out;

  • the 20 most recent runs of exposed macros.

It cannot see macros you have not exposed, their traces, or your Library folder. An agent can create a macro, but it is saved disabled and not exposed, so you review it first. Updating an exposed macro asks for your approval, and a macro you mark destructive always asks before it runs. Every agent run is tagged with the agent's name in Activity. See Agents and MCP.

Remember that an agent can read a run's step inputs and outputs. If an exposed macro handles something private, an agent that asks for its trace will see it.

Account and license #

Signing in sends your email to Switchboard's server to receive a sign-in code, and then your Mac's name, platform and app version to register this Mac against your license. Activating a license sends a hash of your hardware identifier, not the identifier itself. Checking for updates contacts Switchboard's update feed. You can pay three ways: Buy once (a year of updates, then renew for $29), Everything at $12 a month, or Founder; a build released after a Buy once license's updates date asks to renew.

Webhooks from the internet #

A webhook set to reach the internet gets an address on Switchboard's server, and a request to it is carried to your Mac over a connection your Mac opens. Until now the body only passed through. While your Mac is asleep or offline the server now keeps a request to a route that answers "accepted" (and has a key or a signature) so it can hand it over later: the body, the query (a key in the address included) and the headers except Authorization and Cookie, for at most 72 hours, then it is deleted unseen. A request is deleted as soon as your Mac has answered it. A route that waits for the macro's reply, or one you set to Refuse, is never kept. Settings › Webhooks shows what is held and Discard… deletes it at once. Nothing is read from a held body on the server.

Telemetry #

Switchboard has no usage analytics. It does not record what you automate or which macros you run. This build does not send crash reports.

The website #

The Switchboard website keeps first-party, cookieless counts of page views and clicks, stored on Switchboard's own server. It stores no IP address and sets no cookie: a visitor is a short hash of your address and browser that changes every day and can't be traced back or followed from one day to the next. It honours Do Not Track and Global Privacy Control, sending nothing when either is on. Some visitors are shown one of two headlines so we can learn which is clearer. None of this is in the app, which still has no analytics.

Clipboard #

The clipboard steps read, set and clear the clipboard when a macro runs. The clipboard panel shows only what the clipboard history recorded. That history is encrypted on this Mac, skips copies made while secure input is on or by password managers, and is never synced. Pinned copies stay until you unpin them, and Clear history keeps the pins.

Other apps' notifications #

A App notification trigger reads the Notification Center database on this Mac, which holds the title and body of every notification you have been sent. Switchboard Engine opens it read only, and only while a macro has such a trigger turned on; turning off the last one closes it. What a macro reads goes into its trace like any other value. Nothing from it leaves the Mac unless a step you wrote sends it.

What about permissions? #

Accessibility, Input Monitoring and Screen Recording let Switchboard act on your behalf. Switchboard uses Input Monitoring to match your hotkeys and typed triggers. See Troubleshooting permissions.