The purpose-built option — honest status
What AgentBarista does today for Junie
Straight answer: Junie is not in AgentBarista’s built-in agent list, and
neither is any JetBrains IDE. We would rather say that here than let you find out after
paying. This one is a genuine gap rather than a deliberate hold: Junie CLI has been generally
available since June 2026 and we did not have it on the board. It is on the board now.
What that costs you, concretely. For the
products in our built-in list, the on-screen-text signal resolves an app by its exact bundle
identifier, and we hold none for the JetBrains IDEs — so out of the box, Junie running inside
IntelliJ IDEA, PyCharm or WebStorm is invisible to us. You can add the IDE as a custom app, and a
custom app does get its on-screen text read, but matched against your own phrase lists rather
than any we ship for Junie. Go that route and you are writing the detection yourself.
And the honest warning about that route is the opposite
of the one you would expect. Custom apps are CPU-trusted: we hold sleep when the app and its
children cross a CPU threshold, 8% by default. Merely having the IDE open does not hold sleep —
that registers as presence, which is not enough on its own. The risk runs the other way. An IDE
indexing a repository, compiling, or running a test suite crosses 8% easily, so a custom-added
IntelliJ will report “working” for work that has nothing to do with Junie, and hold your
Mac awake for it. Be clear-eyed about that before choosing it.
Junie CLI is the cleaner shape — a custom
entry is matched loosely, in both directions, against the process name and its executable path, and is
likewise CPU-trusted. For a cloud agent we would warn you that CPU-trust misses the waiting phase. For
Junie Local the warning is the one in the section above: inference is on the GPU and behind a local
server, so we cannot promise a CPU rule sees it either. We have not measured this on an M5.
On the safety half: AgentBarista releases its hold when the
battery drops to your cutoff, which is on by default, and again when macOS reports the thermal state
as critical — and both of those apply to any app it watches, custom or built-in. For a genuinely
unattended overnight local run, we would still point you at caffeinate -i junie first: it
depends on none of our detection, and this page is not going to pretend we have measured something we
have not. And one scope worth being exact about, because it is the sentence people bet an overnight
run on: those cutoffs release the hold we placed. If you run caffeinate -i junie
yourself, that assertion is yours, not ours — we never see it 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 junie drops the assertion after eight hours
even if the run is still going, and releases it early when junie 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
No JetBrains IDE is, either. Junie CLI went generally available in June 2026 and we missed it — that is a gap, not a decision, and it is on the board now.
In-IDE is invisible out of the box
We hold no bundle id for the JetBrains IDEs. A custom entry works, but it is CPU-trusted at 8% — so an IDE indexing or running tests reports “working” for work that isn’t Junie.
Local doesn’t mean easier
Inference runs on the GPU, behind a local server. CPU percentage doesn’t count GPU work, so don’t assume a CPU rule sees a Junie Local run. Battery and thermal cutoffs matter more, not less.
Junie (not built in — see above)
Claude Code
Cursor
Codex
Gemini CLI
Copilot CLI
OpenCode
Zed
Claude
ChatGPT
+ more
Worth saying plainly: this category is crowded and a lot of it
is free. Keepresso and adrafinil are open source and read agent hooks, which is a more accurate signal
than guessing from CPU, and several free tools ship the battery and thermal guards described above. If
you’re a solo dev running one agent, one of them may well be the right answer. Where we put our
effort is the honesty of the count, and being straight about which agents we have actually measured
— which is why this page tells you Junie isn’t one of them yet, and why it just talked you
out of trusting a CPU rule on a local run.
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.