24/7
Как запускать агентов для кода 24/7 на собственном сервере
Постоянно работающему агенту для кода нужны три вещи: машина, которая не засыпает, процесс, который переживает ваше подключение, и способ заметить, когда агенту нужны вы. Вот как получить каждую — от tmux до systemd и демона сессий, — плюс ограничения, которые задаёт ваша подписка.
Короткий ответ
Поместите агента на машину, которая никогда не засыпает (VPS или постоянно включённый домашний компьютер). Запускайте его под чем-то, что переживёт вашу SSH-сессию: tmux для интерактивной работы, пользовательская служба systemd (с включённым lingering), чтобы возвращать tmux при загрузке, или демон, который владеет сессиями. Дайте каждой параллельной сессии собственный git worktree. Агента, работающего 24/7, обычно останавливают лимиты использования вашего тарифа, а не железо: тарифы Claude сбрасываются каждые пять часов, и у них есть ещё и недельные лимиты.
Агент для кода на ноутбуке останавливается, когда закрывается крышка. Перенести его на машину, которая всегда включена, — простая часть. Люди пропускают другие: присмотр (что поддерживает процесс живым и что возвращает его после перезагрузки), изоляцию параллельных сессий и лимиты использования, которые остановят агента задолго до того, как сдастся железо. Это руководство разбирает каждую из них для Claude Code, Codex и других терминальных агентов.
Облако или свой сервер
Сначала решите, нужна ли вам машина вообще. Вендоры теперь сами запускают агентов за вас:
| Облако вендора (например, облачные сессии Claude Code, облачные задачи Codex) | Ваш собственный сервер или домашняя машина | |
|---|---|---|
| Настройка | Подключить GitHub (Claude может также загрузить архив локального репозитория) | VPS или постоянно включённая машина, плюс установка и вход |
| Окружение | Изолированная ВМ на каждую сессию, настраиваемая скриптом; освобождается после бездействия | Ваши инструменты, ваши базы данных, ваши секреты, всё постоянное |
| Сеть и частные сервисы | По умолчанию ограничены (список разрешённых доменов); ваша частная сеть недоступна | Всё, до чего может добраться машина: VPN, tailnet, staging-базы |
| Агенты | Одного вендора | Любой CLI: Claude Code, Codex, OpenCode, Grok Build, agy |
| Стоимость | Использование вашего тарифа (у Anthropic: без отдельной платы за вычисления) | Использование вашего тарифа плюс несколько евро в месяц за машину |
Если ваш проект живёт на GitHub и собирается скриптом настройки, облако вендора требует меньше всего работы. Начните с документации Anthropic по облачным сессиям; claude --cloud "…" запускает такую сессию из терминала. Выбирайте свой сервер, когда агенту нужно то, что есть только на вашей машине, или когда вы хотите агентов разных вендоров рядом. О выборе размера и актуальных ценах — в руководстве покупателя VPS. Mac mini дома тоже подойдёт, если отключить сон.
Присмотр за процессами
Интерактивные агенты — терминальные программы. Они умирают вместе с терминалом, если его не держит что-то другое. Есть четыре варианта, от простейшего к самому надёжному.
1. tmux
tmux new -A -s main
cd ~/src/api && claude # detach: Ctrl-b d · re-attach: tmux attach -t main
tmux переживает разрывы связи, но не перезагрузки. Это правильный инструмент для интерактивной работы, и именно его документация Anthropic советует, чтобы поддерживать сессию Remote Control живой на удалённой машине. В нашем руководстве по tmux, mosh и Tailscale есть конфигурация, которая нужна агентам.
2. systemd + tmux, чтобы всё возвращалось после перезагрузки
Запустить интерактивный TUI напрямую как службу нельзя: ему нужен терминал. Но можно поручить systemd запускать при загрузке отсоединённую сессию tmux. От своего обычного пользователя создайте ~/.config/systemd/user/agents.service:
[Unit]
Description=tmux session for coding agents
[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -d -s main
ExecStop=/usr/bin/tmux kill-session -t main
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now agents.service
sudo loginctl enable-linger "$USER" # start user services at boot, without a login
Так возвращается пустая сессия, а не ваши разговоры. Их возобновление — отдельный шаг (см. Что происходит при перезагрузке ниже).
3. Headless-запуски по расписанию
Для повторяющихся задач — ночного обновления зависимостей, разбора новых issue или перегенерации документации — обойдитесь без TUI. Запускайте claude -p "…" или codex exec "…" из cron или таймера systemd. Подтверждать там некому, так что режим разрешений и список разрешённого задавайте осознанно. Как — описано в статье о безопасном запуске агентов с полными правами.
4. Демон сессий
Самый надёжный вариант — процесс, который владеет сессиями агентов: запускает их, хранит переписку и позволяет подключаться откуда угодно. Серверный режим Remote Control в Claude Code (claude remote-control) — один из них. По умолчанию он обслуживает до 32 одновременных сессий, что настраивается через --capacity, но запускать его всё равно нужно внутри tmux или службы. agy remote-control start регистрирует демон Antigravity как системную службу. Сторонние инструменты, в том числе Maude, разворачивают собственный демон, который работает с несколькими агентами.
Параллельные сессии и worktree
Два агента, правящие одну и ту же рабочую копию, будут перезаписывать изменения друг друга. Дайте каждой сессии собственный git worktree — отдельную рабочую папку и ветку с общей историей репозитория:
git worktree add ../api-auth -b feature/auth
git worktree add ../api-billing -b fix/billing
# one tmux window per worktree, one agent per window
Claude Code умеет делать это за вас: claude --worktree feature-auth (или -w) создаёт worktree в .claude/worktrees/ на новой ветке и запускает сессию внутри него. Смотрите документацию по worktree.
Сколько сессий выдержит одна машина, зависит от того, что они запускают, а не от самих агентов. Полезное практическое правило: 4 ГБ на первую сессию плюс 1–2 ГБ на каждую следующую, которая собирает или тестирует, и больше, если в каждом worktree работает свой dev-сервер или база данных. Прежде чем добавлять ещё одну, понаблюдайте за free -h в загруженный час. Диск тоже набегает, потому что у каждого worktree свои node_modules.
Квоты и ограничения скорости
Машина 24/7 полезна, только если тариф позволяет агенту продолжать работу, поэтому прочитайте о лимитах, прежде чем строить на них планы:
- Claude (Pro, Max). Лимиты использования сбрасываются каждые пять часов, и есть ещё недельный лимит, согласно статье Anthropic о лимитах. Несколько параллельных сессий расходуют одну и ту же квоту. Проверить, сколько осталось, можно в Settings → Usage.
- Codex (тарифы ChatGPT). Plus и похожие уровни используют скользящие пятичасовые окна, могут действовать и недельные лимиты. Локальное использование CLI и облачные задачи делят одну квоту. Смотрите страницу цен Codex от OpenAI для вашего тарифа.
- Ключи API. Окна тарифа нет, но вы платите за токены, так что зациклившийся агент не останавливается, а тратит деньги. Задайте лимиты расходов в консоли провайдера.
На практике «24/7» значит, что агент может работать, когда есть работа и квота, а не что он целый день работает на пределе. Ставьте долгие задачи в очередь на время, когда вас нет, и будьте готовы, что он остановится до следующего сброса.
Что происходит при перезагрузке
Обновления ядра, обслуживание у провайдера и убийства по нехватке памяти — всё это перезапускает процессы. Разговоры агентов сохраняются на диске, так что ничего не теряется, но и само ничего не перезапускается:
- Claude Code:
claude --continueвозобновляет последний разговор в текущей папке, аclaude --resumeпозволяет выбрать. - Codex:
codex resume --lastилиcodex resumeдля выбора из списка. - tmux: сервера больше нет, а с ним и раскладки окон. Юнит systemd выше воссоздаёт сессию. Плагины вроде tmux-resurrect умеют восстанавливать и раскладки.
Всё, что было в процессе, когда машина упала, — недоделанную правку или запущенный тест — придётся проверить вручную. Это ещё одна причина, чтобы агент почаще делал коммиты.
Присмотр с телефона
Постоянно работающему агенту вы будете нужны в неожиданные моменты: запрос разрешения, вопрос, готовая задача на проверку. Варианты: SSH-приложение, подключённое к tmux, — бесплатно, но без уведомлений; приложения Remote Control от вендоров, которые работают для своего агента; хуки ntfy для пушей, о которых рассказано в статье о подтверждении запросов с телефона; или приложение, которое делает всё это.
Maude создана для такой схемы. Она разворачивает по SSH демон, который запускает ваши сессии на сервере 24/7, продолжает их, когда приложение закрыто, и работает с Claude Code, Codex, OpenCode, Grok Build и Antigravity на стольких серверах, сколько вы добавите. Вы получаете push-уведомления с «Разрешить/Отклонить», входящие со всем, что ждёт вас, а в каждой сессии — git worktree, проверку diff и терминал. Когда у одного агента заканчивается квота, сессию можно передать другому вместе со сводкой проделанной работы. Тариф или ключ API каждого агента по-прежнему нужен. Приложение стоит $2.99 в неделю после 3 дней пробного периода или $59.99 в год после 7 дней пробного периода.
Часто задаваемые вопросы
Позволит ли моя подписка работу 24/7?
Сколько сессий агентов выдержит один VPS?
free -h, прежде чем добавлять новые.Что происходит с моими агентами при перезагрузке сервера?
claude --continue или claude --resume и codex resume --last. Пользовательская служба systemd с включённым lingering может возвращать вашу сессию tmux при загрузке.Можно ли запускать Claude Code на Mac mini дома 24/7?
sudo pmset -a sleep 0), подключите проводную сеть и добирайтесь до него через Tailscale или приложение, которое подключается наружу. Там работают и Remote Control, и tmux; уснувший Mac ставит на паузу всё.Можно ли запускать Claude Code и Codex на одном сервере?
~/.claude и ~/.codex). Запускайте их в разных окнах tmux или worktree, чтобы они не правили одни и те же файлы.