- Дата публикации
botctl: менеджер процессов для автономных ИИ-ботов на базе Claude
Что нового
botctl — это процесс-менеджер для автономных ИИ-агентов, который завязывается вокруг Claude и обычного репозитория кода. Он не пытается быть ещё одним «оркестратором», а даёт понятный набор функций, которые обычно собирают вручную из cron, bash-скриптов и обвязки вокруг API.
Ключевые новинки:
-
Декларативная конфигурация через один файл
Настройка бота хранится в YAML-фронтматтере, а сам промпт — в Markdown-теле. Всё в одном документе:--- name: code-reviewer interval_seconds: 60 max_turns: 20 --- Review open PRs and post comments...Не нужно городить отдельные конфиги, перемешанные с кодом. Один файл описывает и поведение, и расписание.
-
Автономный цикл выполнения
botctl сам «поднимает» Claude с нужным промптом, инструментами и рабочей директорией, а дальше крутит бота в цикле: запустил → залогировал → «уснул» до следующего интервала.$ botctl start code-reviewer -d ✓ Harness started (pid 48201) $ botctl logs code-reviewer -f [run #1] Reviewing PR #49... -
Память сессий и управление на лету
Каждый прогон сохраняется как отдельная сессия. Можно вернуться туда, где Claude остановился, или перенаправить уже запущенного бота сообщением:$ botctl start review --message "focus on PR 51" ✓ Message queued, waking bot... -
Hot reload без рестартов
МеняетеBOT.md— и следующая итерация бота автоматически использует новые параметры. Никаких перезапусков процессов и деплоев.# change max_turns in BOT.md max_turns: 20 → max_turns: 50 # next run uses new value automatically -
Подключаемые навыки из GitHub
Навыки (skills) — это переиспользуемые модули, которые добавляют боту новые возможности через промпт. Их можно искать, ставить и шарить через GitHub:$ botctl skills search slack $ botctl skills add owner/repo --skill slack-notify $ botctl skills list -
Веб‑панель управления
Помимо текстового интерфейса есть веб-дэшборд: запуск, остановка, отправка сообщений боту и просмотр логов прямо из браузера.$ botctl --web-ui ✓ Dashboard at http://localhost:4444 $ botctl --web-ui --port 8080
Цифр по скорости, стоимости или лимитам контекста авторы не приводят — botctl в первую очередь про управление процессами вокруг Claude, а не про оптимизацию токенов.
Как это работает
Под капотом botctl делает несколько вещей, которые обычно приходятся на долю DevOps и скриптов:
-
Конфигурация через фронтматтер
Каждый бот описывается файлом вродеBOT.md, где в YAML-фронтматтере задаются:name— имя бота и процесса;interval_seconds— как часто запускать новую итерацию;max_turns— сколько диалоговых шагов Claude может сделать за один прогон.
Ниже — обычный Markdown с промптом и, при необходимости, инструкциями для навыков.
-
Цикл выполнения (harness)
Командаbotctl startподнимает отдельный процесс (harness), который:- инициализирует сессию Claude с заданным промптом и инструментами;
- запускает «итерацию» работы бота (например, ревью PR);
- пишет логи в файл и в консоль (через
botctl logs); - ждёт
interval_secondsи повторяет цикл.
Флаг
-dотправляет процесс в фон, что делает botctl похожим на лёгкий supervisor, заточенный под ИИ-агентов. -
Сессии и очередь сообщений
Каждый запуск бота — это отдельная сессия, которую botctl сохраняет. Поверх этого строится:- возможность возобновить контекст, где Claude остановился;
- возможность «разбудить» бота и передать ему сообщение, которое попадёт в очередь и будет обработано в следующей итерации:
$ botctl start review --message "focus on PR 51" -
Hot reload конфигурации
botctl читаетBOT.mdпри каждом запуске итерации. Если вы меняете, например,max_turnsс 20 до 50, следующая итерация сразу работает с новым лимитом. Никаких ручных рестартов процессов. -
Навыки как модули
Skills — это отдельные репозитории на GitHub с описанием того, как расширить промпт или инструменты бота. botctl умеет:$ botctl skills search slack # поиск по навыкам $ botctl skills add owner/repo --skill slack-notify # установка из GitHub $ botctl skills list # список установленных навыковНавык
slack-notify, например, может добавить в промпт инструкции для отправки уведомлений в Slack. -
Веб-интерфейс поверх того же API
Командаbotctl --web-uiподнимает локальный HTTP-сервер (по умолчанию наhttp://localhost:4444), который даёт доступ к тем же операциям, что и TUI: старт/стоп ботов, отправка сообщений, стриминг логов.Можно сменить порт:
$ botctl --web-ui --port 8080
По сути, botctl превращает Claude в фонового «демона», который живёт рядом с вашим кодом и реагирует на расписание и входящие сообщения.
Что это значит для вас
Где это полезно
-
Автоматический code review с Claude
Самый очевидный кейс из примера — ботcode-reviewer, который каждые 60 секунд проверяет открытые PR и оставляет комментарии. Такой бот хорошо подходит, если вы:- используете Claude в Git-проектах;
- хотите регулярный, но не «одноразовый» ревью (бот возвращается к задаче по расписанию);
- не хотите вручную гонять скрипты или GitHub Actions для каждого кейса.
-
Фоновые ИИ-ассистенты для команды
botctl удобно использовать как «дежурного» ассистента:- мониторинг задач и статусов (через навыки с интеграциями);
- периодические отчёты в Slack или почту;
- регулярный анализ логов или метрик с комментариями Claude.
-
Прототипирование автономных агентов без тяжёлой инфраструктуры
Если вы экспериментируете с ИИ-агентами, но не хотите поднимать Kubernetes, очереди задач и сложные пайплайны, botctl закрывает базовые потребности:- циклический запуск;
- хранение сессий;
- управление через CLI и веб.
-
Локальная разработка и демонстрации
Веб-дэшборд наlocalhostподходит для локальных демо: можно показать, как бот живёт, логируется и реагирует на сообщения, без деплоя на внешний сервер.
Где лучше не применять
-
Высоконагруженные продакшн-сценарии
Если вам нужно обрабатывать тысячи запросов в секунду, botctl, судя по описанию, ближе к инструменту разработчика и небольших сервисов, чем к полноценной продакшн-платформе. -
Сценарии без Claude
Инструмент заточен под Claude. Если ваша инфраструктура полностью строится вокруг GPT-4, GPT-4o или других моделей, botctl не станет центром архитектуры. -
Сложные бизнес-процессы с жёсткими SLA
botctl не выглядит как замена полноценной оркестрации задач с ретраями, очередями и мониторингом на уровне облака. Это скорее «процесс-менеджер для ИИ», а не общая шина для бизнес‑логики.
Доступность из России
botctl — это локальный инструмент. Его можно поставить и запустить на своём компьютере или сервере без VPN. Но для работы ботов нужен доступ к Claude. Anthropic официально ограничивает доступ в ряде регионов, поэтому для использования Claude из России, скорее всего, придётся настраивать VPN или работать через внешнюю инфраструктуру, у которой уже есть доступ к API.
Место на рынке
botctl попадает в нишу инструментов для автономных ИИ-агентов, где уже есть:
- самописные решения на cron + shell + API клиентов;
- фреймворки оркестрации (типа general-purpose агентных библиотек);
- плагины к GitHub Actions и CI/CD для разовых прогонов ИИ.
По сравнению с «скриптами на коленке» botctl даёт:
- декларативную конфигурацию в одном файле;
- сессии и управление ботом в реальном времени;
- веб-дэшборд и систему навыков.
Сравнивать по скорости, стоимости запросов или контексту напрямую с GPT-4o, GPT-4 или другими моделями некорректно: botctl не является моделью, он только управляет циклами работы Claude. Автор не приводит никаких бенчмарков по производительности или расходу токенов.
В сравнении с тяжёлыми фреймворками для агентов botctl выглядит более узким и практичным: он решает задачу «сделать из Claude фонового демона», а не строит сложную мультиагентную архитектуру.
Установка
На сайте нет подробной инструкции по установке, но по примерам видно, что botctl ставится как CLI‑утилита и запускается из терминала. Ожидаемый сценарий — установка через пакетный менеджер (brew, pip, cargo и т.п.) или бинарник, после чего становятся доступны команды botctl.
Перед началом работы вам понадобится:
- установленный
botctl; - доступ к Claude (API-ключ Anthropic или интеграция, которую использует botctl);
- репозиторий с файлом
BOT.md.
Как запустить
Ниже — все команды из оригинального описания, без сокращений.
1. Описание бота в BOT.md
---
name: code-reviewer
interval_seconds: 60
max_turns: 20
---
Review open PRs and post comments...
2. Запуск бота и просмотр логов
$ botctl start code-reviewer -d
✓ Harness started (pid 48201)
$ botctl logs code-reviewer -f
[run #1] Reviewing PR #49...
3. Управление сообщениями и память сессий
$ botctl start review --message "focus on PR 51"
✓ Message queued, waking bot...
4. Hot reload настроек
# change max_turns in BOT.md
max_turns: 20 → max_turns: 50
# next run uses new value automatically
5. Работа с навыками (skills)
$ botctl skills search slack
$ botctl skills add owner/repo --skill slack-notify
$ botctl skills list
6. Запуск веб‑дашборда
$ botctl --web-ui
✓ Dashboard at http://localhost:4444
$ botctl --web-ui --port 8080
Если вы уже используете Claude как ассистента разработчиков, botctl может стать недостающим звеном: он превращает разовые вызовы API в живущих рядом с кодом ботов, которые работают по расписанию и умеют помнить контекст.