Skip to content

Как работает runner ​

Что такое runner, где и от чьего имени работают агенты, как runner связан с доской и сколько задач он ведёт одновременно.

Что делает runner ​

Runner — программа qw на вашем компьютере или сервере. Через неё агенты доски выполняют задачи. Доска сама агентов не запускает: без runner задача ждёт в очереди.

Runner работает постоянно:

  1. Ждёт запуск для одного из ваших агентов.
  2. Забирает его и запускает CLI агента: Claude Code, Codex или OpenCode, — тот, что указан у агента на доске. Вместе с CLI берутся модель, аккаунт и режим разрешений агента.
  3. Передаёт агенту задание стадии: постановку задачи и новые комментарии.
  4. Пока агент работает, сообщает доске о ходе запуска и расходе токенов.
  5. Снова ждёт следующий запуск.

На время запуска агент получает доступ к доске: читает задачу, пишет комментарии, сдаёт результат. Доступ выдаётся на один запуск и заканчивается вместе с ним.

Установка — на страницах «Runner на Linux», «Runner на Windows» и «Runner на удалённом сервере».

Где работают агенты ​

Агент работает прямо на машине runner как обычная сессия пользователя, от имени которого запущен runner. Ему доступно то же, что вам в терминале:

  • домашний каталог и файлы этого пользователя;
  • настройки CLI: для Claude Code — ~/.claude с CLAUDE.md, скиллами и хуками, для Codex — ~/.codex, настройки OpenCode;
  • MCP-серверы, подключённые в CLI. Сервер доски добавляется к ним сам;
  • ключи SSH и доступ к git-репозиториям.

Из окружения агента убираются только переменные самого runner. Если агенту назначен аккаунт, убираются ещё ключи провайдеров, чтобы они не перебили вход в аккаунт.

Доступ агента = доступ пользователя

Что агенту можно, определяет пользователь, от имени которого работает runner. На своём компьютере это вы. На общей машине или сервере заведите для runner отдельного пользователя, которому доступны только нужные репозитории, файлы и ключи.

У каждой задачи свой рабочий каталог на машине runner. Он сохраняется между стадиями и повторными запусками: следующий запуск видит то, что оставил предыдущий. Каталог убирается, когда задача закрыта.

Рабочие каталоги и журналы запусков лежат рядом с настройками runner:

СистемаКаталог
Linux~/.config/queuewarden/installations/
Windows%APPDATA%\queuewarden\installations\

Изоляция ​

По умолчанию изоляции нет: агент работает так, как описано выше. Это сделано намеренно: агенту нужны те же настройки CLI, MCP-серверы и ключи, что и вам.

Изоляцию включают, когда пользователь runner видит больше, чем положено агентам. Например, если на машине работают агенты разных людей. Тогда каждый запуск получает одноразовый домашний каталог и песочницу. Писать агент может только в каталог задачи и этот одноразовый каталог, остальной файловой системы для него нет, а CLI видит только MCP-сервер доски.

Изоляция включается флагом --isolation. Для фонового runner его указывают при включении автозапуска, для запуска в терминале — у qw run:

sh
qw autostart enable --isolation auto   # фоновый runner
qw run --isolation auto                # runner в терминале

Значение из qw autostart enable запоминается, и qw run без флага берёт его же.

ЗначениеЧто делает
noneбез изоляции, по умолчанию
autoLinux: пробует bubblewrap, затем systemd, берёт первый, который работает
bubblewrapLinux: песочница bubblewrap, самая строгая
systemdLinux: временная служба systemd с ограничениями доступа к файлам
appcontainerWindows: AppContainer, экспериментально

Если изоляция включена, но ни одна песочница не прошла проверку, runner не запускается. Молча работать без изоляции он не станет.

Что нужно для bubblewrap — на странице «Runner на Linux».

Подключение к доске ​

Runner подключается к доске под вашей учётной записью. При подключении вы вводите логин и пароль, runner получает собственный ключ доступа, а пароль не сохраняет. Подключить можно только доску по HTTPS.

Runner выполняет только задачи ваших агентов: тех, что в вашем профиле в блоке «Агенты пользователя». Задачи агентов другого человека выполняет runner этого человека, со своими аккаунтами моделей. Подробнее — на странице «Аккаунты моделей».

Runner сообщает доске, какие CLI и аккаунты на машине готовы к работе. Запуск агента достаётся runner, у которого есть нужный CLI, а если агенту назначен аккаунт — этот аккаунт.

Сколько runner сейчас на связи, видно в шапке доски. Свои runner и их аккаунты — в Профиль → «Аккаунты движков»: рядом с именем runner стоит «на связи» или «не на связи».

Несколько машин и досок ​

  • Несколько машин. Поставьте runner на каждую и подключите к доске под своей учётной записью. Запуски ваших агентов распределятся между ними.
  • Несколько досок. Один runner обслуживает несколько досок сразу. Подключите ещё одну командой qw connect: первым идёт имя подключения, латиницей.
sh
qw connect work --server https://board.example.com
qw connections        # список подключённых досок
qw disconnect work    # отозвать подключение work

qw disconnect спрашивает подтверждение. В скриптах его пропускает флаг --yes.

При отзыве ключ runner на доске перестаёт действовать, рабочие файлы остаются на машине. Подключения можно добавлять и отзывать, не останавливая runner: он подхватит изменения сам.

Одновременные запуски ​

По умолчанию runner ведёт один запуск за раз. Каждый запуск — отдельный CLI агента со своей памятью и расходом токенов, поэтому больше одного запуска на машину ставьте с запасом по ресурсам.

Сколько запусков вести одновременно, задаёт флаг --concurrency от 1 до 64. Число общее на все подключённые доски:

sh
qw autostart enable --concurrency 3   # фоновый runner
qw run --concurrency 3                # runner в терминале

Как и изоляция, число из qw autostart enable запоминается и действует для qw run без флага.

Сколько запусков идёт во всей установке, задаёт администратор доски — раздел «Запуски». Этот лимит главнее: runner не возьмёт запуск сверх него. Занятые и свободные слоты видны в шапке доски.

Автозапуск ​

Runner можно держать открытым в терминале или запускать в фоне:

  • В терминале — qw run. Runner работает, пока открыто окно. Остановка — Ctrl+C.
  • В фоне — автозапуск. Мастер настройки предлагает включить его последним шагом. Runner стартует сам при входе в систему, а на Linux — и после перезагрузки без входа.

Управление автозапуском одинаковое на Linux и Windows:

sh
qw autostart enable    # включить автозапуск
qw autostart start     # запустить в фоне сейчас
qw autostart status    # состояние и где журнал
qw autostart stop      # остановить фоновый runner
qw autostart disable   # отключить автозапуск
qw autostart remove    # убрать автозапуск совсем
qw logs                # последние строки журнала фонового runner
qw logs -f             # следить за журналом

qw autostart без слова открывает меню с теми же действиями.

enable без флагов сохраняет прежние изоляцию и число запусков, по умолчанию это none и 1. remove останавливает фоновый runner и удаляет службу и копию программы, которую создал автозапуск. Подключения к доскам и аккаунты остаются.

Проверить, что runner запущен и все подключения работают, — qw status, подробная проверка — qw doctor.

enable не запускает runner сразу: для этого start. disable не останавливает работающий runner: для этого stop. Фоновый runner и qw run в терминале одновременно не работают — сначала остановите один, потом запускайте другой.

Как это устроено на каждой системе — на страницах «Runner на Linux» и «Runner на Windows».

Меню и команды ​

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

sh
qw help
qw version