Keepresso
Keepresso

Caffeination with an off switch

Keepresso keeps your Mac awake, on your terms

Your Mac sleeps at the worst moments: mid-download, mid-render, mid-call, mid-agent-run. Keepresso keeps it awake exactly when it should be, then lets it rest. Free and open source, it lives in the menu bar with no account, no trackers, and no license fee.

$brew install --cask gyorgysh/keepresso/keepresso
macOS 14+Swift + SwiftUIGPL-3.0signed + notarized

Closed-display mode

Close the lid, it keeps working

Not clamshell: no external display, no dock, no power cord. Just the app, on battery if you like.

Works on battery

Shut the lid and keep going, even unplugged. Apple's built-in closed-display mode needs power and an external monitor; Keepresso does not.

Screen off, protected

The display turns off inside the closed lid, so nothing sits lit in your bag while the Mac keeps working.

Everything else stays up

Downloads, builds, agents, SSH, and backups run to completion with the lid shut. How it works →

Keep me active

Stay active, even when you step away

Remote-desktop sessions, VDI, and chat apps flip you to away the moment you stop typing, and some corporate systems log you out for it. Keep me active reports activity to macOS so you stay present while you read, watch, or think.

Activeidle timeoutaway
the idle timer resets before it ever reaches away, no mouse to jiggle

Beat the idle logout

VDI, Citrix, and remote-desktop sessions lock or drop when they decide you are idle. Keep me active keeps the session live, so a long read or a running job does not get you kicked out.

Green in Teams and Slack

Your presence dot stays Active instead of flipping to Away the second the mouse goes still, so people see you as around when you are at your desk but not typing.

One honest signal

It reports activity the way macOS expects, the same real-assertion approach as the rest of Keepresso, no jiggled cursor and no faked keystrokes. Keep your status active →

Gaming and streaming

Smooth frames, hands off

macOS shares your Wi-Fi radio with AWDL, the layer behind AirDrop and Handoff, and every scan for nearby devices is a latency spike. Keepresso spots the session and quiets the radio for it.

120FPSping (ms)52 msstutter11 mslocked, Keepresso onControllerAWDL pausedCPU boostKept awake
controller in hand, radio quieted, frames locked: Keepresso keeps the session smooth and awake

Auto game detection

Spots Steam titles and the cloud and streaming clients, GeForce NOW, Boosteroid, Parsec, Moonlight, and Shadow, plus a controller in your hands: DualSense, Xbox, any gamepad, even the Steam Controller macOS never reports as one. The one-click Gaming preset also holds the Mac awake through Steam downloads and launcher patches.

Fixes the stutter at the source

Pauses AWDL while you play so the Wi-Fi radio stops hopping away mid-frame, then restores it cleanly when you stop. An opt-in switch raises the game's CPU priority through the helper, so background work cannot steal frames. Live status shows whether AWDL is paused or in a grace countdown. No terminal, no watchdog script to remember.

Test before you play

A built-in jitter test checks the link before a match, alongside radio-hygiene checks that flag a wired option, Bluetooth interference, and the clean Wi-Fi channel for your region (44 in the EU, 149 in the US and Canada). The Cloud Gaming and Remote Control presets are one click. The AWDL deep-dive →

Headless Mac mini and Studio

No monitor? Reach it like it has one

Tuck a Mac mini or Mac Studio away as a build box, agent host, or home server. Keepresso walks you through making it stay awake, survive a power cut, and come back on its own, then serves a crisp Retina desktop over Screen Sharing, so checking logs or your MyAgens panel feels like sitting right in front of it.

no displaymac-mini.local2560 × 1440 · HiDPI
no monitor on the mini; a crisp Retina desktop, streamed to wherever you sit

Guided headless setup

The Headless Setup checklist probes sleep, auto-restart, auto-login, and remote access, with one-click Settings links and copyable commands. It reads your Mac and never changes a thing on its own. The headless checklist →

Crisp Retina over Screen Sharing

An experimental HiDPI virtual display serves a sharp, pixel-doubled desktop instead of the fuzzy 1920 × 1080 a screenless Mac falls back to. No dummy plug, no kext, nothing to buy. How it works →

Comfortable from anywhere

Read logs, watch a build, or open your MyAgens panel like you are sitting at the machine, whether it lives in a closet, a rack, or another city.

Preferences

Set it and forget it

Everything configurable lives in seven tabs, with the Gaming & Streaming tools in their own window. The menu stays a one-click affair.

General preferences: prevent display and system sleep, dim the display when idle, launch at login, a global keep-awake shortcut, and the app language
general
Trigger preferences: activate on any of AI agent working, on AC power, playing a game, or CPU above 50 percent, with Claude Code connected and conditions grouped under Power & Display, Network & Devices, and Apps & Activity
triggers
Activity preferences: live power assertions and a decision log of why each session started or stopped
activity
Display preferences with the experimental headless virtual display on: a 2560 x 1440 HiDPI Retina resolution
headless display

