Local CI CLI
Workflow GitHub Actions запускаются на вашей машине, а при сбое шаг ставится на паузу, и агент чинит файл и повторяет его.
- 812 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Workflow исполняются в Docker-контейнерах с доступом к рабочему дереву и подмонтированным секретам из `.env.local-ci`.
Установка
- Работает в
Ручная установка
npx run-local-ci run --workflow .github/workflows/ci.ymlБыстрый старт из README: отдельной установки нет, нужен Docker. Скилл для агента: `npx skills add redwoodjs/local-ci --skill local-ci`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Workflow исполняются в Docker-контейнерах с доступом к рабочему дереву и подмонтированным секретам из `.env.local-ci`.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Local CI гоняет workflow GitHub Actions в Docker на вашем компьютере до коммита и пуша. Проект подменяет серверную часть GitHub: официальный раннер получает задачи от локального эмулятора API, поэтому `actions/checkout`, `actions/setup-node` и `actions/cache` работают без правок. Запуск идет по рабочему дереву, чистый коммит не нужен. Когда шаг падает, контейнер остается жить со всем состоянием: переменными окружения, установленными инструментами, промежуточными артефактами. Правки на хосте синхронизируются внутрь, и можно перезапустить только упавший шаг командой `npx run-local-ci retry --name <runner-name>`. Кэши менеджеров пакетов лежат на диске, поэтому повторная установка зависимостей занимает секунды. Для агента есть скилл `local-ci` и режим `--json` с потоком событий NDJSON.
Для кого. Разработчикам, у которых CI в GitHub Actions падает после пуша и чья работа с агентом тратит минуты на каждый круг проверки.
Подходит, если
- Проверка падает только в CI, и каждую попытку исправления приходится ждать в облаке.
- Агент закончил работу, и перед пушем требуется прогнать все workflow для текущей ветки.
- Установка зависимостей занимает минуты, и нужен локальный кэш пакетов.
- Упавший шаг надо исправить на месте и повторить, не запуская весь job заново.
- Результаты прогона читает программа.
Не подходит, если
- Docker не установлен, и ставить его нельзя: контейнеры нужны для всех задач.
- Нужна замена самому удаленному CI: Local CI проверяет заранее, а решает по-прежнему GitHub.
- Задачи на macOS нужно запускать на Intel Mac: поддержка таких задач ограничена Apple Silicon.
Пример запроса к агенту
Прогони все workflow текущей ветки через `local-ci` с паузой при сбое и исправь упавший шаг, не отправляя код на GitHub.Ограничения
Нужен запущенный Docker: на macOS рекомендуют OrbStack или Docker Desktop. Задачи с `runs-on: macos-*` работают только на Apple Silicon при установленных `tart` и `sshpass`, иначе они пропускаются с пояснением. Раннер по умолчанию взят из образа `ghcr.io/actions/actions-runner:latest`, в нем нет сборочных инструментов вроде `python3`, и их добавляют своим Dockerfile. Переменная `DOCKER_HOST` не учитывается, нужна `LOCAL_CI_DOCKER_HOST`. Бинарная сборка на Rust пока не входит в npm-пакет. Секреты workflow читаются из `.env.local-ci` или окружения. Последний коммит сделан в сентябре 2026 года.
Как отключить. Удалите скилл `local-ci` из каталога скиллов агента и уберите вызов `npx run-local-ci` из инструкций. Контейнеры остановленного прогона и кэши на диске удаляют вручную через Docker.
Частые вопросы
Как запустить Local CI?
Нужен Docker. Затем выполните `npx run-local-ci run --workflow .github/workflows/ci.yml` для одного workflow или `npx run-local-ci run --all`, чтобы прогнать все подходящие для текущей ветки.
Как подключить Local CI к агенту?
Выполните `npx skills add redwoodjs/local-ci --skill local-ci` и добавьте в `CLAUDE.md` или `AGENTS.md` правило запускать скилл перед сдачей работы. Скилл подходит для Claude Code, Cursor, Codex и других агентов.
Что происходит при падении шага?
С флагом `--pause-on-failure` контейнер остается запущенным. Если вывод идет не в терминал, процесс завершается с кодом 77. Правки с хоста попадают внутрь, затем вызывается `retry` с именем раннера, при необходимости с `--from-step <N>`.
Чем Local CI отличается от Agent CI?
Это тот же проект после переименования. Пакет `@redwoodjs/agent-ci` продолжает работать в серии 0.x и перенаправляет вызовы, а новые настройки пишут в `LOCAL_CI_*`, `.env.local-ci` и `.github/local-ci.Dockerfile`.
Где взять секреты для workflow?
Сначала файл `.env.local-ci` в корне репозитория, затем переменные окружения с тем же именем. Токен для `secrets.GITHUB_TOKEN` подставляется через флаг `--github-token`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыwrkflw проверяет и запускает GitHub Actions локально, показывает зависимости заданий и журналы до отправки изменений в CI.
Расширение gh для агентных воркфлоу: задача описывается в Markdown и запускается агентом в GitHub Actions
Локальный шлюз перед git push: ревью, тесты, документация и линтер проходят в отдельной копии, и только после этого ветка уходит в удаленный репозиторий
GitHub Action, который запускает Claude Code в pull requests и issues: отвечает на упоминания, делает ревью и вносит правки
Nx CLI подключается к скриптам npm, pnpm или yarn: команда вводит общие проверки монорепозитория постепенно, сохраняя команды.
Официальный MCP-сервер GitHub: код, issues, пул-реквесты, Actions и алерты безопасности прямо из агента
Коротко о README
README сравнивает Local CI с GitHub Actions и локальными аналогами по кэшу, поведению при сбое и необходимости чистого коммита. Затем идут требования, справочник флагов, переменные окружения, настройка образа и раздел про цикл разработки с агентом.