Clamshell vs Macchiato: free pmset helper or no-admin lid app

By Matyas Rathonyi. Updated October 11, 2026. Guides

Choose Macchiato if you want a free, open-source switch and are comfortable approving a root helper that turns sleep off for the whole system with pmset disablesleep. Choose Clamshell if you want no admin step, a change limited to lid-close sleep, an automatic thermal cutoff and scripting, and will pay $9.99 once. Neither app detects coding agents.

Free vs $9.99Macchiato is Apache-2.0; Clamshell is paid after a 7-day trial
Root helper vs noneMacchiato approves a helper once; Clamshell needs no admin
System vs lidpmset disablesleep, or lid-close sleep only
Both manualNo agent detection stated for either
Two routes to a closed MacBook that keeps working. Macchiato goes through a root helper to pmset, a system-wide setting. Clamshell changes lid-close sleep only, with no helper. Macchiato helper pmset root, whole system Clamshell lid only no admin, no helper
Same result, different door.Both keep the closed Mac working. Macchiato asks a privileged helper to flip a system setting. Clamshell asks macOS to skip lid-close sleep, as an ordinary app.

Macchiato is a small menu bar app with one switch, Keep Awake. It is the tool recommended by a Kanaries article on keeping Codex and Claude Code running with the lid closed, which is where many people first hear of it. Clamshell for Mac is the app this site makes. Both exist for the same moment: an agent is halfway through a task and you need to shut the laptop.

Everything below about Macchiato comes from its GitHub repository: the README, the source files, the 0.1.0 release and the issue tracker, all read on October 11, 2026. We found no separate Macchiato website or store listing. "Not stated" means we could not find it there; it does not mean the feature is missing.

The decision rule

Pick Macchiato if

You want to pay nothing, you want to read the code, you are fine approving a privileged helper once, and you know how to check and reset SleepDisabled yourself. It also suits you if you want one switch that blocks sleep with the lid open or closed.

Pick Clamshell if

You cannot or will not grant admin rights, you want the change limited to the lid and gone after a restart, you want a thermal cutoff that needs no attention, or you want to arm it from a script.

Pick neither if

The Mac sits at a desk on power with a monitor attached. Apple's own closed-lid display setup already keeps it awake. The lid-closed overview covers the free options.

Side-by-side comparison

MacchiatoClamshell for MacWhat it means for you
Price Free. $9.99 once for one Mac, or $19.99 for three, after a 7-day trial. Also on Setapp. Macchiato wins on cost.
Source code Open source, Apache-2.0. A few Swift files. Closed source. You can audit Macchiato and build it yourself.
How lid-closed works An IOKit PreventUserIdleSystemSleep assertion plus pmset -a disablesleep 1. The unprivileged IOKit lid sleep-state control plus the same kind of idle-sleep assertion. Never sets SleepDisabled. System-wide setting against a lid-only one.
Admin rights A privileged LaunchDaemon helper, registered through SMAppService. Approve "Macchiato Helper" in System Settings once. None. No sudo, helper, driver or kernel extension. On a managed Mac, the helper may not be allowed.
How you turn it on The Keep Awake switch in the menu. Stays on until you switch it off or quit. Menu, right-click, Option while closing the lid on supported Macs, URL scheme or Shortcuts. Macchiato is simpler. Clamshell has more ways in.
Agent detection Not stated. The README describes a manual switch. None. It does not detect agents. With both, you decide when it is on.
Automation Not stated. clamshell://arm, disarm, toggle, and four Shortcuts actions. Only Clamshell documents a way to script it.
Thermal safeguard Not stated. The README says to "keep an eye on battery and heat". Always on. Serious or critical thermal pressure disarms it and blocks arming until the Mac cools. With Macchiato, watching heat is your job.
Battery safeguard Not stated for 0.1.0. A low-battery cutoff is an open, unmerged pull request. Optional "Disarm on low battery" at a level you choose. Off by default. Neither protects the battery out of the box.
After a crash or force quit README: run sudo pmset -a disablesleep 0 to restore normal sleep. The lid change is never saved across a restart. The direct edition can relaunch after an unexpected exit when its crash-recovery agent is permitted. Know the Macchiato undo command before you need it.
External display connected Not stated. Pauses instead of arming. Clamshell steps aside for Apple's display mode.
Screen for agents, lid closed Not stated. Agents can use the screen while the built-in display stays black. On by default. Matters for computer use and the iOS Simulator.
macOS and chip macOS 14.0 or later per Info.plist. Chip not stated; the 0.1.0 DMG is arm64 only. Apple Silicon Mac laptops, macOS 14 or later. The same Macs, as released.
Signing Not stated in the README. The 0.1.0 DMG is ad-hoc signed and not notarized. Notarized by Apple. Expect a Gatekeeper warning with Macchiato's download.
Last update Release 0.1.0 and the latest commit are both dated April 30, 2026. Updated in October 2026. Macchiato has had one release so far.

How each one keeps the lid from sleeping the Mac

Macchiato's README is direct about its method: it "uses an IOKit PreventUserIdleSystemSleep assertion plus macOS' pmset disablesleep setting". The assertion stops idle sleep. The pmset setting is what handles the lid, and changing it needs root. So the app "ships a privileged LaunchDaemon helper, installed through SMAppService, so the system-level pmset work is approved once instead of prompting on every toggle".

