# Insomnia: как оставить AI-агентов работать при закрытом MacBook

Ставишь Insomnia на MacBook, настраиваешь закрытую крышку, паузу лишних приложений и переход на раздачу с телефона. Потом запускаешь агента на длинную задачу, закрываешь ноутбук и уходишь - работа идёт без тебя.

// Шаг 0

## Что это и где лежит

Insomnia - бесплатная программа с открытым кодом от Krish Garg, «caffeinate для эпохи агентов». Живёт в строке меню иконкой с глазом: без окна и без иконки в Доке. Ставишь таймер - и MacBook не засыпает даже с закрытой крышкой, пока таймер не кончится. Claude Code, Codex, Docker и браузер продолжают работать.

[Insomnia на GitHub](https://github.com/krishhgg/Insomnia)

[Сайт Insomnia](https://getinsomnia.app/)

врезка `// Проверь до установки`: текст «Нужен MacBook на Apple Silicon (M1 и новее) и macOS 26 или новее. Для сборки из исходников - Xcode со Swift 6.2 или новее. Программа экспериментальная: держи ноутбук на ровной поверхности с вентиляцией, а не в закрытой сумке.»

- [ ] Открыть меню Apple > Об этом Mac и убедиться, что чип Apple M-серии и macOS 26 или новее
- [ ] Открыть репозиторий Insomnia на GitHub и пролистать README

---

// Шаг 1

## Установка - способ А: через твоего агента

Самый быстрый путь. Открываешь Claude Code или Codex в терминале и вставляешь промт ниже как есть. Агент сам скачает последний стабильный релиз и поставит его по [инструкции из репозитория](https://github.com/krishhgg/Insomnia/blob/main/skills/install-insomnia/SKILL.md). Где нужен пароль администратора - агент даст команду, ты запустишь её сам в Терминале.

```
Install the latest stable Insomnia release by following https://github.com/krishhgg/Insomnia/blob/main/skills/install-insomnia/SKILL.md. If a step needs my password, give me the command to run in Terminal.
```

_Промт для Claude Code или Codex_

// Шаг 1

## Установка - способ Б: руками из релиза v0.1.0

[Релиз v0.1.0 на GitHub](https://github.com/krishhgg/Insomnia/releases/tag/v0.1.0)

- 1 «Скачай два файла» — Со страницы релиза v0.1.0 скачай Insomnia-0.1.0-macos-arm64.zip и SHA256SUMS в одну папку. Открой Терминал и перейди в эту папку командой cd.
- 2 «Проверь, распакуй, установи» — Вставь команды из блока ниже по порядку. Установщик попросит пароль администратора - это он добавляет правило для управления сном.
- 3 «Разреши первый запуск» — Релиз не нотаризован у Apple, поэтому macOS заблокирует первый запуск. Зайди в Системные настройки > Конфиденциальность и безопасность и нажми «Всё равно открыть» напротив Insomnia.

```
shasum -a 256 -c SHA256SUMS
unzip -q Insomnia-0.1.0-macos-arm64.zip
cd Insomnia-0.1.0-macos-arm64
./scripts/install.sh --app ./Insomnia.app
open "$HOME/Applications/Insomnia.app"
```

_Терминал, в папке со скачанными файлами_

Для более новых релизов и ночных сборок команды другие - они в [docs/install.md](https://github.com/krishhgg/Insomnia/blob/main/docs/install.md).

врезка `// Что ставит установщик`: текст «Приложение в ~/Applications/Insomnia.app, агент восстановления (раз в минуту откатывает изменения, если приложение упало) и правило sudo в /etc/sudoers.d/insomnia. Правило даёт любой программе от твоего пользователя без пароля включать и выключать запрет сна и режим энергосбережения через pmset. Прочитай это до установки.»

```
/usr/bin/pmset -a disablesleep 1
/usr/bin/pmset -a disablesleep 0
/usr/bin/pmset -b lowpowermode 1
/usr/bin/pmset -b lowpowermode 0
```

_Ровно эти четыре команды разрешает правило sudo_

- [ ] Установить Insomnia через промт агенту или командами из релиза
- [ ] Разрешить первый запуск в Конфиденциальности и безопасности
- [ ] Найти иконку с глазом в строке меню

---

// Шаг 2

## Закрытая крышка и пауза лишних приложений

Во время сессии закрытая крышка не усыпляет MacBook. Insomnia гасит экран и подсветку клавиатуры, выключает звук, включает режим энергосбережения и замораживает лишнее - по умолчанию Slack, WhatsApp и Discord. Открыл крышку - всё возвращается как было. Подробно - в [docs/lid-close.md](https://github.com/krishhgg/Insomnia/blob/main/docs/lid-close.md).

- 1 «Открой настройки» — Правый клик по глазу в строке меню > Settings.
- 2 «Список заморозки» — В разделе Lid-close actions проверь список приложений, которые встанут на паузу, и добавь свои тяжёлые программы. Хочешь заморозить вообще всё лишнее - включи «Freeze every other app while the lid is closed»: строка «Would freeze now» покажет, что уйдёт на паузу. Zoom, Teams, FaceTime, OBS, Loom и диктовка не замораживаются.
- 3 «Docker - по желанию» — Если Docker Desktop висит без запущенных контейнеров, включи правило Docker - он тоже встанет на паузу. По умолчанию выключено.
- 4 «Батарея и нагрев» — По умолчанию энергосбережение включается ниже 40% заряда, а сессия завершается ниже 10%. При сильном нагреве - энергосбережение, при критическом - конец сессии. Пороги меняются в Settings.

врезка `// Микрофон`: текст «На Apple Silicon закрытая крышка отключает встроенный микрофон на уровне железа. Нужен звонок с закрытым ноутбуком - подключай AirPods или внешний микрофон.»

- [ ] Открыть Settings правым кликом по глазу
- [ ] Проверить список заморозки и добавить свои приложения
- [ ] Решить, нужен ли «Freeze every other app» и правило Docker
- [ ] Проверить пороги батареи и нагрева

---

// Шаг 3

## Раздача с телефона, когда пропадает Wi-Fi

Вышел из дома, Wi-Fi пропал - Insomnia сама подключает MacBook к раздаче с iPhone, и агент не теряет связь. Настраивается один раз. Подробно - в [docs/extras.md](https://github.com/krishhgg/Insomnia/blob/main/docs/extras.md).

- 1 «Разреши автоподключение к точкам доступа» — Системные настройки > Wi-Fi > «Запрашивать подключение к точкам доступа» (Ask to join hotspots) - поставь «Автоматически».
- 2 «Впиши раздачу в Insomnia» — В Settings Insomnia введи имя и пароль точки доступа iPhone. Пароль хранится в связке ключей. После переустановки его нужно ввести заново.
- 3 «Дай доступ к геолокации» — macOS показывает имена Wi-Fi-сетей только приложениям с доступом к службам геолокации. Insomnia просит его ради имён сетей, само местоположение не читает.

- [ ] Включить «Автоматически» для точек доступа в настройках Wi-Fi
- [ ] Ввести имя и пароль раздачи iPhone в Settings Insomnia
- [ ] Разрешить Insomnia службы геолокации

---

// Шаг 4

## Запусти длинную задачу агента и уходи

- 1 «Агент - в tmux» — Запусти Claude Code или Codex внутри tmux: так сессия живёт отдельно от окна терминала, и Insomnia может её подтолкнуть после обрыва сети.
- 2 «Отметь панель для подталкивания» — Если сети нет 90 секунд, Insomnia впишет continue в отмеченные панели tmux. Отметь панель командой ниже и добавь её в Settings. Enter она нажимает, только если ты это включишь.
- 3 «Браузер без притормаживания» — Chrome, Arc, Comet и Chromium тормозят скрытые окна при закрытой крышке. Если агент работает через браузер - в меню по правому клику на глаз выбери «Relaunch [браузер] unthrottled». Браузер перезапустится, вкладки вернутся, если он их восстанавливает.
- 4 «Поставь таймер» — Клик по глазу - введи дни, часы и минуты - Enter. Добавить время - клик по глазу или по таймеру. Закончить раньше - зажми кнопку завершения рядом с таймером.
- 5 «Дай агенту задачу и закрой крышку» — Отправь агенту длинную задачу, закрой MacBook и уходи. Таймер идёт и при закрытой крышке. Открытая крышка сессию не завершает.

```
tmux set-option -p -t <session:window.pane> @insomnia-nudge on
```

_Отметить панель tmux для подталкивания_

врезка `// Первый раз - под присмотром`: текст «Перед первой настоящей сессией запусти короткую на пару минут, закрой крышку при себе, потом открой и посмотри лог: ~/Library/Logs/Insomnia/insomnia.log. Если в меню висит предупреждение о восстановлении - разберись с ним, прежде чем оставлять ноутбук.»

---

// Если передумал

## Удаление

```
./scripts/uninstall.sh
./scripts/uninstall.sh --purge
```

_Из папки установки: первая команда убирает приложение, агент и правило sudo, вторая - ещё и настройки с логами_

---

// Финиш

## Проверь себя

- [ ] Insomnia установлена, глаз в строке меню
- [ ] Список заморозки и пороги батареи настроены
- [ ] Раздача iPhone вписана в Settings, автоподключение к точкам доступа включено
- [ ] Агент запущен в tmux, панель отмечена для подталкивания
- [ ] Пробная короткая сессия с закрытой крышкой прошла, лог прочитан
- [ ] Длинная задача отдана агенту, таймер стоит, крышка закрыта

---

Источник: https://localhost:3000/m/insomnia-kak-ostavit-ai-agentov-rabotat-pri-zakrytom-macbook
