Ваш Mac уснул на середине загрузки 40 ГБ. Или оборвалась удалённая сессия, или экран погас посреди демо. Кто-то советует вам поставить приложение Amphetamine для Mac — и не зря: оно бесплатное, живёт в Mac App Store с 2014 года и предлагает больше способов решить, когда Mac не спит, чем большинству людей нужно.

При этом оно работает на механизмах, которые macOS даёт вам бесплатно. Понимание, какая настройка какому механизму соответствует, подсказывает, когда нужно приложение, когда хватит одной команды в Terminal, и почему обычный переключатель «не спать» сдаётся, стоит закрыть крышку.

Коротко: Amphetamine — бесплатное приложение для строки меню от Уильяма Густафсона, которое не даёт Mac — и, по желанию, его дисплею — уснуть: по требованию, по таймеру, пока скачивается файл или работает приложение, либо автоматически через Triggers на основе правил. Установите его из Mac App Store; требуется macOS 10.13 или новее, текущая версия — 5.3.2, вышла в ноябре 2023 года. Для разовой задачи основную работу выполняет встроенная команда caffeinate. Своё место Amphetamine зарабатывает благодаря Triggers и режиму с закрытой крышкой.

Что такое Amphetamine для Mac и кто его поддерживает

Amphetamine — утилита из Mac App Store в песочнице от независимого разработчика Уильяма Густафсона. Страница в App Store (проверено в октябре 2026) прямо говорит о деньгах: бесплатно, без рекламы, без встроенных покупок, без платного тарифа и без отслеживания.

Две вещи, которые страница не выносит на первый план.

Последний релиз — ноябрь 2023 года. API поиска App Store от Apple сообщает о версии 5.3.2, вышедшей 10 ноября 2023 года. Первый релиз — ноябрь 2014-го.

В примечаниях к 5.3.2 исправлен вылет на Sonoma. С тех пор Apple выпустила Sequoia, Tahoe и macOS 27 — см. переключатель версий в руководстве пользователя Mac от Apple. Это не делает приложение сломанным, но ни одно изменение этих систем не было учтено в релизе.

Название едва не привело к его удалению. В декабре 2020 года Apple сообщила Густафсону, что название и иконка с таблеткой, похоже, «пропагандируют ненадлежащее использование контролируемых веществ», и установила срок до 12 января 2021 года. 2 января 2021 года, по его словам, Apple признала, что и то и другое используется «метафорически» и в «медицинском смысле». Приложение сохранило название.

Сессии и Triggers: как приложение Amphetamine не даёт Mac уснуть

Сессия — это ручной режим. Из строки меню вы запускаете сессию: бессрочную, на заданную длительность, до определённого времени, пока скачивается файл или пока работает выбранное приложение. Внутри сессии вы решаете, разрешены ли сон дисплея, экранная заставка, сон с закрытым встроенным дисплеем, автоматическое движение курсора и блокировка экрана (страница в App Store).

Trigger запускает сессию сам, когда выполняются его условия. Критерии на странице делятся на пять групп:

  • Дисплеи: подключён внешний дисплей или изображение дублируется.
  • Устройства: подключено USB- или Bluetooth-устройство, смонтирован диск или том, используются наушники или другой аудиовыход.
  • Питание: батарея заряжается или выше порога, адаптер питания подключён или отключён.
  • Сеть: конкретный IP-адрес, Wi-Fi-сеть или DNS-сервер либо подключение Cisco AnyConnect VPN.
  • Приложения и нагрузка: приложение запущено, приложение запущено и на переднем плане, загрузка CPU выше порога, Mac простаивает дольше порога.

Вот это macOS не повторяет. Автоматизации Shortcuts, добавленные в macOS 26, срабатывают в момент события — подключён дисплей, Mac присоединился к Wi-Fi-сети, подключена зарядка. Критерии Amphetamine — это условия «пока»: сессия длится, пока условие выполняется.

В истории версий также упоминается критерий Schedule и исправлена ошибка, из-за которой в Trigger нельзя было добавить больше одного критерия.

Одно ограничение песочницы: критерий запущенного приложения видит только то, что позволяет песочница. Начиная с 5.3 скрипт Process Discovery, устанавливаемый кнопкой (?) в меню While App Is Running, позволяет Amphetamine видеть больше процессов на Apple Silicon (примечания к релизу). До 5.3 для этого требовался отдельный помощник — Amphetamine Enhancer.

Работает ли Amphetamine с закрытой крышкой?

Да — это Closed-Display Mode, опция сессии, которая блокирует сон при закрытом встроенном дисплее. На Apple Silicon есть подвох: согласно примечаниям к релизу, подключение или отключение питания посреди сессии могло её ломать. В 5.3 добавили скрипт-исправление, требовавший Touch ID или пароль администратора; в 5.3.1 запрос убрали. Это дополнение, Amphetamine Power Protect, распространяется отдельно на GitHub, потому что, как объясняет его страница установки, Apple не позволяет Amphetamine устанавливать его напрямую.

