EnglishРусский Map

botctl

title
botctl
type
toolbox
summary
Менеджер процессов для автономных агентов Claude по расписанию, каждый из которых задаётся файлом BOT.md
tags
golang, llm, agent, coding-agent, claude, process-manager
language
Go
license
MIT
created
2026-04-09
updated
2026-04-09
lang
ru
translation_of
botctl
source_updated
2026-04-09
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-high

botctl - это менеджер процессов для долгоживущих автономных агентов Claude. Если вам нужен бот Claude, который просыпается каждые 5 минут, выполняет задачу и при необходимости возобновляет предыдущую беседу, когда вы его дёргаете, botctl служит супервизором, поддерживающим его работу. Единый бинарник на Go, кроссплатформенный (macOS/Linux/Windows, AMD64/ARM64), TUI + веб-интерфейс + CLI поверх одного и того же демона.

Базовая абстракция - отдельный файл BOT.md на каждого бота. YAML frontmatter задаёт параметры - interval_seconds, max_turns, список инструментов, путь к workspace, окружение, - а тело markdown служит системным промптом, который Claude получает при каждом запуске. Это тот же паттерн, что Claude Code использует для CLAUDE.md и SKILL.md, только масштабированный для описания не просто диалога, а процесса по расписанию. Каталог бота самодостаточен: его можно закоммитить в git, и кто-то другой сможет запустить того же бота завтра.

Под капотом каждый бот крутится в цикле harness'а с четырьмя явными состояниями:

  • running - выполняется вызов API, работают инструменты
  • sleeping - ожидание interval_seconds до следующего тика
  • paused - сессия сохранена в хранилище, не ставится в расписание до возобновления
  • stopped - нет активного процесса, контекста сессии нет в памяти

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

Горячая перезагрузка - примечательное архитектурное решение: отредактируйте BOT.md во время работы бота, и изменения применятся на следующем тике без перезапуска. Это ключевая деталь для задуманного сценария использования: предполагается, что вы будете дорабатывать промпт и конфигурацию, наблюдая за поведением бота в реальном времени, а не проходить полный цикл развёртывания из-за каждого изменённого слова.

Обмен сообщениями с оператором - ещё одна отличительная возможность. Команда botctl start my-bot --message "check the error log" внедряет пользовательское сообщение в следующий ход работающего бота. Это даёт дешёвый внеполосный примитив перенаправления для автономных агентов: бот может выполнять свою работу по расписанию, а вы можете скорректировать его прямо на ходу, не прерывая сессию. Тот же примитив использует интеграция с Telegram через MCP в этом окружении для пересылки сообщений из чата в активную сессию Claude.

Система навыков

Навыки (skills) - это переиспользуемые модули возможностей, определяемые файлами SKILL.md: тот же формат с frontmatter и промптом, что и у BOT.md, но описывающий не "бота целиком", а "конкретное действие, которое бот умеет выполнять". Поиск происходит иерархически с приоритетом первого совпадения:

  1. Глобальные навыки (межагентские, общие для всех пользователей botctl)
  2. На уровне установки botctl
  3. На уровне конкретного бота (внутри каталога бота)

Claude не видит весь каталог навыков сразу. Вместо этого специальный инструмент возвращает список доступных навыков (с описаниями) и подгружает тело навыка по запросу. Это тот же паттерн "постепенного раскрытия возможностей", который Claude Code использует для своей системы навыков: загрузить индекс в контекст, а само тело запросить только тогда, когда модель решит, что оно ей нужно. Это сохраняет контекстное окно чистым независимо от количества установленных навыков.

Навыки можно устанавливать из репозиториев GitHub, что даёт некое подобие пакетного менеджера для распространения возможностей ботов.

Установка

# macOS/Linux
curl -fsSL https://botctl.dev/install.sh | sh

# Windows
irm https://botctl.dev/install.ps1 | iex

Базовое использование

# Create a bot: directory + BOT.md scaffold
botctl create my-bot -d "Monitor APIs" -i 300 -m 20

# Start it in the background
botctl start my-bot --detach

# Tail its output
botctl logs my-bot -f

# Send a message into a running bot
botctl start my-bot --message "check errors"

# Launch the web dashboard
botctl --web-ui --port 8080

Место в экосистеме

botctl выступает "готовящимся к продакшену harness'ом" в паре с build-your-own-openclaw - руководством по созданию подобной системы с нуля. Если вы прошли OpenClaw и разобрались в деталях - цикл диалога, инструменты, навыки, события, планирование расписания, - то botctl - это примерно то, что получится, если бы кто-то уже прошёл все 18 шагов и довёл результат до ума. pi-coding-agent - минималистичный терминальный агент для написания кода в той же области, но ориентированный на интерактивную работу с кодом, а не на автономные запуски по расписанию.

Что касается постоянной памяти ботов, сохраняющейся между сессиями, hippo-memory и mempalace предлагают более амбициозные подходы, чем штатные средства botctl. Навык для botctl вполне мог бы служить обёрткой над любым из них.

Система навыков структурно схожа с решением в Claude Code: тот же формат SKILL.md, тот же паттерн постепенного раскрытия по требованию. Навыки, написанные для одной системы, скорее всего можно перенести в другую с минимальными правками во frontmatter.

Репозиторий: https://github.com/montanaflynn/botctl - 68 звёзд, MIT, последняя версия v0.3.5 (апрель 2026 г.). Активная разработка в ветках main и dev.