СейчасКак я решил загрузить Mac mini работой
- Как я решил загрузить Mac mini работой
- Две подписки не складываются в одну большую
- Как я управляю Mac mini с MacBook
- Окно закрыто, работа доступна
- Что пришлось поправить при настройке
- Как я синхронизирую файлы между компьютерами
- Как я бы повторил это с нуля
- Вместе с компьютером пришлось разобрать проекты
- Следующий шаг
- Связанные материалы
У меня есть MacBook Air, Mac mini и куча проектов. Почти всю работу я почему-то продолжал делать на ноутбуке. Рассказываю, как я разделил работу между MacBook Air и Mac mini, подключил Codex по SSH и впервые почувствовал, что могу управлять всем этим хозяйством из одного окна.
Удивительный момент случился, когда я сидел за MacBook Air и разговаривал с Codex. Мы обсуждали работу, а новая задача уже запускалась на Mac mini. Окно Codex на mini было закрыто. Общий экран я не открывал. Текст из одного компьютера в другой не переносил.
Я знал, что удалённый доступ существует. Но одно дело знать, другое — сидеть со своим обычным ноутбуком и видеть, как разговор превращается в работу на другой машине.
Вот это было прямо хорошо.
Как я решил загрузить Mac mini работой
Mac mini у меня уже был. На нём уже была настроена генерация аудио для сайта, синхронизированная с VPS. Там же работали бэкапы, отдельные процессы codex exec для обновления базы знаний на сайте и локальный Qwen 3.8. Но в целом я использовал его гораздо меньше, чем мог.
При этом один аккаунт ChatGPT Pro жил на двух компьютерах. Проектов становилось больше, задачи становились длиннее, и одной подписки мне перестало хватать. Сбросы лимитов от OpenAI радовали, но строить рабочий график вокруг очередного подарка неудобно.
Тогда я увидел сообщение Tibo из OpenAI, которое понял как предупреждение: новые подписки Pro могут на время приостановить. Купил вторую Pro. По моему наблюдению, примерно через сутки оформить такую подписку уже не получалось.
10 сентября Tibo объявил о паузе подписок Pro за $200. Он объяснил это нагрузкой на системы и отдельно уточнил: существующие аккаунты не затронуты, остальные планы и API остаются доступны.
Зато повод разобраться с собственным хозяйством оказался прекрасный.
Сначала мы обсуждали маршрутизаторы, прокси, Codex Router и LiteLLM. Хотелось придумать красивую конструкцию, которая позволяет использовать одновременно лимиты двух подписок. В какой-то момент конструкция начала выглядеть сложнее работы, ради которой мы её затевали.
Я выбрал понятное разделение: у каждой машины свой аккаунт, а у проектов появляется постоянное место исполнения.
MacBook Air остаётся со мной. На нём идеи, консультации, Blender и задачи, которым нужны локальные файлы или приложения. Mac mini получает постоянные проекты и длинную работу. Он остаётся включённым, а я подключаюсь к нему с Air.
Теперь стало понятно, какие проекты оставить на Air, а какие отправить на mini.
Две подписки не складываются в одну большую
Здесь легко нарисовать себе лишнюю магию. Купил вторую подписку, соединил компьютеры — и получил огромный общий запас возможностей.
В нашей схеме квоты остаются раздельными. Локальная задача на Air использует его авторизацию. Удалённая задача выполняется на mini с авторизацией удалённого Codex. Поэтому я выбираю, где будет жить проект и выполняться работа. Автоматической переброски задачи на другой аккаунт при исчерпании лимита мы не настраивали.
Для контроля я использую Vibe Island: вижу, что происходит на каждой машине и сколько лимитов осталось у обеих подписок. Специально купил его за 15 долларов и ни разу не пожалел.
Две Pro для самой идеи не обязательны. Codex доступен в разных планах ChatGPT, а объём использования зависит от тарифа. Можно рассматривать и Pro плюс Plus, если это соответствует вашей нагрузке.
Подписки и их лимиты остаются раздельными. А файлы проектов я синхронизирую между компьютерами через Git и GitHub: зафиксированные изменения можно передать с одной машины на другую.
Как я управляю Mac mini с MacBook
Главное удобство обнаружилось в подключении по SSH. Это защищённый способ работать с другой машиной: обращаться к её файлам и запускать на ней команды.
В Codex можно добавить удалённый проект и вести его с ноутбука. Порядок такой: подготовить SSH-подключение, установить и авторизовать Codex на удалённой машине, затем выбрать её и папку проекта в настройках Connections.
Мы сначала решили, что первый чат обязательно надо вручную создать на mini. Оказалось, в нашей конфигурации достаточно зарегистрировать удалённый проект. После этого новые задачи можно создавать с Air.
В моей сборке путь выглядел так: Settings → Connections → SSH → нужное подключение → Add a remote project. Там сохраняется папка, которая находится именно на mini. Название последней кнопки в вашей версии может отличаться; ориентиром служит выбор удалённой папки.
После этого я остаюсь в своём привычном окне. Обсуждаю замысел, отправляю работу в нужный проект и читаю результат.
Для человека с множеством проектов это особенно приятно. Переключение между компьютерами перестаёт быть отдельным маленьким мероприятием.
Ещё очень пригодился задел, который я сделал давно: ключи, пароли сервисов и служебные доступы у меня хранятся в зашифрованном виде через SOPS, в связке с age и mise. На сайте есть отдельный материал — «Секреты в репозитории без риска: связка mise + sops + age для команд».
Тогда я настраивал это на будущее. А теперь, когда понадобилось готовить рабочее окружение на mini, эта подготовка очень пригодилась: уже был понятный порядок хранения и подключения доступов к нужным процессам.
Окно закрыто, работа доступна
За интерфейсом есть отдельный процесс: app-server, сервер приложения Codex. В режиме Remote SSH приложение запускает его на удалённой машине. Именно там находятся рабочие файлы и выполняются команды.
Раньше для базы знаний у меня уже использовался codex exec: отдельный командный запуск задания. Он и работа через удалённый app-server — разные способы запуска, хотя в обоих случаях участвует Codex.
Мы проверили управление с Air при закрытом Desktop на mini. В нашей конфигурации оно работало.
Но уже возможность не держать второй интерфейс перед глазами здорово разгрузила голову.
Что пришлось поправить при настройке
После смены аккаунта удалённый процесс продолжал жить со старым состоянием авторизации. На уровне ощущений это выглядит нелепо: я уже вошёл куда надо, почему он ещё чего-то хочет?
Мы обновили состояние нужного app-server. Перезапускать всё подряд для этого не потребовалось. Встречалась и блокировка о том, что чат открыт в другом приложении. Здесь полезно сначала выяснить, какой клиент держит задачу, и спокойно закончить работу там.
Ещё одна ловушка: вход в ChatGPT и разрешения на выполнение команд относятся к разным настройкам. Старый активный ход не получил новые права просто потому, что изменилась общая настройка. У него оставались прежние ограничения на файлы и сеть. Поэтому после изменения прав нужно проверять конкретную задачу, а не только переключатель в настройках.
С сетью получилось почти комически. Через Tailscale наше подключение шло через промежуточный узел и заметно тормозило. Установление SSH-соединения занимало около четырёх секунд. По домашней сети — примерно 0,2–0,3 секунды.
Это замеры нашей конфигурации, а не приговор Tailscale. Дома мы оставили локальную сеть, разбор удалённого маршрута отложили.
Заодно выяснили, что два подключения к одной машине могут запутать отображение задач. В нашей установке регистрация проектов была привязана к конкретному подключению. Для начала я бы оставил один понятный маршрут и проверил его целиком.
Как я синхронизирую файлы между компьютерами
Подключившись к mini, я получил доступ к его рабочему месту. Файлы с Air туда от одного подключения не переехали.
Для версий и передачи зафиксированных изменений у нас Git и GitHub. У каждого компьютера своя рабочая копия проекта. Незавершённые изменения нужно отдельно сохранить и проверить; они не появляются на второй машине от того, что вы открыли тот же репозиторий.
Мы сохранили старые рабочие копии и начали готовить новые отдельно. Для новых задач на mini использовали worktrees: отдельные рабочие каталоги Git, чтобы параллельная работа не мешала друг другу.
Массовый переезд старых чатов я тоже устраивать не стал. Начатое завершаю там, где начал. Новые задачи отправляю в выбранное место.
Истории разговоров автоматически в GitHub не попадают. Ключи доступа и служебную папку .git тоже нельзя бездумно добавить в общую синхронизацию. Для каждого вида данных нужен понятный способ передачи.
Особенно хорошо это понимаешь, когда начинаешь проверять окружение. Вторая подписка не приносит с собой установленные программы, навыки и доступ к вашим сервисам.
Например, для Notion у нас уже был ключ интеграции с доступом к нужным базам. Устанавливать Notion Desktop ради чтения через API не понадобилось. Сначала проверили чтение нужных данных, затем работу редакционных задач. Сам факт, что ключ где-то лежит, ещё ничего не говорит о его правах.
Как я бы повторил это с нуля
Я бы начал с одного проекта, который легко проверить. Лучше небольшой полезный результат, который вы сможете открыть и оценить сразу.
1. Назначьте машинам роли. Выпишите, что должно оставаться на ноутбуке, а что может постоянно работать на стационарном компьютере. Для каждого проекта укажите основную машину. Пока этого нет, второй компьютер только удваивает число мест, где приходится искать нужную папку.
2. Подготовьте SSH. Проверьте обычное подключение с ноутбука к стационарной машине. Для первого опыта дома удобна локальная сеть. Удалённый компьютер должен быть включён и доступен в сети; режим сна тоже учитывайте. Не открывайте доступ всему интернету ради быстрого эксперимента.
3. Проверьте Codex на второй машине. Там должен быть установлен Codex и выполнен вход в нужный аккаунт. Команда codex должна быть доступна в оболочке, которую запускает SSH. Наличие одного приложения в папке программ ещё не проверка готовности.
4. Подготовьте папку проекта. Сохраните незавершённую работу. Сделайте отдельную рабочую копию на второй машине и проверьте её состояние. Убедитесь, что доступны нужные зависимости и инструкции проекта. Старую копию пока оставьте на месте.
5. Добавьте удалённый проект в Codex. На ноутбуке откройте Connections, выберите SSH-подключение и сохраните папку проекта на второй машине. Создайте в этом проекте новую задачу. Начинать её вручную у второго монитора в нашем случае не потребовалось.
6. Попросите сначала только проверку. Вот пример задания, которое можно адаптировать:
Проверь, на какой машине и в какой папке выполняется эта задача. Покажи состояние рабочей копии Git, если это репозиторий, и доступность нужных инструментов. Авторизацию опиши только именем профиля или типом плана, если это доступно; не показывай токены и личные данные. Ничего не меняй.
Если аккаунт нельзя надёжно определить из задачи, проверьте его отдельно средствами установленного Codex. После этого дайте небольшое задание с очевидным результатом, например подготовить локальную заметку по файлам проекта. Откройте результат и убедитесь, что он находится там, где вы ожидали.
Затем можно закрыть Desktop на второй машине и проверить управление с ноутбука. Испытание отключения самого ноутбука оставьте отдельным шагом, если вам нужна такая автономность.
Так у вас появится одна работающая связка, которую уже можно повторять для других проектов.
Вместе с компьютером пришлось разобрать проекты
Самый полезный побочный эффект оказался управленческим.
Когда начинаешь решать, что переносить, приходится смотреть на каждый проект и спрашивать себя, какую работу он вообще должен делать. Тут из папок выходят старые планы. Некоторые давно потеряли смысл, другие описывают одно и то же разными словами.
Контентная платформа, например, оказалась гораздо шире написания статей. В ней есть приём материалов из Telegram, редакционная работа в Notion, Directus как слой хранения и API, база знаний, поиск тем, аудио и видео. Поэтому для каждого процесса пришлось отдельно проверить, что ему нужно для работы на mini.
На mini уже зарегистрированы инфраструктурный проект, внутренний пульт и контентная платформа. Пульт работает, редакционные задачи и доступ к Notion проверены. Отдельный проход обновления базы знаний уже выполняется.
При этом регулярный сбор новых тем ещё не запущен. Видео пока не готово к работе без присмотра. Reload, публичный сайт и другие постоянные проекты продолжаем разбирать. Старые пересекающиеся планы тоже потребовали ревизии.
В Plane, системе управления задачами, фиксируем, зачем переносим каждый проект, что в нём готово и какой следующий результат хотим получить. Так меньше шансов заменить работу бесконечным обустройством рабочего места.
Я пришёл к этому с довольно простой мыслью: мне стало мало одной подписки, надо что-то придумать.
А теперь сижу за Air, обсуждаю задачу, и mini получает работу. Я вижу, где она выполняется, и могу вернуться за результатом из того же окна.
В этом и есть удовольствие. Теперь Mac mini выполняет свои задачи, а я управляю ими с MacBook из одного окна.
Следующий шаг
Как настроить Mac mini без монитора для ИИ-агентов — подготовка самой машины и вариантов удалённого доступа.
Связанные материалы
- Статья: Как я собрал личную Codex-станцию: новый MacBook, Mac mini и два iPhone.
- Блог: Codex научился переписываться между чатами.
- База знаний: Контекст-инжиниринг — как собирать рабочий контекст для моделей нового поколения.
Если у вас тоже несколько компьютеров и проектов, начать можно с одной такой связки. По первому законченному заданию станет гораздо понятнее, что стоит переносить дальше.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov
Если хотите разобрать свою задачу — напишите мне Если хотите разобрать свою задачу — напишите мне.
Можно прийти с идеей, черновым контекстом или уже живой задачей. Помогу быстро понять, где реальный следующий шаг, а где лишний шум.
Обычно хватает 2–3 сообщений, чтобы понять, могу ли я здесь реально помочь и в каком формате лучше двигаться дальше.
Дальше по теме
Пока я выбирал Mac mini под разработку, в Codex появилась передача рабочего треда между компьютерами. Именно этого не хватало такой машине.