Time limit
Stop after a set time.
Need to leave your desk? Start a SleepWalk session, close the lid, and take your Mac with you. It stays awake until the work is done—or one of your limits is reached.
A lightweight macOS menu bar app. Start or stop a session in one click.
Pick the timer, battery floor, and temperature limit before the session starts.
Stop after a set time.
Stop before charge drops too low.
Stop if the Mac gets too hot.
SleepWalk is agent agnostic: it keeps macOS awake, regardless of what is running.
Optionally, install the ---
name: sleepwalk
description: Use SleepWalk when the user says "do not sleep", asks to keep this Mac awake for a long-running task, invokes $sleepwalk, or asks to wrap a command.
---
# SleepWalk
SleepWalk is a local macOS app for bounded keep-awake sessions. It does not inspect prompts, code, logs, windows, or network traffic.
Use it only for an explicit keep-awake request or a genuinely long-running command.
## Workflow
1. Check availability:
```bash
sleepwalkctl status
```
If unavailable, ask the user to open SleepWalk or install the CLI from Settings.
2. Start a lease for the requested long task:
```bash
sleepwalkctl start --source codex --agent-session-id "<stable-id>" --label "<short label>"
```
Reuse the same ID. Add duration, battery, or thermal flags only when the user requests them. Thermal stops are `warm`, `hot`, or `critical`.
3. Always release that lease when the task completes or genuinely stops:
```bash
sleepwalkctl stop --source codex --agent-session-id "<stable-id>" --reason "<brief reason>"
```
This releases only this agent lease and never kills user processes.
For one long non-interactive command:
```bash
sleepwalkctl run -- <command>
```
Do not start SleepWalk for ordinary short commands. Never disable its safeguards.
and sleepwalkctl manages bounded keep-awake sessions for SleepWalk.
Usage:
sleepwalkctl status
sleepwalkctl active
sleepwalkctl start [options]
sleepwalkctl stop [options]
sleepwalkctl run [options] -- command [args...]
Commands:
status Show the app, session, battery, and thermal state.
active Print whether a session is active.
start Start a bounded keep-awake session.
stop Stop the current session.
run Keep awake while a command runs.
Start and run options:
-d, --duration <time> Stop after a duration such as 30m or 1h.
-b, --battery-floor <pct> Stop below a battery percentage.
-l, --label <text> Name the session.
--thermal-stop <level> Stop at warm, hot, or critical.
Stop option:
--reason <text> Explain why the session stopped.
Agent options:
--source <name> Identify the calling agent.
--agent-session-id <id> Manage only that agent's lease.
General option:
-h, --help Show this help.
Examples:
sleepwalkctl start --duration 30m --battery-floor 20 --thermal-stop hot
sleepwalkctl run -- npm test
sleepwalkctl stop --reason "tests passed"
in one click. Tell your agent “do not sleep” or mention $sleepwalk. It handles the session, then lets your Mac sleep when the work is done.
Type a request and send it to see the SleepWalk handoff.
SleepWalk is for anyone who needs a Mac to keep working with the lid closed: coding agents, builds, tests, downloads, renders, backups, and other long-running tasks. Each session stays bounded by the limits you choose.
Yes. Start a SleepWalk session before closing the lid. Your task can continue until it finishes or a time, battery, or temperature limit stops the session.
If the task needs internet access, connect your Mac to a phone hotspot before putting it away. A backpack reduces airflow and can trap heat, so avoid heavy workloads in a tightly packed bag. Enable a temperature limit so SleepWalk stops when macOS reports the selected thermal state. This guardrail is a fallback, not a substitute for ventilation.
They solve related keep-awake problems. Caffeine is designed for ordinary idle sleep, not closed-lid work. Amphetamine, caffeinate, and pmset are powerful general tools, but require more setup. SleepWalk puts closed-lid sessions and built-in time, battery, and temperature limits in one focused menu bar flow.
Yes. Install the optional skill and CLI, then tell your agent “do not sleep” or mention $sleepwalk. The agent starts a bounded session and releases it when the task ends.
Any coding agent that can follow a Markdown skill and run local commands. SleepWalk manages macOS itself, so the menu bar app also works without an agent.
No. SleepWalk does not inspect prompts, code, windows, logs, or network traffic. It only reads local power, battery, thermal, and running-app metadata needed to manage the session.
SleepWalk uses the macOS system thermal state instead of estimating temperature from one sensor. Choose Warm, Hot, or Critical, and SleepWalk stops when macOS reports the selected state. It is a useful safety guardrail, not a hardware guarantee.
SleepWalk ends the keep-awake session, reopens selected apps if configured, and lets macOS sleep normally. It does not terminate your work.
SleepWalk is a one-time purchase. Click Purchase for the current price, free trial, and any active offer.