The source matches. The helper runs /usr/bin/pmset -a disablesleep 1 or 0, and the app then reads pmset -g live back to confirm that SleepDisabled changed before it reports the switch as on. That read-back is a careful touch. The effect is the same as typing the command yourself: sleep is off for the whole system, lid open or closed, until it is turned back on. Our guide to what pmset disablesleep does explains that setting.

Clamshell holds an idle-sleep assertion of the same type, but for the lid it uses an IOKit control that macOS lets an ordinary app call, so there is no helper and nothing to approve. It never touches SleepDisabled, and the change is not kept across a restart. The four methods apps use, and which app uses which, are laid out in how keep-awake apps keep a closed MacBook awake.

Macchiato: one switch sets SleepDisabled, which turns sleep off for the whole system until it is switched back. SleepDisabled Macchiato all sleep, system-wide Clamshell: only lid-close sleep is skipped while armed, and the closed Mac keeps working. Clamshell lid-close sleep only
What each switch reaches. Macchiato flips a setting that covers every kind of sleep on the Mac. Clamshell changes what happens at the lid, while armed, and leaves the rest of macOS sleep alone.

Where Macchiato is the better choice

What Macchiato asks of you

About the article that recommends it. The Kanaries page lists Macchiato as "Recommended" and links to the repository. The repository belongs to a GitHub account whose profile says its owner is the founder of Kanaries. The article does not mention that connection. It is still a clear walkthrough of caffeinate and pmset; read its recommendation the way you should read ours, as a publisher writing about its own tool.

Where Clamshell is the better choice

And where it is worse: it costs money, the source is closed, and it pauses while an external display is connected. It also has more arming modes to understand. Arming from the menu covers the next lid close only, and an Option-close session ends when the lid opens, while right-click and Shortcuts arming stay on until you disarm.

Clamshell for Mac keeps a MacBook awake with the lid closed while armed. No sudo, no helper, no monitor. Free for 7 days.

Download free trial

Apple Silicon, macOS 14+. Notarized by Apple. 3.6 MB. Or buy now, $9.99. Reading this on your phone? Send the Mac download link to yourself.

For Claude Code and Codex, the routine is the same

Neither app knows whether an agent is running. With either one the routine is: start the task, turn the app on, check that it is on, close the lid, and turn it off when the work is done. The difference is what "forgot to turn it off" costs. With Macchiato, sleep stays disabled for the whole system until you flip the switch. With Clamshell, it depends how you armed it, and a restart always clears it.

  1. Clear prompts with the lid open. Approve any permission dialog the agent or the app raises, including Macchiato's helper approval the first time.
  2. Turn it on and confirm. Macchiato's menu should read "Keeping this Mac awake". Clamshell's menu should show it is armed.
  3. Prove it once. Close the lid for two minutes with the task running, reopen, and check that the agent's log has timestamps from while it was shut.
  4. Turn it off afterwards, and with Macchiato confirm SleepDisabled is back to 0 before the Mac goes in a bag.

Agent-specific setup is in keep Claude Code running with the lid closed and keep Codex running with the lid closed. If automatic agent detection is the feature you want, neither of these two has it; Hold My Lid and Adrafinil are the apps we have compared that are built around it.

Want lid-closed without a root helper or a system-wide setting? Clamshell is free for 7 days, then $9.99 once for one Mac.

Download free trial

Apple Silicon, macOS 14+. Notarized by Apple. 3.6 MB. Also on Setapp.

Frequently asked questions

Is Macchiato free?

Yes. Macchiato is published on GitHub under the Apache-2.0 license, with a packaged Macchiato.dmg on its releases page. Clamshell for Mac costs $9.99 once for one Mac after a free 7-day trial.

Does Macchiato need admin rights?

It needs a privileged helper. Macchiato's README says the app ships a privileged LaunchDaemon helper, installed through SMAppService, which runs pmset disablesleep. macOS asks you to approve Macchiato Helper in System Settings the first time. Clamshell uses no sudo, admin rights or helper.

Does Macchiato detect Claude Code or Codex?

Its README does not say so. It describes one manual Keep Awake switch that you turn on before a task and off afterwards. Clamshell does not detect agents either; it can be armed from scripts with a URL scheme or Shortcuts.

What happens if Macchiato crashes while Keep Awake is on?

Macchiato's README says that if it is force-quit or crashes while enabled, you can restore normal sleep by running sudo pmset -a disablesleep 0 in Terminal. You can check the setting with pmset -g live and look for SleepDisabled.

Does Macchiato run on Intel Macs?

The README does not state chip support. The 0.1.0 release DMG we inspected on October 11, 2026 contains an arm64 build only, and the app's Info.plist sets macOS 14.0 as the minimum. Building from source for Intel is not documented. Clamshell runs on Apple Silicon Mac laptops only.

Does Macchiato have thermal or battery protection?

None is stated for the 0.1.0 release. The README advises keeping an eye on battery and heat during long sessions. A low-battery cutoff has been proposed in an open pull request that was not merged as of October 11, 2026. Clamshell's thermal cutoff is always on and its low-battery disarm is optional.

Related guides

Macchiato details were read on October 11, 2026 from its GitHub repository: README, source, release 0.1.0 and the issue tracker. The release DMG was inspected with lipo, codesign and spctl and was not run, so nothing here is a hands-on test of Macchiato. Projects change; check the repository before deciding. Clamshell is an independent app, not affiliated with Macchiato, Kanaries, Anthropic or OpenAI.