Muse Code was still working.
Your Mac didn't care.

Meta's coding agent runs in your terminal, which means it gets suspended along with everything else when macOS decides to sleep. Here's why that happens, the free fix, and one detail about how Muse installs itself that quietly breaks keep-awake tools.

To keep your Mac awake while Muse Code runs: the free way is macOS's built-in caffeinate — start the agent as caffeinate -i muse and the Mac can't idle-sleep until it exits. The automatic way is AgentBarista, which watches for real agent activity and lets your Mac sleep once the work is done. Muse Code is brand new — Meta shipped it in beta on 5 August 2026 — so it isn't in AgentBarista's built-in agent list yet; you'll add it yourself as a custom app. The honest status is spelled out below.

The direct answer

Why your Mac sleeps while Muse Code is still going

A coding agent spends most of a task waiting on a model response, which barely uses any CPU. But macOS doesn't decide from CPU at all — it goes by your idle time, how long since real keyboard or mouse input, plus the power assertions running processes hold. So working hard doesn't protect the machine: a Mac mid-refactor sleeps on exactly the same schedule as one doing nothing. Once your system-sleep timer runs out, macOS suspends the Mac and every Muse process freezes along with it until you wake it back up.

Muse Code makes this more annoying than a single-shot tool does, because Meta pitches it at multi-step work — its own description is an agent for "your most complex coding workstreams," built on several coordinated agents. Those are exactly the runs you start and walk away from. The fix is to stop macOS from sleeping for as long as the agent is actually running, then let it sleep normally again once the run is done. You can do that for free in two minutes, or have something watch for real activity so you don't think about it.

The free option

Free tools can keep your Mac awake too

If you only run Muse Code now and then, you don't need to buy anything. Because it's a terminal agent, the cleanest free fix is one command:

  • The built-in caffeinate command. Start the agent as caffeinate -i muse instead of muse. The Mac can't idle-sleep while it runs, and the moment Muse exits, normal sleep is allowed again — nothing to remember to undo. Already on your Mac, free.
  • Attach to a session you already started. You don't have to restart it. Look at what's actually running first, then attach to it: pgrep -lf muse-bin lists the matching processes with their command lines, and caffeinate -i -w <pid> holds sleep off until that exact process exits. Read the list before you pick a PID — see the next section for why muse-bin and not muse is the string to search for.
  • Amphetamine (free, Mac App Store). A menu-bar toggle to keep the Mac awake on a timer or while a chosen app is running — handy if you'd rather flip a switch than type a command.

All of these are a fine choice if Muse runs for a few minutes here and there. The catch: none of them knows when the agent actually finished a task versus when it's sitting at an idle prompt. You either stop it yourself, or it keeps your Mac awake — and your battery draining — long after the work is done.

The Muse-specific gotcha

The process isn't called muse

This is the part worth knowing, and it applies to any keep-awake tool that watches for a process by name — ours included.

Meta installs Muse Code with a one-line script (curl -fsSL https://dev.meta.ai/install.sh | bash). What that script puts on your PATH at ~/.local/bin/muse is not the agent — it's a small shell launcher. Every time you run muse, the launcher hands off to the real binary sitting next to it — and, at most once an hour, kicks off an update check in the background that lands for your next run. The real binary is named with the version baked in: ~/.local/bin/muse-bin-<version>. The handoff replaces the process image, so the thing actually running on your Mac for the next two hours reports itself as something like muse-bin-1.4.0-R2, not muse.

Two practical consequences. First, when you go looking for the running agent — pgrep, Activity Monitor, an allowlist in a menu-bar app — search for muse-bin, not muse. Second, because the version is part of the name and Muse updates itself in the background, any list pinned to one exact process name goes stale the next time Meta ships a build. That's an argument for matching on the stable muse-bin prefix rather than the full name.

Both facts come from reading Meta's own installer and launcher scripts, fetched on 12 August 2026. We have not yet run Muse Code on a Mac of ours to confirm what ps prints during a live task, and we'd rather tell you that than imply we have.

The purpose-built option — honest status

What AgentBarista does today for Muse Code

Straight answer: Muse Code is not in AgentBarista's built-in agent list yet — Meta shipped it in beta on 5 August 2026, we picked it up on 12 August, and this page went up the same day. When the app ships you'll cover Muse by adding muse-bin yourself under Settings → custom apps, which is the one place AgentBarista still matches on a name fragment rather than an exact catalog entry. Use muse-bin rather than muse: the match is a loose two-way substring test — it fires when your entry appears anywhere in the process's name or full path, or when the process's name appears inside your entry. So muse would also catch unrelated things with "muse" in their path, while muse-bin matches every version of the real binary. A custom app is trusted on CPU — when the process and its children are busy above the work threshold (8% by default), that counts as real work and your Mac is held awake, with a 90-second grace window (also the default) before it lets go. What that does not cover is the long, silent model wait: network time at near-zero CPU. For some agents in the built-in list we catch those from session-file timestamps, and we haven't found a file Muse touches only while it's working — the only user-data path its launcher references is a credentials file under ~/.config/muse/, and everything else it writes is update bookkeeping next to the binary. None of it tracks whether the agent is working — the update markers change on Muse's hourly update schedule, not with your task — so none of it works as a work signal. One more thing worth naming rather than letting you discover: on-screen text detection reads terminal windows only for the agents in the built-in list, so a custom app added this way gets no help from Muse's own status line. Treat Muse Code as coverable-via-custom-app, on CPU alone, not verified.

One step, no permission

Add muse-bin as a custom app in Settings and its CPU counts as work — the same path any tool we haven't catalogued yet takes. No permission needed for this part.

The gap we'd rather name

CPU alone misses a long model wait. No session-file signal for Muse, and terminal text scanning doesn't look for custom apps. Short gaps are covered by the grace window; a five-minute silent turn may not be.

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, catalogued or custom.

Muse Code (custom app, not in the built-in list) Claude Code Cursor Codex Gemini CLI Copilot CLI OpenCode Zed Antigravity Claude ChatGPT + more

Worth saying plainly: free tools like Keepresso and adrafinil are open source and genuinely good, and both read agent hooks, which is 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 quick to support brand-new agents as they ship — this page exists a week after Meta's beta — and reporting honestly what your Mac was actually held awake for.

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 one network call is 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.

Getting it

Not released yet

AgentBarista for macOS
  • Runs as a menu-bar app — pick a mode, get back to work
  • Battery cutoff on by default (20%), plus a one-click emergency restore
  • Muse Code will work at launch as a custom app, on CPU
Get notified at launch

Not live yet — leave your email and we'll ping you the moment it is.

Running agents across a team instead? See the teams page.

More agents

Also running Claude Code, Codex CLI, or another agent?

Same Mac-goes-to-sleep problem, different tool. Each of these guides covers the fix for that agent specifically: