The purpose-built option — honest status
What AgentBarista does today for ZCode
Straight answer: ZCode is not in AgentBarista’s built-in agent
list, and we would rather say that here than let you find out after paying. Its public
repository was created on 20 September 2026. Our rule for adding a product is that we run it on a real
Mac and watch the detection work before we ship it, and we have not done that yet.
For the Mac app. For the products in our
built-in list, the on-screen-text signal resolves an app by its exact bundle identifier, and ZCode has
no entry, so out of the box it is invisible to us. You can add it as a custom app. Two things then
happen, and neither is what people assume. Its on-screen text does get read — if you have
granted macOS Accessibility — but matched against your own phrase lists, not any we
ship for ZCode, so you are writing that detection yourself. And merely having ZCode open does not hold
sleep: that registers as presence, which is not enough on its own. What holds sleep is one of two
things: an active phrase you wrote matching ZCode’s on-screen text, which needs no CPU
at all, or the app and its children crossing a CPU threshold, 8% by default. An idle phrase
holds nothing. So the custom route can cover an agent that is waiting on a model — but only as
well as the phrases you write, and we have not written any for ZCode.
For the terminal agent, the honest answer is that we
cannot see it, and the reason is worth stating exactly. A custom-app entry is matched loosely
— in both directions — against the process name and its executable path. It is never
matched against the rest of the command line. Because ZCode’s zcode wrapper
execs Node, the executable path is Node’s, and the only ZCode-specific string
— the script path — lives in the arguments, where our matcher does not look. So there is
nothing for a custom entry to match on. An entry of node would match, but user-added apps
are CPU-trusted, so that one entry would hold your Mac awake for every Node process on the machine
— every dev server, every Node-based CLI, anything whose path merely contains
node — and their CPU is summed into a single total, so one busy process is enough.
That is not a usable answer and we are not going to dress it up as one. For the terminal agent, use caffeinate -i zcode.
So a custom entry is a reasonable convenience for interactive
use and the wrong tool for an unattended overnight run. We have not run ZCode on a Mac of ours; treat
this section as reasoned from how our matching works, which we can read, rather than from something we
have measured. One scope worth being exact about: our battery and thermal cutoffs release the hold
we placed. If you run caffeinate -i zcode yourself, that assertion is yours, not
ours, and we will not drop it at your battery floor or at thermal critical. On battery overnight, stay on power — or give the
hold a hard ceiling: caffeinate -i -t 28800 zcode drops the assertion after eight hours
even if the run is still going, and releases it early when zcode exits. (caffeinate’s
man page claims -t is ignored when a utility is invoked. On current macOS it is not
— we measured it.) Plugged in, the battery half stops mattering; the thermal risk
does not — a MacBook running docked with the lid shut is where heat bites
hardest — and the same ceiling helps there too.
Not in the built-in list
Its public repository was created on 20 September 2026. We add a product after watching it work on a real Mac, not before — and ZCode’s two shapes need measuring separately.
The app is invisible out of the box
We hold no bundle id for ZCode. A custom entry works, but you supply the status phrases, and CPU — 8% by default — is the only fallback, which a cloud model barely moves. For the terminal agent there is nothing to match at all: use caffeinate.
Has a safety net regardless
A battery cutoff, plus a one-click restore — it asks for your password once — for the rare case a crash leaves sleep disabled. True for every app AgentBarista watches, built-in or not.
ZCode (not built in — see above)
Claude Code
Cursor
Codex
Gemini CLI
Copilot CLI
OpenCode
Zed
Claude
ChatGPT
+ more
Worth saying plainly: there are a lot of tools in this category
now, including free and open-source ones like Keepresso and adrafinil that read agent hooks — a
more accurate signal than guessing from CPU. If you’re a solo dev running one agent, either is a
reasonable choice. Where we put our effort is being straight about which agents we have actually measured
— which is why this page tells you ZCode isn’t one of them yet, and why it just told you
the custom-app route won’t work for the command.
It runs on your Mac. AgentBarista never opens your files. To tell a working agent from a finished one it looks at process command lines and CPU, at the names and modification times of your agents' session files, and — only if you grant macOS Accessibility permission — at the on-screen text of the agent apps you enable and of the terminals we support. Two of those can contain your own words: a command line includes any prompt you pass on it, and on-screen text includes whatever is visible in that window, your code included. Both are matched against status phrases on your Mac and discarded on the spot: never stored, never sent. Nothing about your work leaves your Mac — no file contents, no code, no prompts, no file names, no activity data. Your stats and settings stay on this Mac. The app contains no analytics or telemetry of any kind. Its network calls are two: license validation, sent to our payment provider, Lemon Squeezy — activating a license sends your license key and your Mac’s name, and the routine check after that sends your license key and an anonymous instance id, nothing else — and an update check that fetches the new-version list from agentbarista.com, sends no personal data, and can be turned off in Settings.