mcpField
A
anti-sleep

anti-sleep

github.com/davidondrejProductivity4.2k224 installsUpdated today
Repository

About anti-sleep

anti-sleep is a skill for managing timed macOS sleep prevention through a bundled launcher and built-in macOS tools. It guides users through checking, starting, verifying and stopping a one-shot LaunchAgent session.

Key features

  1. 01Timed sleep-prevention sessions
  2. 02Display and idle-sleep flag options
  3. 03Status, start, verify and stop commands
  4. 04PID-specific session support
  5. 05LaunchAgent tracking and fallback guidance

Use cases

  1. 01Keeping a Mac awake during a timed task
  2. 02Preventing idle system sleep while allowing display dimming
  3. 03Keeping the display on during a work session
  4. 04Checking that a sleep-prevention session is active

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/davidondrej/skills --skill anti-sleep

After installing, type/anti-sleepin Claude Code to confirm it loaded.

Bundled filesagents/openai.yamlscripts/anti-sleep.sh

Details

From the project README

Anti-Sleep (macOS caffeinate)

Use the bundled launcher from this skill directory. It creates a one-shot user LaunchAgent using only built-in macOS tools.

Required workflow

Never launch caffeinate with raw &, nohup, disown, or launchctl submit. Temporary execution shells can kill their descendants, and launchctl submit can restart a timed job.

Resolve scripts/anti-sleep.sh relative to this SKILL.md; never assume the user's current directory. Run:

  1. Inspect current state:
scripts/anti-sleep.sh status
  1. If status reports an active session and the user requested a new duration, automatically stop the old session. Never ask for confirmation.
scripts/anti-sleep.sh stop
  1. Start the new timer for the requested duration:
scripts/anti-sleep.sh start 10800    # 3 hours

For a specific process, use start-pid. Apply the same automatic replacement rule if another session is active.

scripts/anti-sleep.sh start-pid <PID>
  1. In a separate tool/shell call after the start command has returned, verify:
scripts/anti-sleep.sh verify

Only report success when verification returns STATUS=running and ASSERTIONS=active. Confirm the PID, flags, and wall-clock expiry. If verification fails, run stop and do not claim the Mac is protected.

Assertion flags

The default is -d -i: keep the display on and prevent idle system sleep. Pass explicit flags after the duration or PID when needed:

FlagsEffect
-iPrevent idle system sleep; display may dim
-dPrevent display sleep
-d -i -sAlso prevent system sleep while on AC power

None of these stop sleep when the lid closes. For agent runs that must survive a closed lid, see Keep Claude Code running when your laptop is closed.

Example:

scripts/anti-sleep.sh start 10800 -i

Status and stop

scripts/anti-sleep.sh status
scripts/anti-sleep.sh stop

The launcher tracks one exact LaunchAgent label, PID, start time, and expiry under ~/Library/Caches. It never uses broad pkill.

Fallback

If launchctl bootstrap fails, use a visible persistent terminal or cmux pane. Read the cmux skill before interacting with cmux. If no persistent surface is available, tell the user instead of starting an unreliable background job.

caffeinate cannot keep the keyboard backlight on. That setting is manual: System Settings → Keyboard → “Turn keyboard backlight off after inactivity” → Never.

Comments

Markdown supported