Agent Awake

Version 1.3.1 · macOS 14 Sonoma or newer · Apple silicon and Intel

Keeps this Mac awake while Codex or Claude is working, including with the lid closed when the system helper is installed.

Look for the coffee cup in the menu bar. A filled cup means the helper has confirmed that closed-lid protection is active. An outlined cup means it is monitoring, idle, paused, or still needs installation; click it to see the exact status. The compact icon saves menu-bar space and remembers its position. Choose “Move coffee cup near the clock” if it gets crowded out. You can also open Agent Awake from Applications or Spotlight to reach its controls, even when the icon is hidden.

Everyday use

It starts automatically when you log in. Start work in Codex or Claude as usual. The helper checks every two seconds and normally enables closed-lid protection within about four seconds. Wait for the filled cup and the menu status “Working — lid may be closed” before closing the lid. When every detected task finishes, protection releases after a ten-second grace period. If the lid is already closed, the system helper explicitly requests sleep; with the lid open, your normal sleep settings apply.

The menu lets you pause protection or quit and allow sleep. Quitting lasts until you reopen the app or next log in. Pausing remains in effect until you resume.

What it detects

Detection uses current local app formats, which may change in future updates. Ordinary Claude chat, remote-only tools that do not create a local Code or Cowork task record, browser-only sessions, and jobs on another computer are not detected as local Claude work. Claude Code sessions marked waiting and Cowork permission requests allow sleep until execution resumes. A Codex turn that remains marked started can retain protection until Codex records completion or cancellation; the local journal does not expose every possible approval state. A closed or locked display can also affect computer-use tools that need a visible desktop; keeping the CPU awake does not create a virtual screen.

Power and recovery

Works on charger or battery. At 5% battery on battery power, or a critical macOS thermal state, it releases protection to let the Mac protect itself. Keep the Mac ventilated while it is working with the lid closed. This prevents sleep; it cannot prevent a forced shutdown, empty battery, restart, or hardware shutdown.

A renewable 15-second lease prevents a crashed monitor from leaving sleep disabled. The system helper restarts automatically after a crash and restores its saved prior setting. Duplicate app/monitor/helper launches are blocked. A stalled monitor is restarted after thirty seconds; its sleep-protection lease expires sooner, after fifteen seconds. Normal screen locking remains available. Only the system-wide sleep-disable setting is changed; your existing sleep timers are preserved.

Install on another Mac

  1. Open Agent-Awake-1.3.1-Mac.dmg.
  2. Open Agent Awake Installer, then click Install Agent Awake.
  3. Approve the macOS administrator prompt. Keep the lid open until installation finishes.

The installer automatically selects a fully native app and runtime for the recipient’s Mac. Apple silicon Macs receive only Apple silicon components; Intel Macs receive only Intel components. No Rosetta translation is needed for normal use. The installer includes everything the app needs. No Xcode, developer tools, separate Python installation, or sign-in is required. It installs into the current user’s Applications folder and starts automatically at login. One macOS account is supported per Mac; the installer will not overwrite an installation belonging to another account.

First-opening notice: This release is locally signed for integrity, but is not signed with an Apple Developer ID or notarized by Apple. macOS may initially block it as an unknown developer. If you trust the source of this file, follow Apple’s instructions: attempt to open the installer, then use System Settings → Privacy & Security → Open Anyway and confirm. No global security settings need to be disabled. Managed Macs may prohibit this exception.

Installation and removal

Installation and system-helper updates need macOS administrator authentication. Keep the laptop lid open during installation. The installer verifies the app before replacement and copies privileged installer files into private root-owned staging before checking their hashes and running them. No password is stored. The menu app and activity reader run as your ordinary user. The root helper can only read the short activity lease, change the fixed sleep setting, and request sleep after its hold ends while the lid is closed; it does not run user-supplied commands. Nothing is sent over the network.

Open Agent Awake Installer from the disk image and choose Uninstall… to remove the app and startup services and restore sleep. It requests administrator authentication to remove the system helper. The distributable contains the app, installer, guide, and third-party license notices. Local activity records, test logs, personal account paths, and credentials are not bundled.

Technical references

The closed-lid mechanism uses macOS pmset -a disablesleep, an undocumented switch implemented in Apple’s power-management source. It is verified by reading the kernel’s SleepDisabled property after changes. An independent implementation documents the same closed-lid mechanism. On the development Mac, physical tests confirmed idle sleep on both charger and battery, plus continuous Codex work with the lid closed on battery followed by automatic sleep after completion. Intel support is compiled into this release; an Intel Mac hardware test has not been performed.

Bundled runtime and privacy

The app bundles CPython 3.13.15 from Astral’s Python standalone builds in a separate payload for each Mac architecture. Only the matching payload is unpacked and installed. Original archive checksums are pinned in the build process. Runtime source details and third-party license notices are included inside the app. Monitoring stays on this Mac and sends no telemetry.