То, что устанавливает Power Protect, конкретнее названия. Файл конфигурации в опубликованных файлах разработчика — это правило sudoers, позволяющее любой учётной записи администратора выполнять ровно две команды без пароля: pmset -a disablesleep 1 и её отмену pmset -a disablesleep 0. В комментариях скрипта сказано, что включение Power Protect означает отключение сна при закрытом встроенном дисплее.

disablesleep нет в man-странице pmset от Apple; его состояние отображается как SleepDisabled в выводе pmset -g. Авторы двух конкурирующих приложений для закрытой крышки, Sleepless и Clamshell, говорят, что оно не даёт закрытому MacBook уснуть и от батареи. Документация Apple его не упоминает.

Amphetamine Enhancer, другое дополнение из поисковой выдачи, старше. Согласно его README, это был открытый помощник с нотариализацией Apple, который добавлял страховку для режима с закрытым дисплеем и позволял Triggers видеть каждый запущенный процесс — то, что приложение в песочнице не может перечислить само. Его репозиторий последний раз обновлялся в июле 2020 года (GitHub).

Сегодня на Apple Silicon мониторинг процессов встроен, а надёжность при закрытой крышке обеспечивается через Power Protect.

Поддерживаемый Apple путь не требует приложений. Ноутбук Mac с закрытой крышкой продолжает выводить изображение на внешний дисплей, пока он «подключён к питанию и использует внешнюю клавиатуру и мышь» (Apple Support). Режим clamshell MacBook для длительных задач я разобрал в прошлом посте.

Нужен ли вам Amphetamine вообще?

Если вам нужна автоматизация «не спать, когда происходит X» или режим с закрытой крышкой и переключателем в строке меню — да. Для разовой задачи инструмент уже есть в macOS:

Вам нужно Простейший инструмент Ближайшая функция Amphetamine
Не спать, пока команда не завершится caffeinate -i ./long-job.sh While app is running
Не спать, пока запущенный процесс не завершится caffeinate -i -w <pid> While app is running
Не спать следующие два часа caffeinate -i -t 7200 Сессия по таймеру
Держать экран включённым для слайдов или дашборда caffeinate -d Сессия с отключённым сном дисплея
Не давать внешнему диску простаивать caffeinate -m Drive Alive
Никогда не засыпать от простоя при питании от сети System Settings → Battery → Options → «Prevent automatic sleeping on power adapter when the display is off» —
Не спать, пока используется SSH-сессия Часто ничего: проверьте ttyskeepawake в pmset -g —
Не спать в доке, в Wi-Fi-сети, на VPN, на зарядке Trigger в Amphetamine Trigger
Крышка закрыта, есть внешний дисплей, клавиатура, мышь и питание Ничего — режим закрытого дисплея от Apple —
Крышка закрыта, внешнего дисплея нет Closed-Display Mode в Amphetamine (плюс Power Protect на Apple Silicon) или вручную sudo pmset -a disablesleep 1 Closed-Display Mode

Загрузки в браузере — единственный тип сессии без аккуратного однострочника: оборачивать командой нечего.

Два примечания к таблице. Путь через Battery взят из руководства Apple по сну и пробуждению; на настольных Mac тот же переключатель находится в разделе Energy. А ttyskeepawake, согласно man-странице pmset, откладывает сон от простоя, пока активна удалённая сессия входа, — на проверенном мной MacBook с macOS 26.7 он был равен 1.

Что удерживает каждая опция — в терминах самой macOS

Amphetamine, как и caffeinate, работает, удерживая power assertions — именованные запросы, которые говорят macOS не спать; в примечаниях к 5.3.2 описана работа над «созданием и освобождением power assertions» (App Store). pmset перечисляет все assertions вместе с удерживающими их процессами, а caffeinate создаёт их из Terminal (man-страница). Я запустил каждый флаг на macOS 26.7 и прочитал, что он создал, через pmset -g assertions:

Флаг Создаваемый assertion Что откладывает Что не может остановить
нет или -i PreventUserIdleSystemSleep Сон от простоя; дисплей всё равно может уснуть Закрытие крышки, сон через меню Apple, низкий заряд
-d PreventUserIdleDisplaySleep Сон дисплея, а вместе с ним и сон от простоя Закрытие крышки
-m PreventDiskIdle Простой дисков Сон системы
-s PreventSystemSleep Сон системы, только при питании от сети Всё что угодно при работе от батареи
-u UserIsActive Включает дисплей; на 5 секунд, если -t не указывает иное —

