Перейти к содержимому

Веб-интерфейс

waibee serve открывает сессии агента в браузере. Агент, папка, права и разговор остаются те же, меняется только то, откуда ты на них смотришь.

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

Окно терминала
waibee serve

Команда печатает ссылку с токеном. Открой её, и увидишь список сессий; закрытие браузера сессию не останавливает, работа продолжается в процессе waibee serve.

Флаг Что делает
--port <номер> Порт вместо 8787
--host 0.0.0.0 Слушать всю сеть сразу при запуске. Обычно не нужно: тот же результат даёт кнопка в интерфейсе
--read-only Только чтение: любая запись отклоняется, включая терминал в браузере
--new-token Выпустить новую ссылку: старая перестаёт работать

Команда /web в терминале поднимает сервер на текущих сессиях и печатает ссылку. Это единственный способ вести из браузера чаты, уже открытые в окне терминала: отдельно запущенный waibee serve их не видит.

Зачем уходить из терминала. Сессии те же самые, и терминал никуда не девается. Но часть работы браузер показывает так, как текстовый экран не может:

  • Дифф целиком, с подсветкой. Изменённые файлы списком, каждый со счётчиком строк, дифф рядом. Выделяешь строки в колонке номеров, пишешь комментарий, и он уходит агенту как правка, без копирования путей руками.
  • Файлы рядом с разговором. Дерево проекта и открытый файл слева, чат справа. Не нужно решать, на что смотреть.
  • Диаграммы и таблицы как диаграммы и таблицы. План, схема потока, сравнение вариантов: агент пишет их в боковую панель, и они рисуются, а не остаются разметкой.
  • Несколько сессий сразу. Список того, что запущено, и очередь того, что ждёт твоего слова: разрешение, вопрос, конфликт.
  • С телефона, не собирая это самому. Терминал с телефона тоже открывается: нужен SSH-клиент, ключ, tmux, чтобы сессия пережила потерю связи, и всё это набирается на экранной клавиатуре. Здесь достаточно ссылки и QR-кода, страница уже свёрнута в одну колонку, а вкладку можно поставить на домашний экран и открывать как приложение.
  • Список сессий. Всё, что запущено сейчас, и всё, что было раньше, с папкой и временем. Поиск ищет не по названиям, а по словам внутри разговоров, по всем сессиям на диске. Нужные помечаются звёздочкой, ненужные удаляются.
  • Разговор. Ответ агента приходит по мере генерации. Вызовы инструментов показываются карточками: у правок файлов виден цветной дифф, у команд вывод, у длинных выводов кнопка развернуть. Запрос разрешения приходит на страницу, и ответить можно с неё же, включая «разрешать всегда».
  • Пока агент работает. Сообщение, набранное во время хода, можно поставить в очередь, отправить прямо в идущий ход или добавить как факт, который агент должен учесть, не меняя задачу. Выбор рядом с кнопкой отправки. Отмена хода, на который ещё не пришёл ответ, возвращает сообщение в поле ввода.
  • Цель. Кнопка с мишенью рядом с полем ввода закрепляет условие, до которого агент работает сам, показывает закреплённое и снимает его. Если условие подходит для этой работы, агент предложит его сам, и предложение принимается одним нажатием. Подробно про режим в разделе Goal mode.
  • Обзор изменений. Отдельная вкладка со списком изменённых файлов и диффом с подсветкой синтаксиса. Строки выделяются в колонке номеров, комментарий к выделению уходит агенту как правка. Ненужное откатывается: целиком файл или один кусок диффа.
  • Файлы и терминал. Дерево проекта, просмотр и правка файла, оболочка в папке сессии. Открытые вкладки продолжают работать, пока открыта другая: терминал не умирает, правка не теряется.
  • Панель агента. Колонка справа: страницы, которые агент пишет сам (планы, таблицы, диаграммы), и запущенные субагенты с их ходом. Пустая колонка сворачивается.
  • Расширения. Всё, что подхватила эта папка: MCP-серверы, плагины, навыки, команды, описания агентов, хуки и файлы инструкций. Любое включается и выключается на месте; навык, команду или агента можно создать здесь же, а MCP-сервер сначала проверяется на связь и только потом сохраняется.
  • Безопасность. Профиль песочницы, папки, куда агент может писать, разрешённые и запрещённые домены, защищённые пути. Профиль и списки доменов здесь же и меняются, причём глобально, для всей машины. Ниже журнал: что было отклонено и что не сработало, с окном по времени, поиском по строке и переключателем «только отказы / всё».
  • Ещё на страницах. Настройки и темы, язык интерфейса, память агента, API-ключ, диагностика (waibee doctor как страница), фоновые задачи с возможностью остановить любую, список того, что появилось в новой версии.

