Скрипты — это маленькие программы (исполняемые файлы) в репозитории проекта, которые можно запустить в один клик прямо из Pastukhov Agent. Файлы с расширением .sh при открытии в редакторе показывают кнопку Запустить скрипт. Вывод приходит в реальном времени, его удобно копировать, а работу скрипта можно остановить в любой момент.
Запускать скрипты можно из двух мест — из окна «Файлы» (скрипты проекта) и из окна «Навыки» (скрипты навыков); оба используют один и тот же редактор и процесс выполнения. Отличие от сборок и развёртываний простое: сборки запускаются сами при изменении файлов по настройкам в build.yml, а скрипт запускаете вы вручную, и это может быть любой исполняемый файл проекта.
Диалог вывода скриптов
При запуске скрипта автоматически открывается окно вывода, где видно:
- Заголовок — путь к скрипту, его имя и пометка, из какого репозитория он запущен (проект или навыки)
- Таймер — показывает, сколько времени скрипт уже работает; после завершения — итоговое время
- Индикатор состояния — крутящийся значок во время выполнения (клик по нему останавливает скрипт), зелёная галочка при успехе или отметка об ошибке
- Область вывода — прокручиваемый текст, в котором вывод появляется в реальном времени
- Кнопка копирования — копирует весь вывод в буфер обмена (пока скрипт работает, она отключена)
Строки вывода подсвечиваются цветом:
- Красный — строки ошибок (определяются правилами из
.pastukhov/output.parserили встроенными шаблонами) - Оранжевый — строки предупреждений
- Обычный цвет — обычный вывод
Как выполняются скрипты
Скрипт запускается так:
- Путь к скрипту превращается в полный путь к файлу в репозитории (проекта или навыков)
- Файлу выдаётся право на запуск —
chmod +xна системах Unix - Запускается bash с этим файлом:
/bin/bash путь/к/скрипту - Вывод (обычный и сообщения об ошибках) собирается по мере поступления и буферизуется, чтобы не перегружать соединение
- Накопленный вывод передаётся в браузер через SignalR — канал связи в реальном времени — каждые 100 миллисекунд
- Когда процесс завершается, приходит сообщение об окончании и таймер останавливается
Скрипты работают в корне проекта. Переменные окружения PYTHONIOENCODING=utf-8 и LANG=en_US.UTF-8 устанавливаются автоматически — они нужны, чтобы текст на разных языках передавался без искажений.
Остановка скрипта
Чтобы остановить работающий скрипт, нажмите крутящийся значок в заголовке окна. Сервер завершит процесс целиком (вместе со всеми порождёнными им подпроцессами), сбросит накопленный вывод и покажет сообщение «Скрипт остановлен пользователем».
Закрытие окна вывода тоже останавливает скрипт — так он не останется работать в фоне, если окно закрыли случайно.
Парсинг вывода
Вывод автоматически разбирается, чтобы подсветить ошибки и предупреждения. Правила лежат в .pastukhov/output.parser — править их вручную обычно не нужно. Проще всего выделить необработанный текст в выводе и нажать плавающую кнопку Fix parser — выделенное отправится ИИ, и он поправит правила. Справку по формату файла смотрите в .pastukhov/README.md.
[ERROR]
Error:\s+(.*)
[/ERROR]
[WARNING]
Warning:\s+(.*)
[/WARNING]
Встроенные шаблоны распознают распространённые ошибки без какой-либо настройки:
- Ошибки оболочки: «command not found», «Permission denied», «Segmentation fault»
- Python: Traceback, SyntaxError, ModuleNotFoundError, ImportError
- Node.js: Error:, TypeError, npm ERR!
- .NET: ошибки сборки, исключения
- HTTP: коды 4xx/5xx, «connection refused», тайм-ауты
Поддерживаемые репозитории
Запускать скрипты можно из двух репозиториев:
- Проект — основной репозиторий рабочего пространства
- Навыки — каталог навыков Claude (
.claude/skills)
Репозиторий виден как пометка в заголовке окна — всегда понятно, откуда запущен скрипт.
Скрипты против сборок
Скрипты и сборки решают разные задачи:
- Скрипты — запускаются вручную, в один клик; это любой исполняемый файл; вывод идёт в реальном времени, работу можно прервать; файл настроек не нужен.
- Сборки — запускаются автоматически при изменении файлов; настраиваются в
.pastukhov/build.yml; вывод копится в файлы; по готовности могут запускать развёртывание. Подробнее — на странице Build & Deploy.
Скрипты удобны для разовых задач: прогнать тесты, обновить данные, выполнить одноразовую операцию. Сборки — для постоянной работы: непрерывная сборка и автоматические процессы.