Не давайте Mac засыпать из командной строки
Keepresso поставляется с небольшим инструментом командной строки, чтобы управлять им из терминала, shell-скрипта, Makefile или задачи CI, не обращаясь к строке меню. Команда называется keepresso, и она работает двумя способами: она может общаться с приложением в строке меню или сама держать Mac активным, как встроенная caffeinate.
Установите команду
Если вы установили Keepresso через Homebrew, команда keepresso уже есть в вашем PATH, ничего делать не нужно:
brew install --cask gyorgysh/keepresso/keepresso
Если вы установили приложение из DMG, инструмент лежит внутри пакета приложения, и ваш PATH пока о нём не знает. Свяжите его один раз:
sudo ln -s /Applications/Keepresso.app/Contents/Helpers/keepresso /usr/local/bin/keepresso
Проверьте, что всё подключено:
keepresso version
Управление приложением
Эти команды передаются приложению Keepresso, запуская его, если оно ещё не работает. Это управляемый скриптами двойник меню.
keepresso start # запустить сессию без ограничения по времени
keepresso start --for 90 # запустить сессию на 90 минут
keepresso start --until 18:00 # работать до заданного времени
keepresso stop # завершить текущую сессию
keepresso toggle # включить или выключить
Так долгая задача может будить Mac при начале и давать ему заснуть по завершении:
keepresso start
make release
keepresso stop
Читайте статус
keepresso status сообщает, выполняется ли сессия, и её код выхода легко использовать для ветвления в скрипте:
0Mac поддерживается активным1не поддерживается2приложение не запущено
keepresso status && echo "awake" || echo "asleep"
Добавьте --json для ответа, пригодного для машинной обработки:
keepresso status --json
То же состояние сессии также отражается в файле, так что приложение в строке меню, строка статуса или виджет могут прочитать его, ничего не запуская:
~/Library/Application Support/Keepresso/status.json
В нём хранится текущее состояние и метки времени в формате ISO 8601.
Автономное удержание без приложения
Иногда вы вообще не хотите привлекать приложение, вам просто нужно, чтобы вот эта конкретная оболочка не давала Mac заснуть, точно как caffeinate. В этом режиме сам процесс keepresso удерживает power assertion, и Mac свободен снова заснуть в момент его завершения.
keepresso -i # удерживать до нажатия Ctrl-C
keepresso -t 3600 # удерживать заданное число секунд
keepresso -w 5123 # удерживать до завершения процесса 5123
keepresso -d # также не давать засыпать дисплею (сочетается с остальными)
keepresso -u # объявить активность пользователя: разбудить дисплей сейчас
Самый полезный паттерн, это привязать бодрствование к жизни команды или оболочки:
keepresso -w $$ & # оставаться активным, пока жива эта оболочка
ffmpeg -i in.mov out.mp4 & keepresso -w $! # держать, пока не закончится кодирование
Поскольку эти удержания, это настоящие power assertion macOS, они видны в pmset -g assertions и в собственной панели активности Keepresso, рядом с любым другим приложением, удерживающим Mac активным.
Аренда для автоматизации, для скриптов и агентов
start без stop может навсегда приковать Mac к бодрствованию, если скрипт упадёт. Для автоматизации без присмотра берите вместо этого аренду: ограниченный по времени грант, который владелец должен постоянно продлевать. Если инструмент умирает, аренда истекает, и Mac снова может уснуть.
ID=$(uuidgen)
keepresso lease acquire --id "$ID" --tool my-script --task "nightly render" --ttl 600
keepresso lease heartbeat --id "$ID" # renew before half the TTL elapses, on a loop
keepresso lease release --id "$ID" # done, let the Mac rest
keepresso lease list --json # every live lease, machine-readable
Активные аренды видны в меню с обратными отсчётами, Keepresso объединяет их все, а максимальное время жизни (не более 7 дней) это потолок, который heartbeat не может продлить. Полный протокол, MCP-сервер и навык агента в один клик описаны в статье позвольте ИИ-агентам держать Mac активным.
Расписание пробуждения
CLI также может прочитать запланированные системные пробуждения и, с вашего разрешения, изменить их:
keepresso wake status # read the schedule, always allowed
keepresso wake set --at "2026-07-24 07:30" # one-shot wake
keepresso wake set --repeat MTWRF --time 07:30 # repeating wake
keepresso wake clear
status работает для всех. set и clear применяют общесистемное изменение через помощника администратора, поэтому они работают только пока в разделе Настройки, «Автоматизация» включена опция Разрешить автоматизации менять расписание пробуждения. По умолчанию она выключена.
Смотрите также
- Управляйте Keepresso из Shortcuts, Raycast или скрипта о действиях Shortcuts и URL-схеме
keepresso://для автоматизации без терминала. - Keepresso против Amphetamine, KeepingYouAwake и caffeinate о том, как Keepresso соотносится со встроенной командой
caffeinate.
Получите Keepresso
Бесплатно и с открытым исходным кодом, для macOS 14 и новее. Установите его и не давайте Mac засыпать на ваших условиях.
Ещё в Использование Keepresso
