Privacy, in short

Opsty makes one network request of its own, the update check, and you can turn it off. It has no account, no telemetry and no AI inside it, and what it keeps stays on your Mac. This is the short version; the full text, file by file, is on the privacy page.

What leaves your Mac

  • The update check. About a minute after Opsty opens, then about once a day, it asks dl.opsty.dev for one small file. It sends no account and no install ID. Downloading an update names the file it fetches, and fetching only the parts that changed can show the server which version you had. Settings ▸ Privacy ▸ Check for updates turns it off. More about the check.
  • Port previews, taken when you select a server on the Running list and only while it stays selected, load a page from your own Mac, and every request that would leave it is cancelled.
  • Notifications are macOS’s own, shown on this Mac.

Nothing else: no analytics and no crash reports. What you run in a tab, such as ssh, git push or an agent, uses the network as its own program.

What it reads, and what it runs

Everything it reads, it reads on this Mac, for something you can see: your ~/.ssh/config; its own hosts.toml; a folder’s listing when you open a folder picker; the manual pages of commands and words you ask about; a project’s manifest files; the names of your fonts when you open the font menu; every program your account runs that is listening on a TCP port, and the program file of one no tab started; the names of files that change while something runs; the names and dates of Claude Code’s conversation files for a tab’s folder, never their contents; three files in /etc/pam.d the first time sudo asks for a password; and, only when you click Import…, Terminal’s and iTerm2’s preferences.

The only programs Opsty starts on its own are macOS’s ps and lsof: ps to see what is running and in which tab, lsof to see which programs are listening on which ports and which program file one no tab started runs, both with name lookups off. When it downloads an update it also runs sysctl and uname once, to check it is on Apple silicon, and installing the update runs macOS’s ditto and Squirrel’s ShipIt installer.

It never runs a program on your behalf: a suggestion is placed on your line, and nothing runs until you press Enter, or click a button that shows exactly what it sends. Everything it reads.

What it keeps

Your settings, the servers you marked, the saved window, your command history (never output, with secrets removed, and nothing from a production server), the note of what was running and your imported themes, all in ~/.config/opsty. Downloaded updates wait in ~/Library/Caches/opsty-updater, with a few small files in ~/Library/Application Support/opsty. Only when you click does it copy the Quick Action into ~/Library/Services or become the app for ssh:// links.

Changed-file names, the away panel, Rewind’s snapshots, the list of servers on your Mac and port previews stay in memory, never on disk. Every file it writes.

Check it yourself

Opsty’s source isn’t public, so this promise can’t be read in its code. You can watch it instead, with tools your Mac already has; the privacy page shows the commands to run, and what they should print. If you ever see Opsty itself connect anywhere but dl.opsty.dev and your own Mac, that is a bug: please write to support@lonelyduck.io.