Why your Mac sleeps while Shelley is still working
Shelley, from Bold Software, is a web-based coding agent: a single binary you run on your own machine that serves a browser UI, stores conversations in SQLite, and streams updates to whatever device you have open. The team's stated reason for the single-user design is that it makes sense to "bring the agent to the compute" — and on a Mac, the compute is a laptop that sleeps.
macOS decides to idle-sleep from your idle time — how long since real keyboard or mouse input — and
from the sleep assertions running processes hold. CPU load is not part of that decision, which
surprises people: a Mac pinned at 100% still idle-sleeps on schedule. So an agent that's working hard
doesn't protect itself, and driving that agent from a phone produces no input on the Mac at all. When
the idle timer runs out, the machine suspends. The shelley process isn't killed — it's
frozen with everything else, the SSE connection your browser was holding drops, and the turn that was in
flight goes nowhere until you go back and wake the Mac up.
Two things make this sting more with Shelley than with a terminal agent. First, the pitch is specifically that you can start work from anywhere — the times you'd use that are the times the Mac is unattended. Second, if the way you leave the desk is closing the lid, that's a separate and harder problem: closing the lid doesn't consult the idle timer at all, it just sleeps. The supported way around that one is clamshell mode — on power, with an external display and an external keyboard or mouse connected.