Keepresso
Keepresso
Использование Keepresso

Не давайте Mac засыпать из командной строки с помощью keepresso CLI

Обновлено Jul 6, 2026 2 min

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 сообщает, выполняется ли сессия, и её код выхода легко использовать для ветвления в скрипте:

  • 0 Mac поддерживается активным
  • 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 stop

Поскольку эти удержания, это настоящие power assertion macOS, они видны в pmset -g assertions и в собственной панели активности Keepresso, рядом с любым другим приложением, удерживающим Mac активным.

Смотрите также

Получите Keepresso

Бесплатно и с открытым исходным кодом, для macOS 14 и новее. Установите его и не давайте Mac засыпать на ваших условиях.

Ещё в Использование Keepresso

Держите Mac активным заданное время
Запустите сессию поддержания активности по таймеру, чтобы Mac оставался активным во время загрузки или рендеринга, а затем засыпал сам.
Не давайте MacBook засыпать с закрытой крышкой
Не давайте MacBook засыпать при закрытии крышки, от батареи, без внешнего дисплея и без кабеля питания. Бесплатно и с открытым исходным кодом.
Оставайтесь активным только тогда, когда это важно, с умными триггерами
Задайте условия, чтобы Keepresso не давал Mac засыпать только пока работает приложение, идёт звонок, вы на питании от сети и не только. Никогда не активен там, где не нужно.
Держите Mac активным, но позвольте экрану выключаться
Держите Mac активным во время загрузки или сборки, пока дисплей засыпает, чтобы экономить заряд и беречь экран.