What AgentBarista reads on your Mac

To know whether an agent is working, something has to observe something. Here is exactly what that is, exactly what leaves your machine, and how to check both yourself without taking our word for it. The uncomfortable part is in here too.

Short version: by default the app reads the OS process list and the modification times of agent session files. It never opens your files. Nothing about your work is transmitted, ever. The only things that leave your Mac are a licence check and an update check, and neither carries anything about what you were doing. One optional permission changes this — turn on Accessibility and the app reads on-screen text from the agent windows you enable, which for a terminal or editor can include your code. It stays in memory and is never stored or sent, but you should decide about it knowingly. It is off unless you grant it.

On your machine

The three things it looks at

All three are read locally, used to answer one question — is an agent working right now — and then discarded.

  • The process list. Names, full command lines, and CPU usage, the same thing ps shows you. Worth knowing: a command line includes any prompt text passed on it.
  • Session file names and timestamps. The names and modification times of agent session files, so it can tell that an agent waiting on a model reply is still working even at zero CPU. The contents of those files are never read.
  • On-screen text — only if you grant Accessibility. Optional and off by default. When on, the app reads text from the agent windows you enable and matches it against short status phrases in memory. For a terminal or code editor that text can include your code. It is never written to disk, never enters the log file, and never leaves the Mac. Without the grant this input simply does not run.
Off your machine

What actually gets sent, and to whom

Two requests, both unrelated to your work. There is no analytics SDK and no telemetry in the app.

  • Licence check to Lemon Squeezy, our payment provider, if you bought a licence. It carries your licence key, the activation id they issued, and a device name — your Mac's hostname, which may contain a name you chose. It exists to enforce seats. It never carries file contents, paths, prompts, or activity.
  • Update check fetches a static version file from agentbarista.com so the app knows whether a newer build exists. It carries no personal data, no licence information and no activity data — but like any web request it does expose your IP address to our hosting provider. You can turn it off in Settings.

Your settings and your local usage statistics stay on your device. The statistics are counters — seconds and session counts — with no content in them, and they are never uploaded.

Permissions

What macOS will ask you for

  • Nothing, to start. The default keep-awake path runs an ordinary caffeinate process. No admin prompt, no helper, no background daemon installed.
  • Accessibility — optional, but it depends which agent you use. Command-line agents like Claude Code and Codex are detected without it, from process and session-file signals alone. Editor agents that run inside a GUI app, such as Cursor and VS Code, have no such signal — for those, this permission is what makes detection work at all.
  • Your password, once, only if you turn on lid-closed mode. Keeping a Mac awake with the lid shut is not something caffeinate can do; it needs a system power setting that requires authorisation. The app restores that setting when the work ends and when you quit. If it ever gets stuck on — the app crashed, was force-quit, or was deleted while the setting was live — there is an Emergency Restore Sleep Settings button in Settings, and the one-line manual fix sudo pmset -a disablesleep 0, also written up on our support page.
Don't take our word for it

Check it yourself

All of this is observable from your own terminal while the app runs.

  • pmset -g assertions — shows every keep-awake hold on your Mac, including ours.
  • pmset -g | grep SleepDisabled — shows whether lid-closed mode is currently engaged.
  • lsof -nP -iTCP -a -c AgentBarista — shows the app's network connections open at that instant. Because both our requests are brief, a single run will usually show nothing; to watch properly, poll it in a loop, or point a network monitor such as Little Snitch at the app and leave it running for a day.
  • ~/Library/Logs/AgentSleepGuard.log — the app's own log of what it decided and when.

If you find something here that does not match what the app does, that is a bug and we want to hear about it: support@agentbarista.com.

This page is a plain-English summary written for people who want the answer in two minutes. The binding document is the Privacy Policy, and section 3 covers the same ground in full. If the two ever disagree, the Privacy Policy is the one that counts — and tell us, because it means this page needs fixing.