Built for the agentic era

The quiet must-have for an always-on Mac

Macs increasingly run unattended: agents, builds, renders, local LLMs. A Mac that dozes off mid-task is the cheapest problem to fix.

agent turnsbuild + testsresearchreportemailagent leaseasleeplease · heartbeatswake · 02:5722:0001:0004:0007:00ZZZ
an agent works on a lease, the mac sleeps, then a scheduled wake at 02:57 catches the 03:00 routine

AI agents

Leave an agent running overnight and your Mac stays up only while it works. The AI agent trigger watches claude, cursor, codex, gemini, and friends in your terminals, and stands down once the last session has been quiet for the grace period you set. Connect Claude Code, Cursor, Codex, or Antigravity and each session reports its own state, so a pause for a permission prompt still counts as working.

Agents hold it awake, safely

An agent can hold the Mac awake itself, through a bounded lease it keeps renewing: if the tool crashes, the lease simply expires. A bundled MCP server and a one-click skill teach any agent the protocol. Leases, MCP, and the skill →

Builders and vibe coders

Long builds, training runs, and overnight jobs finish instead of getting cut short by sleep. A scheduled wake, or a synced Claude Desktop or Codex routine, gets the Mac up before the night shift, and an event hook can ping your phone when the run is done.

Studios and render farms

Long renders and exports run to completion, untended. Headless Mac minis and Studios stay up with no license fee, business included.

Everything it does

Awake only when it should be

Every situation where a Mac should not doze off, covered. Real macOS power assertions, not fake mouse jiggles, so it stays up exactly as long as your conditions hold.

Triggerswhat keeps it awake

AI-agent trigger

Stay awake while a coding agent is actually working, not just sitting open. Finds claude, cursor, codex, gemini, and friends in your terminals and measures each session against its own idle level, so a TUI that animates while idle and a near-silent one are both judged fairly. Claude Code, Cursor, Codex, and Antigravity can report their state directly, with no CPU reading needed.

Gaming triggers

Stay awake while a game or cloud client is in front, while a game controller is on (DualSense, Xbox, any gamepad, even the Steam Controller, detected permission-free at the hardware level), or while Steam is downloading or updating a game in any library.

Meeting-aware

Stay awake while anything uses the camera or the mic, read from device state without touching the stream, so there is no permission prompt. One rule covers every meeting app, including calls in a browser tab, or scope it to a single app so only a Slack, Discord, or Zoom call counts.

Trigger engine

Stay awake only while charging or on battery, when an external display is connected, on a chosen Wi-Fi or VPN, or while a specific app runs. Combine conditions with any or all, and pause it all with one click.

Network-activity and download triggers

Stay awake while network throughput sits above a rate you pick, 100 KB/s up to 5 MB/s, or while a watched folder has a download landing in it, so a big transfer finishes instead of stalling.

Schedule trigger

A daily time window on the days you choose: weekdays 9:00 to 18:00, or an overnight 22:00 to 6:00 that runs past midnight. Work hours and Overnight starting points included.

Audio-playing trigger

Stay awake while sound is playing: music, a video, a podcast. A 30 second release grace rides out track gaps and brief pauses so the session does not flap.

CPU-load trigger

Holds the Mac up while smoothed CPU usage sits above a threshold you pick. Long builds, renders, and training runs stay awake; a momentary spike does not.

Bluetooth trigger

Stay awake while a paired Bluetooth device is connected: a controller, headphones, a trackpad. A 30 second grace period rides out a brief drop so the session does not flap.

Calendar trigger

Hold the Mac up during events on your calendar, so a meeting, a class, or a booked block on the day keeps it awake with no manual switch.

Volume trigger

Stay awake while a chosen external drive, SD card, or network share is mounted, and let disk keep-alive stop it spinning down mid-job.

Sessions & controlrun them your way

Any duration, or until a time

Presets, a custom hours-and-minutes duration, or a session that ends at a wall-clock time, later today or tomorrow if it already passed. Mid-session, one click converts it to stop in 15, 30, or 60 minutes.

Presets

Apply a named trigger bundle in one click: Meetings, AI Agent, Gaming, On AC Power, External Display, Remote Session, Backup Running, Media Render, and more, or save your own rule sets. Restore a default you deleted.

Activity pane

Why is my Mac awake? The menu names whatever app is holding it up, and the Activity pane lists every app's live power assertions, plus a decision log of why each session started or stopped. The log survives a relaunch, with a seven-day summary of how long Keepresso held the Mac awake.

System-wide shortcut

Set a global hotkey to start or stop keep-awake from any app, without reaching for the menu bar. Toggle a session in the middle of a task and carry on where you left off.

Start on launch

Begin a keep-awake session automatically the moment Keepresso opens at login, so an always-on Mac is already holding itself up before you sit down to touch it.

Export and import settings

Save your whole setup, triggers, presets, and rules, to a file, then import it on another Mac or after a clean install, so you are not rebuilding conditions from scratch.

