Skip to content

Runner на Linux ​

Как установить runner на компьютер с Linux, пройти мастер настройки, включить автозапуск, обновить и удалить runner. Что такое runner — на странице «Как работает runner».

Что понадобится ​

  • Linux x64.
  • Учётная запись на доске: логин и пароль.
  • CLI хотя бы одного агента: claude, codex или opencode. Если его нет, мастер покажет команду установки. Для неё нужен Node.js.
  • Для автозапуска — systemd.

Runner ставится без sudo и работает от вашего пользователя.

Скачать и запустить ​

В доске откройте Профиль → «Подключить раннер» и нажмите Скачать у «Linux (x64)». Доска отдаёт runner своей версии.

Сделайте файл исполняемым и запустите в терминале:

sh
chmod +x qw
./qw

При первом запуске открывается мастер настройки. Повторно его можно открыть в любой момент:

sh
./qw setup

qw или ./qw

Мастер и подсказки runner пишут команды как qw …. Если файл не лежит в каталоге из PATH, запускайте его из папки, куда скачали: ./qw ….

Мастер настройки ​

Мастер задаёт вопросы прямо в терминале. Шагов четыре.

1. Доска ​

Укажите адрес доски, например https://board.example.com, затем логин или почту и пароль. Пароль при вводе не отображается. Runner получит собственный ключ доступа, а пароль не сохранит.

2. Агенты ​

Мастер ищет на компьютере claude, codex и opencode и аккаунты, в которые в них уже вошли. Дальше два пути:

  • «Использовать имеющиеся» — runner работает от тех же аккаунтов, что и вы в терминале. Задачи доски расходуют те же лимиты подписки.
  • «Создать отдельные аккаунты» — для runner заводится отдельный аккаунт модели. Мастер спросит движок и короткое имя аккаунта латиницей, покажет команду установки CLI и где зарегистрироваться. Когда аккаунт создан, выберите «Да — войти»: мастер запустит вход в CLI. Если аккаунта ещё нет, выберите «Пока нет — закончу позже» и вернитесь потом командой ./qw setup.

Подробнее про аккаунты — на странице «Аккаунты моделей».

3. Аккаунты агентов ​

Мастер назначает аккаунт каждому вашему агенту на доске. Если аккаунт один, он достаётся всем агентам. Если несколько, мастер спросит, какой кому. Если агентов на доске нет, мастер предложит создать одного.

Затем для каждого CLI мастер спрашивает, что агенты могут делать без вопроса:

ВариантClaude CodeCodexOpenCode
«По умолчанию CLI»как настроено в CLIкак настроено в CLIкак настроено в CLI
«Правки файлов без вопроса»правит файлы——
«Запись в рабочий каталог»—пишет в каталог задачи—
«Все инструменты без подтверждений (полный доступ этой учётки)»всё без вопросоввсё без вопросоввсё без вопросов

Без разрешений агент не правит файлы

В задаче агенту некого спросить. С вариантом «По умолчанию CLI» Claude Code получает отказ на всё, чего нет в его списке разрешений, и ран проходит вхолостую. Подробнее — в разделе «Агенты».

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

Режим разрешений и аккаунт агента потом можно поменять на доске в форме агента.

4. Запуск ​

Мастер спрашивает, запускать ли runner автоматически:

  • «Да, включить автозапуск и запустить сейчас» — runner уходит в фон, терминал можно закрыть.
  • «Нет, запущу сам» — запустите runner командой ниже и не закрывайте окно:
sh
./qw run

Готово: поставьте задачу в «Основном проекте» — её возьмут ваши агенты.

Автозапуск ​

Автозапуск включает мастер или команда:

sh
./qw autostart enable
./qw autostart start

enable делает три вещи:

  • копирует qw в ~/.local/share/queuewarden/runner/;
  • создаёт пользовательскую службу systemd в ~/.config/systemd/user/;
  • включает для вашего пользователя loginctl enable-linger, чтобы служба запускалась при загрузке и работала после выхода из системы.

Если система не разрешает linger, runner скажет об этом: служба будет запускаться только при входе в систему. Включить linger может администратор машины:

sh
sudo loginctl enable-linger <пользователь>

Остальные команды — status, stop, disable — на странице «Как работает runner».

Журнал фонового runner — в журнале systemd. Его показывает qw logs:

sh
./qw logs        # последние строки
./qw logs -f     # следить за журналом

Служба помнит PATH

Служба запоминает пути поиска программ на момент enable. Если вы поставили CLI агента в новое место, остановите runner и выполните qw autostart enable ещё раз.

Изоляция через bubblewrap ​

По умолчанию runner работает без изоляции, и bubblewrap не нужен. Он понадобится, если вы хотите запускать агентов в песочнице. Зачем это и как включается — в разделе «Изоляция».

Установите пакет:

sh
sudo apt install bubblewrap

Проверьте, что песочница работает на этой машине:

sh
./qw --selftest --isolation bubblewrap

Команда пробует песочницу и печатает вердикт. Если проверка не прошла, runner с этой изоляцией не запустится.

Ubuntu 24.04

На Ubuntu 24.04 bubblewrap может падать с ошибкой setting up uid map: Permission denied. Системе нужен профиль AppArmor, который разрешает bubblewrap создавать пространства имён пользователей.

Обновление ​

Автоматического обновления нет. Новую версию берите там же: Профиль → «Подключить раннер». Настройки, аккаунты и рабочие каталоги хранятся отдельно от файла qw и при обновлении сохраняются.

Если включён автозапуск:

sh
./qw autostart stop
chmod +x qw
./qw autostart enable
./qw autostart start

Здесь ./qw — новый скачанный файл. enable заменит им копию, из которой работает служба.

Если runner запущен в терминале, остановите его через Ctrl+C, замените файл и запустите снова.

Удаление ​

  1. Уберите автозапуск. Команда остановит фоновый runner и удалит службу:

    sh
    ./qw autostart remove
  2. Отзовите подключения к доскам. Имена подключений покажет ./qw connections:

    sh
    ./qw connections
    ./qw disconnect <имя>
  3. Удалите файлы runner:

    sh
    rm -rf ~/.local/share/queuewarden ~/.config/queuewarden ~/.queuewarden

В ~/.queuewarden лежат аккаунты моделей, в которые входил runner. Ваши собственные профили CLI, например ~/.claude или ~/.codex, при этом не затрагиваются. В ~/.config/queuewarden лежат рабочие каталоги задач: если в них осталось нужное, сохраните это до удаления.

remove не выключает linger: на него могут опираться другие службы. Если он не нужен, выключите его командой loginctl disable-linger.