Babysit: наблюдатель, который берёт процессы под контроль
Зачем вам контроль над живым процессом?
Давайте честно. Каждый разработчик знает это чувство: запустил скрипт, и он завис на каком-то запросе. Или билд пошёл не так, а ты уже ушёл пить кофе. Или AI-агент выполняет команду, и единственный вариант — ждать или прибить процесс.
А что если бы можно было подключиться к любому работающему процессу и управлять им? Вот для этого и создан babysit.
Как это работает
Babysit берёт любую команду и оборачивает её в псевдотерминал (PTY). По сути, он создаёт виртуальную сессию, к которой можно подключиться извне. Программа выступает в роли универсального пульта управления терминальными сессиями.
Что умеет babysit
Читать вывод в реальном времени. Не ждать окончания, а видеть всё по мере появления. Идеально для логирования и отслеживания долгих процессов.
Отправлять данные процессу. Запрос на ввод? Симуляция действий пользователя? Послать нажатие клавиш? Всё это делается программно. Больше никакого "процесс ждёт ввода, и я ничего не могу поделать".
Делать скриншоты терминала. Полезнее, чем кажется. Снимаете визуальный вывод TUI-приложений — для отладки или документирования.
Подключаться и отключаться когда угодно. Запустили процесс, ушли, вернулись — подключились снова. Напоминает screen или tmux, но с полным программным контролем.
Почему это интересно для AI-агентов
Тут начинается самое интересное. AI-агенты для написания кода постоянно выполняют команды. Им нужно:
- Смотреть на результат сразу
- Понимать, когда команда просит ввод
- Реагировать на ошибки
- Делать скриншоты для отладки
Раньше это требовало либо ручного вмешательства, либо танцев с парсингом логов задним числом. Babysit превращает это в чистый программный интерфейс. AI-агент может вести сложные диалоговые сценарии без человека на другом конце.
Где ещё пригодится
- DevOps-скрипты. Следите за деплоем и автоматически отвечаете на запросы подтверждения.
- Тестирование. Управляете интерактивными тест-раннерами.
- CI/CD. Смотрите на билд в реальном времени и вмешиваетесь при необходимости.
- Удалённая отладка. Подключаетесь к процессам на другом сервере.
- Автоматизация. Создаёте адаптивные пайплайны, которые реагируют на происходящее.
С чего начать
Проект на GitHub: github.com/yusukeshib/babysit. Задуман как библиотека для встраивания в другие инструменты. Это не приложение для конечного пользователя, а строительный блок для более сложных систем.
Философия
Babysit — часть более широкого тренда. Мы уходим от хрупких скриптов, которые надеются, что всё пойдёт по плану. Вместо этого строим системы, которые наблюдают, адаптируются и реагируют.
Будь то AI-кодинг, DevOps или просто желание большего контроля — этот инструмент стоит попробовать.
А какие терминальные проблемы хотели бы решить подобным образом?