CrewCtl CLI

Локальный оркестратор на Node.js: Codex, Claude Code, Gemini и OpenCode работают одной командой под руководством оператора

  • 76 ★ репозитория
  • Последний коммит
CLI

Широкий доступ

Почему такой уровень

  • Агенты получают доступ на изменение файлов в рабочей папке и запускают команды из `verify.commands`
  • Параллельные задачи и чужие CLI-сессии расходуют лимиты ваших подписок
Все причины и проверки

omergocmen/crewctl

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/crewctl

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Агенты получают доступ на изменение файлов в рабочей папке и запускают команды из `verify.commands`
  • Параллельные задачи и чужие CLI-сессии расходуют лимиты ваших подписок

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

CrewCtl координирует уже установленные и авторизованные CLI-агенты: Codex CLI, Claude Code, Gemini CLI и OpenCode. Один из них берет роль оператора, разбирает цель, составляет план, поручает куски работы профильным агентам, проверяет результат и при необходимости начинает новый круг. Исполнители запускаются отдельными процессами на каждое поручение. Своего сервиса и своего ключа API у CrewCtl нет, он работает через ваши сессии и хранит данные локально. Веб-панель показывает ход работы: ленту событий, живой разбор изменений, канбан-доску задач со столбцами «Ожидает», «Выполняется», «Завершено», «Ошибка» и расписание повторяющихся задач. Перед запуском агентов CrewCtl делает контрольную точку рабочей папки, и кнопка «Вернуться к этой версии» откатывает изменения. В режиме `worktree.mode: task` каждая задача получает свой `git worktree` и ветку `crewctl/task-<id>`, отправки в удаленный репозиторий нет. В настройке `verify.commands` перечисляют `npm test`, `npx tsc --noEmit` и подобные команды: CrewCtl запускает их в конце каждого круга и не закрывает задачу, пока проверка красная. Команда `crewctl mcp` превращает сам оркестратор в MCP-сервер, чтобы другой агент мог поручать ему задачи.

Для кого. Разработчикам, у которых уже стоят несколько CLI-агентов и которые хотят раздавать им задачи из одной панели с планом, проверкой и откатом.

Подходит, если

  • Большая задача делится на планирование, реализацию и ревью, и каждую часть берет подходящий агент
  • Прогон тестов и проверка типов должны блокировать закрытие задачи, пока они красные
  • Задачи идут параллельно, и каждой нужны своя ветка и `git worktree`
  • Периодическую работу, например ночной аудит, ставят в расписание командой из панели
  • Claude Code поручает оркестратору задачу через MCP и читает статус

Не подходит, если

  • Нужен один агент с одним запросом: оркестратор добавит лишний слой
  • Нет ни одного установленного и авторизованного CLI-агента
  • Задача требует автономного запуска без присмотра: расписание не стартует движок, пока вы не нажали «Запустить»

Пример запроса к агенту

Разбей задачу «добавить пагинацию в список заказов» между планировщиком, исполнителем и ревьюером, после каждого круга запускай `npm test`.

Ограничения

Нужны Node.js 18 или новее и хотя бы один установленный CLI-агент с активной сессией. Документация на турецком и английском. Откат по контрольной точке работает только при остановленном движке, а для важной работы автор советует вести обычный git. Незакоммиченные правки в изолированную рабочую копию не попадают. Зависимости из `node_modules` переносят через `linkPaths` или `setupCommands`. Право MCP-сервера запускать движок по умолчанию выключено параметром `mcpServer.allowEngineControl`. Репозиторий дает агентам доступ на изменение файлов в рабочей папке.

Как отключить. Остановите панель, удалите глобальный пакет командой `npm uninstall -g @omerrgocmen/crewctl` и уберите блок `crewctl` из конфигурации MCP вашего агента. Данные задач лежат локально в папке проекта.

Частые вопросы

Нужен ли отдельный ключ API?

Нет. CrewCtl запускает установленные CLI-агенты через ваши существующие сессии и своего ключа не просит.

Как подключить CrewCtl как MCP-сервер к Claude Code?

Добавьте в конфигурацию блок `{"mcpServers":{"crewctl":{"command":"npx","args":["-y","@omerrgocmen/crewctl","mcp"]}}}` и откройте панель: инструменты работают через нее.

Можно ли откатить изменения агентов?

Да. Перед запуском делается контрольная точка, а действие «Вернуться к этой версии» возвращает файлы. Откат возможен, пока движок не занят задачей.

Отправляет ли CrewCtl код в удаленный репозиторий?

Нет. В режиме `worktree.mode: task` результат остается коммитом в ветке `crewctl/task-<id>`, а отправку и запрос на слияние вы решаете сами.

Какие режимы выполнения есть?

Auto, Fast, Balanced и Deep. Пример: `npm run cli -- task "..." --mode balanced`.

Обсуждение

Вопросов и отзывов пока нет.

Десктопное приложение, где Claude Code, Codex, Gemini и другие агенты работают командой специалистов в общем проекте

CLIШирокий доступ359Звезды репозитория

Мост между локальными CLI-агентами: Codex, Cursor или Claude Code делегируют работу Antigravity, Grok, Kimi и еще семи агентам.

MCP-серверШирокий доступ131Звезды репозитория

PromptOps держит Claude Code, Codex и Gemini CLI рядом по проектам и дает ведущему агенту MCP для запуска помощников

CLIШирокий доступ70Звезды репозитория

Один рантайм для Claude Code, Codex, OpenCode и других: работа принята, только если пройдены проверки, которые агент не писал

CLIШирокий доступ606Звезды репозитория

Оркестратор раздает кодовую задачу CLI-воркерам в отдельных ветках Git, проверяет результат и сливает его транзакционно.

ПлагинШирокий доступ83Звезды репозитория

TUI поверх tmux ведет сессии Claude Code, Codex и других агентов одним списком: статус, быстрые промпты, worktree и ревью диффа

CLIШирокий доступ691Звезды репозитория

Коротко о README

Описаны оператор и исполнители, панель с лентой событий и живым разбором изменений, контрольные точки и `git worktree`, проверочные команды, MCP в обе стороны, расписание и запуск через npx.

Бейдж для README

Сообщить о проблеме