---
title: "Скрипты"
id: "484"
type: "page"
slug: "scripts"
published_at: "2026-05-30T11:07:16+00:00"
modified_at: "2026-10-04T00:59:08+00:00"
url: "https://pastukhov.com/agents/agent/docs/scripts"
markdown_url: "https://pastukhov.com/agents/agent/docs/scripts.md"
excerpt: "Скрипты — это маленькие программы (исполняемые файлы) в репозитории проекта, которые можно запустить в один…"
---

# Скрипты

[https://pastukhov.com/agents/agent/docs/scripts.md](https://pastukhov.com/agents/agent/docs/scripts.md)

Скрипты — это маленькие программы (исполняемые файлы) в репозитории проекта, которые можно запустить в один клик прямо из Pastukhov Agent. Файлы с расширением `.sh` при открытии в редакторе показывают кнопку **Запустить скрипт**. Вывод приходит в реальном времени, его удобно копировать, а работу скрипта можно остановить в любой момент.

 ![Кнопка запуска появляется в редакторе, когда открыт командный скрипт](https://pastukhov.com/wp-content/uploads/2026/06/script-execution-button.png) Запускать скрипты можно из двух мест — из окна **«Файлы»** (скрипты проекта) и из окна **«Навыки»** (скрипты навыков); оба используют один и тот же редактор и процесс выполнения. Отличие от [сборок и развёртываний](/agents/agent/docs/build-deploy)
 простое: сборки запускаются сами при изменении файлов по настройкам в `build.yml`, а скрипт запускаете вы вручную, и это может быть любой исполняемый файл проекта.

## Диалог вывода скриптов

При запуске скрипта автоматически открывается окно вывода, где видно:

 ![Диалог вывода скрипта: потоковый вывод в реальном времени](https://pastukhov.com/wp-content/uploads/2026/06/script-output-dialog.png) - **Заголовок** — путь к скрипту, его имя и пометка, из какого репозитория он запущен (проект или навыки)
- **Таймер** — показывает, сколько времени скрипт уже работает; после завершения — итоговое время
- **Индикатор состояния** — крутящийся значок во время выполнения (клик по нему останавливает скрипт), зелёная галочка при успехе или отметка об ошибке
- **Область вывода** — прокручиваемый текст, в котором вывод появляется в реальном времени
- **Кнопка копирования** — копирует весь вывод в буфер обмена (пока скрипт работает, она отключена)

Строки вывода подсвечиваются цветом:

- **Красный** — строки ошибок (определяются правилами из `.pastukhov/output.parser` или встроенными шаблонами)
- **Оранжевый** — строки предупреждений
- **Обычный цвет** — обычный вывод

## Как выполняются скрипты

Скрипт запускается так:

1. Путь к скрипту превращается в полный путь к файлу в репозитории (проекта или навыков)
2. Файлу выдаётся право на запуск — `chmod +x` на системах Unix
3. Запускается bash с этим файлом: `/bin/bash путь/к/скрипту`
4. Вывод (обычный и сообщения об ошибках) собирается по мере поступления и буферизуется, чтобы не перегружать соединение
5. Накопленный вывод передаётся в браузер через SignalR — канал связи в реальном времени — каждые 100 миллисекунд
6. Когда процесс завершается, приходит сообщение об окончании и таймер останавливается

Скрипты работают в корне проекта. Переменные окружения `PYTHONIOENCODING=utf-8` и `LANG=en_US.UTF-8` устанавливаются автоматически — они нужны, чтобы текст на разных языках передавался без искажений.

## Остановка скрипта

Чтобы остановить работающий скрипт, нажмите крутящийся значок в заголовке окна. Сервер завершит процесс целиком (вместе со всеми порождёнными им подпроцессами), сбросит накопленный вывод и покажет сообщение «Скрипт остановлен пользователем».

 ![Кнопка остановки в шапке диалога вывода скрипта](https://pastukhov.com/wp-content/uploads/2026/06/script-output-stop-button.png) Закрытие окна вывода тоже останавливает скрипт — так он не останется работать в фоне, если окно закрыли случайно.

## Парсинг вывода

Вывод автоматически разбирается, чтобы подсветить ошибки и предупреждения. Правила лежат в `.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](/agents/agent/docs/build-deploy) .

Скрипты удобны для разовых задач: прогнать тесты, обновить данные, выполнить одноразовую операцию. Сборки — для постоянной работы: непрерывная сборка и автоматические процессы.

**[← Хуки](/agents/agent/docs/hooks)**

**[Использование контекста →](/agents/agent/docs/context-utilization)**