Источник последней колонки — Apple: IOPMLib.h, заголовочный файл, определяющий эти assertions, покрывает первые три строки; man-страница caffeinate покрывает -s. Вот настоящая запись, которую создал caffeinate -i -t 5 (фрагмент: общесистемная сводка и другие процессы удалены):

$ caffeinate -i -t 5 &
$ pmset -g assertions
   pid 78373(caffeinate): [0x001a50d600019830] 00:00:01 PreventUserIdleSystemSleep named: "caffeinate command-line tool"
	Details: caffeinate asserting for 5 secs
	Localized=THE CAFFEINATE TOOL IS PREVENTING SLEEP.
	Timeout will fire in 4 secs Action=TimeoutActionRelease

Выполните ту же команду во время сессии Amphetamine — и увидите, что удерживают выбранные вами опции; в каждой строке назван её владелец. Это и самый быстрый ответ на вопрос «что не даёт моему Mac уснуть?» — обычный pmset -g печатает sleep prevented by, а затем имена процессов.

Крышка — вот где люди застревают. Про assertion против сна от простоя, который caffeinate берёт по умолчанию и с флагом -i, заголовочный файл Apple говорит, что система «всё ещё может уснуть при закрытии крышки, через меню Apple, при низком заряде или по другим причинам сна». Поэтому caffeinate и KeepingYouAwake, который его оборачивает и прямо говорит, что не может держать закрытый MacBook в бодрствовании, останавливаются перед крышкой. Закрытая крышка требует либо связки Apple с внешним дисплеем, либо переопределения сна при закрытии крышки.

Безопасен ли Amphetamine?

По меркам утилит для Mac приложение Amphetamine хорошо изолировано. Приложения из Mac App Store работают в песочнице — именно поэтому Enhancer вообще существует (README Enhancer). Метка конфиденциальности разработчика в App Store указывает только диагностику, не привязанную к вам.

Все три дополнения, работающие вне песочницы, подключаются по желанию и опубликованы на GitHub: Enhancer с лицензией MIT и нотариализацией Apple; скрипт Process Discovery, позволяющий Triggers видеть больше процессов; и Power Protect — скрипт плюс файл sudoers, покрывающий ровно те две команды pmset.

Реалистичный риск — забытая сессия, которая не даёт Mac уснуть от батареи. Amphetamine умеет завершать сессии при низком заряде — включите это. Если вы перестанете пользоваться Closed-Display Mode, пункт Feedback & Support → Uninstall Scripts… в его меню удалит его скрипты.

Где здесь Timex

Я делаю Timex, трекер времени для Mac, и в нём есть переключатель Stay Awake — так что вот честное сравнение. Stay Awake — это один переключатель. Он откладывает сон от простоя так же, как caffeinate -i, пока вы его не выключите, переживает перезапуски и освобождается при выходе. Дисплей всё равно засыпает, экран всё равно блокируется. С подключённым питанием и закрытой крышкой Mac продолжает работать; от батареи с закрытой крышкой macOS всё равно его усыпляет. Это переключатель, а не движок правил.

Я выпустил его, чтобы решить собственную проблему — долгие прогоны локальных моделей останавливались, потому что Mac засыпал, — и хотел, чтобы переключатель был рядом с трекером, который показывает, продолжался ли прогон. Об этом и пост про учёт времени прогонов локальных LLM. Stay Awake в Timex бесплатен навсегда. Но если вам нужен просто неспящий Mac, Amphetamine бесплатен и умеет гораздо больше. Timex требует macOS 15 или новее на Apple Silicon, и ставить его стоит только ради трекера.

Честные оговорки

Closed-Display Mode я для этой статьи не тестировал. Всё, что здесь о нём сказано, взято из примечаний к релизам и опубликованных файлов разработчика.

disablesleep не документирован. Если выставляете его вручную, отмените после завершения задачи командой sudo pmset -a disablesleep 0.

Приложение без релизов стареет незаметно. Версии 5.3.2 почти три года. Если обновление macOS сломает Trigger, исправления не выходило.

Закрытая крышка задерживает тепло. Тяжёлая задача при закрытой крышке работает с худшим обдувом, как отмечает FAQ Sleepless, а руководство Clamshell предостерегает от запуска в сумке или чехле. Держите его на столе.

Так ставить?

Если вам нужен Mac, который сам решает, когда не спать, — да: ничто встроенное в macOS не привязывает бодрствование к дисплею, сети или зарядке так, как это делает Trigger, а Amphetamine ничего не стоит. Если он нужен раз в неделю ради загрузки, caffeinate -i во вкладке Terminal — это одно приложение меньше для установки.

А если хотите ещё и знать, куда ушли ваши часы, пока Mac бодрствовал, — скачайте Timex. Триала на 100 часов хватит на учёт; Stay Awake в любом случае остаётся бесплатным.

— DK