Power, display & presencewhat it does to the Mac

One password, ever

Every privileged switch, closed-display mode, the gaming AWDL pause, a fan boost, a game's CPU priority, a scheduled wake, once meant an admin password prompt. Approve the helper a single time under Login Items and each of them is instant and silent after that. It rides out restarts, updates itself along with the app, and lifts out from the same place.

Scheduled wake

Install a one-shot or repeating system wake through the admin helper, then start a keep-awake session, or leave the triggers in charge, once the Mac is up. It can even sync the recurring runs Claude Desktop or Codex schedule locally and wake the Mac just before each one, so overnight jobs stop losing the race to idle sleep. Reliable on AC power; on battery the firmware may skip the wake.

Thermal safety net

A guard for the one Mac that cannot help itself: held awake with the lid shut, then forgotten, maybe slid into a bag. Watch macOS thermal pressure or sensors you pick; on sustained heat it can boost the fans, then pauses the session and lifts the sleep override so the Mac truly cools. A Test Fans check proves the whole path before you need it.

Reminders and end-of-session actions

A still-brewing notification after N minutes, with an optional sound, so a forgotten session can't drain the battery. When a session ends on its own, it can sleep the display, start the screen saver, lock the screen, or put the whole Mac to sleep.

Battery-aware auto-pause

Let the Mac sleep once charge drops below a threshold you choose, even in the middle of a session, so a keep-awake rule never runs the battery flat. When it pauses, a notification says why, and plugging in picks the session back up.

Dim the display when idle

Keep the screen awake but drop it to its dimmest a few minutes after you step away, then snap your brightness back the moment you return or the session ends. Kinder to the panel and the battery on an overnight run than a screen left fully lit.

Yield the screen saver

Let the screen saver or display sleep kick in after a few idle minutes while the system itself keeps working, so the machine stays busy but the screen still gets to rest.

Keep me active

Report activity to macOS so remote-desktop sessions, VDI, Teams, Slack, and corporate logout timers keep seeing you as present, with no mouse to jiggle and no fake keystrokes.

Closed-display mode

Keep running with the lid shut and no external display, on power or battery. The screen turns off inside the closed lid, so nothing sits lit in your bag.

Automation & platformreach it from anywhere

Event hooks

Run a Shortcut, POST a webhook, or run a shell command when something happens: a session starts or ends, a trigger fires or releases, a battery or thermal pause hits, an AI agent goes idle. A push to your phone when the overnight run finishes is one hook away.

Command-line tool

A keepresso CLI drives the app from scripts and pipelines: start, stop, toggle, and status with a JSON status file, plus lease and wake commands for automation. Or hold the Mac awake caffeinate-style, with no app at all, until a process exits or you hit Ctrl-C.

Automation leases

Scripts and AI agents hold the Mac awake through bounded leases they must keep renewing, so a crashed tool's lease simply expires. Live countdowns in the menu, Stop ends them all, and a bundled MCP server plus a one-click agent skill teach Claude Code, Gemini CLI, Grok, or Codex the whole protocol.

Fifteen languages

The whole app is translated: the menu, the Setup and Gaming and Streaming screens, notifications, VoiceOver labels, and the desktop widgets. Pick your language in Preferences or on the Welcome screen, or let it follow the system.

Shortcuts and URL scheme

First-class Shortcuts actions (start, stop, toggle, optionally for N minutes) that work from Spotlight and Siri too, plus keepresso://start?duration=60 or until=18:00 for Raycast, Alfred, and scripts.

Widgets and Control Center

Live-countdown desktop and Notification Center widgets on macOS 14 and up, plus a Control Center toggle on macOS 26 to start or stop a session, all without opening the menu.

Headless-Mac toolkit

A setup checklist probes sleep, auto-restart, auto-login, and remote access, and an experimental HiDPI virtual display keeps Screen Sharing crisp with no dummy plug.

Install

One brew away

Either way, Keepresso keeps itself up to date from there with signed Sparkle releases.

Homebrew

$brew install --cask gyorgysh/keepresso/keepresso

Installs the signed, notarized app straight from the tap, and puts the keepresso command on your PATH so scripts can reach it right away. Update along with the rest of your casks, or let the app update itself.

Manual

Download the latest DMG from Releases, drag Keepresso to Applications, and launch it. Click the cup in the menu bar and you are brewing.

Want the keepresso command too? A DMG install does not touch your PATH, so link it once.

Closed-display mode flips a system setting (pmset disablesleep), so it needs administrator approval. Approve the helper once under Login Items and it never asks again.

Works well with

TELEGRAMATLAS
one message in Telegram, the whole crew moves
MyAgens

Already running agents on that always-on Mac? MyAgens gives it a crew of Claude Code agents you command from Telegram: approvals, memory, and scheduled runs, all from your phone.

Keepresso keeps the lights on. MyAgens works the night shift.

MyAgens.com