По умолчанию сервер отвечает только на этой машине. Это осознанно: через страницу выполняются команды от твоего имени, поэтому выход в сеть остаётся отдельным решением.

Агент продолжает работать, пока тебя нет за столом. С телефона видно, что он делает, и можно ответить на запрос разрешения или подтолкнуть в сторону.

Три случая, в которых это и нужно:

  • Отошёл от компьютера. Запуск идёт на рабочей машине, ты на кухне или в другой комнате. Телефон в той же сети Wi-Fi, туннель не нужен.
  • Машина, которая не выключается. Домашний сервер, Mac mini или Raspberry Pi на 64-битной системе: агент работает там, ты подключаешься с чего угодно. Сборки под aarch64 есть и для Linux, и для macOS.
  • Ноутбук остался дома. Долгая задача идёт там, где её запустили, а ты следишь за ней из дороги через туннель. Одно условие: машина не должна засыпать, закрытый ноутбук работу не продолжит.

Та же сеть Wi-Fi. Нажми Открыть на телефоне и затем Открыть в этой сети. Сервер начинает отвечать и на сетевом адресе, а на странице возникает QR-код: наведи камеру телефона и открывай. Перезапускать ничего не нужно. Если у машины несколько адресов, а телефон в одной конкретной сети, выбери нужный адрес в списке под кодом: у ноутбука с VPN верхний адрес не всегда тот, который видит телефон.

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

Программа Установка (macOS) Кто откроет ссылку
cloudflared brew install cloudflared любой, у кого есть ссылка
tailscale brew install tailscale && sudo tailscale up только твои устройства в сети Tailscale
ngrok brew install ngrok && ngrok config add-authtoken <токен> любой, у кого есть ссылка

Ни одной нет? Страница покажет строку установки для твоей системы (на Windows это winget) и ссылку на сайт программы. Поставил программу, не закрывая страницу? Нажми Проверить снова: перезапуск не нужен. Публичный адрес закрывается кнопкой и не переживает остановку сервера.

Как приложение. Страницу можно установить на телефон из меню браузера («На экран Домой»): открывается без адресной строки и держит сессию.

Только смотреть. У ссылки есть второй вариант: он показывает разговор, но отклоняет любую запись, включая отправку сообщений и терминал. Удобно показать работу коллеге, не отдавая управление. Переключатель «может действовать / только смотреть» стоит над QR-кодом. Страница, открытая по такой ссылке, сама сообщает, что доступ только для просмотра, и не предлагает то, что всё равно будет отклонено.

  • Токен. Он в ссылке при первом открытии, дальше живёт в cookie и в адресной строке не остаётся. Ссылка без токена страницу не откроет.
  • Кто подключён. В том же окне видно адреса устройств, которые обращались за последние минуты, и может ли каждое действовать или только смотреть.
  • Права те же, но их видно и можно менять. Сам браузер не даёт агенту больше, чем терминал: работают тот же режим подтверждений и та же песочница. Но и режим, и профиль песочницы переключаются со страницы, а профиль и списки доменов сохраняются глобально, для всей машины, а не для одной сессии. Кто открыл полную ссылку, тот может ослабить и подтверждения, и песочницу.
  • Одна ссылка на всех. Отозвать доступ у одного устройства нельзя: ссылка одна для всех. Остановка сервера её не отменяет: токен лежит в ~/.waibee/state/serve.token (на Windows %APPDATA%\waibee\state\serve.token) и переживает перезапуск. Если ссылка ушла не туда, перезапусти с --new-token: выпустится новая, а старая перестанет открывать страницу.
  • Публичный адрес. Пока он открыт, страницу может открыть любой, у кого есть ссылка (кроме варианта с Tailscale). Закрывай его, когда закончил.