Автономный CLI на Go, который выполняет план реализации в Markdown с помощью Claude Code или codex, запуская для каждой задачи отдельную сессию и проводя многоэтапное ревью кода.
thruwire/foreman
Python-супервизор для Codex, OpenCode и других ИИ-агентов: проверяет выполнение задачи, достаточность тестов и не застрял ли исполнитель.
- Звёзды
- 814
- Форки
- 69
- Открытые issues
- 10
- Последний коммит
- 23 дня назад
Что это?
Foreman — супервизор для ИИ-агентов, пишущих код. Вы передаёте ему задачу, спецификацию или описание ошибки, а он запускает исполнителя, например Codex, OpenCode, Hermes или Deep Agents CLI от LangChain. Пока исполнитель работает, Foreman периодически передаёт модели принятия решений ограниченный набор данных: текст задачи, git status и diff, последние строки вывода, результаты тестов и инструкции из AGENTS.md в репозитории. Модель возвращает вероятности по таким критериям, как полнота реализации, соответствие требованиям, необходимость дополнительной проверки и то, не застрял ли исполнитель или не отклонился ли от задачи.
Детерминированная политика на Python преобразует эти оценки в действия: продолжить, скорректировать исполнителя прямо во время текущего хода (только для Codex App Server), остановить, повторить попытку, запустить проверяющего агента, завершить работу или передать вопрос человеку. Ответственности задаются в TOML-файлах с настраиваемыми порогами; также можно добавлять собственные проверки. В качестве моделей принятия решений можно использовать Jev от TypeSafe (по умолчанию) или Decisions API от OpenAI.
Foreman также позволяет подключать супервизию к интерактивным сессиям с помощью хуков для Codex, Deep Agents и Pi. Детерминированная демонстрация запускается без API-ключей, а состояние запусков хранится локально в каталоге .foreman каждого репозитория.
Ключевые возможности
- 01Запускает Codex, OpenCode, Hermes или Deep Agents в роли исполнителей задач по написанию кода.
- 02Независимо от исполнителя оценивает полноту работы, соответствие требованиям, достаточность тестов и состояние исполнителя.
- 03Может корректировать активный ход Codex или останавливать и перезапускать застрявшего исполнителя.
- 04Поддерживает адаптеры для моделей принятия решений Jev и OpenAI.
- 05Позволяет настраивать ответственности, пороги и внешние команды для сбора данных в TOML.
Сценарии использования
- Не давать автономному ИИ-агенту зациклиться или отклониться от поставленной задачи.
- Добавить независимую проверку завершённости и покрытия тестами перед принятием результата агента.
- Супервизировать интерактивную сессию Codex или Pi, запущенную разработчиком.
- Экспериментировать с семантической супервизией ИИ-агентов, пишущих код, используя собственные проверки.
Быстрый старт
- 1
Задайте переменную окружения TYPESAFE_API_KEY для используемой по умолчанию модели принятия решений Jev
- 2
Запустите Foreman с бэкендом OpenCode worker в проекте с описанием задачи
FOREMAN_WORKER_BACKEND=opencode foreman run --repo ./my-project --job "Add request retries"
Что важно знать
- Сейчас Foreman запускает только одного coding worker за раз.
- Управление активным ходом в реальном времени работает только с бэкендом Codex App Server; для других бэкендов используется остановка с последующим повторным запуском.
- Для настройки модели принятия решений по умолчанию требуется TYPESAFE_API_KEY.
В подборках
Темы
Частые вопросы
- Что такое foreman?
- Python-супервизор для Codex, OpenCode и других ИИ-агентов: проверяет выполнение задачи, достаточность тестов и не застрял ли исполнитель. Foreman — супервизор для ИИ-агентов, пишущих код. Вы передаёте ему задачу, спецификацию или описание ошибки, а он запускает исполнителя, например Codex, OpenCode, Hermes или Deep Agents CLI от LangChain. Пока исполнитель работает, Foreman периодически передаёт модели принятия решений ограниченный набор данных: текст задачи, git status и diff, последние строки вывода, результаты тестов и инструкции из AGENTS.md в репозитории. Модель возвращает вероятности по таким критериям, как полнота реализации, соответствие требованиям, необходимость дополнительной проверки и то, не застрял ли исполнитель или не отклонился ли от задачи.
- foreman можно использовать бесплатно? Какая у него лицензия?
- foreman распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- foreman всё ещё поддерживается?
- Активно поддерживается. Последний коммит в foreman — 15 окт. 2026 г..
- Для чего можно использовать foreman?
- Не давать автономному ИИ-агенту зациклиться или отклониться от поставленной задачи. Добавить независимую проверку завершённости и покрытия тестами перед принятием результата агента. Супервизировать интерактивную сессию Codex или Pi, запущенную разработчиком. Экспериментировать с семантической супервизией ИИ-агентов, пишущих код, используя собственные проверки.
- Как установить foreman?
- Задайте переменную окружения TYPESAFE_API_KEY для используемой по умолчанию модели принятия решений Jev Запустите Foreman с бэкендом OpenCode worker в проекте с описанием задачи: FOREMAN_WORKER_BACKEND=opencode foreman run --repo ./my-project --job "Add request retries"
- Где скачать foreman?
- Исходный код и инструкции по установке — на GitHub: https://github.com/thruwire/foreman
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Локальная веб-консоль и CLI, которые добавляют общий системный промпт (персону) или заменяют им существующий в нескольких coding-агентах, например Claude Code, Codex и OpenCode.
Python CLI, который запускает кодинг-агентов вроде Codex и Claude Code с дополнительными супервизором, ревьюером, adversary и локальным сокращателем логов — каждый работает на своей модели.
CLI, который находит нужный код по вопросу на естественном языке и возвращает файлы, подсказки и фрагменты исходников для coding agents.
Набор навыков для AI-агента-оркестратора: он делегирует задачи установленным coding CLI, проверяет diff и сам коммитит изменения.
Блок правил для вставки в конфиг, который не даёт Claude Code, Codex и другим coding-агентам чрезмерно усложнять решения и добавлять ненужные проверки.