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

Десктоп-приложение

Десктоп VibeOS — нативное приложение поверх того же агента, что CLI и шлюз: та же конфигурация, те же API-ключи, сессии, навыки и память. Это не отдельный продукт и не урезанный клон — то же ядро и те же настройки VibeOS, просто в современном UI. Если вы уже настраивали vibeos в терминале, всё это уже здесь; всё, что сделаете в приложении, отразится и в CLI.

Работает на macOS, Windows и Linux.

Какой интерфейс выбрать?

У VibeOS несколько поверхностей к одному агенту:

  • Десктоп (эта страница) — нативное приложение для чата, настроек и управления.
  • CLI (vibeos) и TUI (vibeos --tui) — терминальные интерфейсы.
  • Веб-панель (vibeos dashboard) — админка в браузере; вкладка Чат встраивает TUI через PTY.

Берите то, что удобнее сейчас. Состояние общее: сессию можно начать в одном месте и продолжить в другом.

Установка​

Следуйте инструкциям по установке VibeOS Desktop.

Если VibeOS уже установлен, достаточно:

vibeos desktop

Подтянутся текущие настройки, ключи, сессии и навыки.

Что внутри​

Окно чата с боковой панелью слева. Рассчитано на несколько параллельных диалогов, настройку messaging-провайдеров, артефакты, обзор структуры проекта и работу с несколькими проектами сразу.

Чат​

Центр приложения:

  • Стриминг ответов с вызовами инструментов в реальном времени и структурированными сводками по tool calls.
  • Та же история, что на других поверхностях VibeOS — сессии из десктопа возобновляются в CLI/TUI и наоборот.
  • Drag-and-drop файлов в область чата — вложение к следующему сообщению.
  • Правая панель превью — веб-страницы, файлы и результаты инструментов рядом с диалогом.
  • История композитора и очередь — стрелки вверх/вниз в пустом поле возвращают прошлые запросы; сообщения в очереди можно править до отправки.

Строка состояния​

Панель внизу чата показывает состояние сессии в реальном времени и даёт быстрые переключатели без захода в настройки:

  • YOLO на сессию — включить или выключить YOLO только для этой сессии (как в TUI). YOLO обходит запросы на одобрение опасных команд — включайте осознанно. См. Безопасность → Режим YOLO.

Работаете с VibeOS на другой машине, а не со встроенным локальным backend? См. Подключение к удалённому backend ниже; полная схема удалённой панели (auth gateway, сокет чата /api/ws, коды закрытия WebSocket) — в Веб-панель → Подключение десктопа VibeOS к удалённому backend.

Выбор модели​

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

  • Средство выбора композитора является фиксированным состоянием пользовательского интерфейса и никогда не затрагивает ваше значение по умолчанию. Оно запоминается локально (для каждого устройства) и следует в новых чатах и ​​перезапускается, а не возвращается к состоянию по умолчанию — выберите модель один раз, и на ней откроется следующий Cmd/Ctrl+N. В живом чате переключение модели распространяется на этот текущий чат; в любом случае выбор сохраняется при создании/переключении сеанса и никогда не записывается в профиль по умолчанию. (При переключении профилей используется собственный профиль по умолчанию.)
  • Установите значение по умолчанию в разделе «Настройки» → «Модель». Эта «основная» модель является вашим глобальным значением по умолчанию для каждого профиля — с нее начинаются новые чаты, cron, субагенты и вспомогательные задачи, и это единственное место, где она записывается. Каждый профиль сохраняет свое значение по умолчанию.
  • Усилия для каждой модели/быстрые настройки. Каждая модель запоминает свои собственные рассуждения и выбор быстрого режима в настольном приложении, которые повторно применяются к сеансу всякий раз, когда вы выбираете эту модель. Эти пресеты удобны для рабочего стола и не меняют cron или субагенты.

Файловый браузер​

Исследуйте и предварительно просмотрите рабочий каталог, не выходя из приложения — это полезно для отслеживания того, как агент читает, записывает и редактирует файлы. Установите начальный каталог проекта с помощью vibeos desktop --cwd <path> (или переменной среды VIBEOS_DESKTOP_CWD`).

Голос​

Поговорите с VibeOS и получите ответ, тот же голосовой режим, доступный где-либо еще. В macOS ОС один раз запросит доступ к микрофону.

Настройки и регистрация​

Управляйте поставщиками, моделями, инструментами и учетными данными из реального пользовательского интерфейса вместо редактирования YAML. При первом запуске онбординг позволит вам получить первое сообщение за считанные секунды. Панели настроек охватывают поставщиков/ключи, выбор модели, конфигурацию набора инструментов, серверы MCP, шлюз и управление сеансами.

  • Панель настроек поставщиков — выделенное место для управления поставщиками логических выводов с пользовательским интерфейсом учетных записей/ключей API для входа в систему и хранения учетных данных для каждого поставщика.
  • Каждый поставщик и модель в меню — графический интерфейс отображает полный список поставщиков и каждую модель, о которой знает vibeos model, поэтому вы выбираете из того же каталога, который видит CLI, а не из тщательно подобранного подмножества.
  • xAI Grok OAuth — Grok — первоклассный провайдер OAuth в лаунчере; войдите в систему через браузер, как и другие поставщики OAuth.
  • Установка серверной части инструмента из графического пользовательского интерфейса – выполните действия по установке серверной части инструмента после установки непосредственно из приложения, а не через терминал.
  • Предупреждение о вспомогательной модели — если вы переключите основную модель на нового поставщика, в то время как вспомогательные задачи (заголовок, суммирование и подобные помощники) все еще закреплены за другим поставщиком, приложение предупредит вас, чтобы вы неосознанно не разделяли работу между двумя поставщиками.

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

Панели управления​

Приложение также предоставляет более широкую поверхность управления VibeOS, поэтому вам не придется подключаться к терминалу:

  • Навыки — просматривайте, устанавливайте и управляйте навыками.
  • Cron — просмотр и управление запланированными заданиями.
  • Профили — переключение между профилями VibeOS (изолированные конфигурации/навыки/сессии).
  • Сообщения — настройка каналов шлюза.
  • Агенты и Командный центр — поверхности оркестрации для многоагентной работы.

Клавиатура и навигация​

  • Палитра команд — нажмите Cmd+K (Ctrl+K в Windows/Linux), чтобы перейти к действиям и перемещаться по приложению с клавиатуры.
  • Переназначаемые сочетания клавиш — панель сочетаний клавиш в Настройках позволяет переназначать сочетания клавиш приложения на ваши собственные клавиши.
  • Пользовательские ярлыки масштабирования — масштабируйте интерфейс с шагом в полшага для более точного управления размером текста.
  • Переключатель языка пользовательского интерфейса — измените язык интерфейса внутри приложения, включая упрощенный китайский (zh-Hans).

Сессии и профили​

  • Пересмотр списка сеансов — переработанный список сеансов с возможностью архивирования и общей гигиены сеансов, позволяющий управлять списком по мере его роста.
  • Поиск сессий по идентификатору — найти конкретную сессию непосредственно по ее идентификатору.
  • Одновременные многопрофильные сеансы — запускайте сеансы в нескольких профилях одновременно и ссылайтесь на сеанс в другом профиле с помощью межпрофильных ссылок @session.

Обновление​

Приложение проверяет наличие обновлений в фоновом режиме и предлагает обновление в один клик, когда оно будет готово.

Процесс обновления вручную также работает с графическим интерфейсом.

Удаление​

Откройте Настройки → О программе → Опасная зона и выберите, что удалить:

  • Удалить только графический интерфейс чата — удаляет настольное приложение и его данные; Агент VibeOS, ваша конфигурация и чаты останутся. (То же, что и vibeos uninstall --gui.)
  • Удалить графический интерфейс + агент, сохранить мои данные — удаляет приложение и агент, но сохраняет конфигурацию, чаты и секреты для будущей переустановки. (То же, что и vibeos uninstall.)
  • Удалить все — удаляет приложение, агент и все пользовательские данные. (То же, что и vibeos uninstall --full.)

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

Вы можете сделать то же самое с терминала — vibeos uninstall --gui только для графического интерфейса или vibeos uninstall / vibeos uninstall --full и для агента.

примечание

Запуск vibeos uninstall --gui из извлечения исходного кода (разработочная сборка vibeos desktop) также удаляет выходные данные сборки node_modules и apps/desktop/{dist,release} рабочей области, поскольку они являются артефактами сборки графического пользовательского интерфейса. Их можно восстановить с помощью vibeos desktop (или npm install + пересборку), но если вы активно взламываете настольное приложение, ожидайте, что впоследствии вам придется переустановить зависимости.

Ссылка на CLI: vibeos desktop​

Для запуска через CLI просто запустите vibeos desktop. По умолчанию он устанавливает зависимости узла рабочей области, собирает распакованное приложение Electron для текущей ОС, а затем запускает этот упакованный артефакт.

ФлагОписание
--skip-buildПропустите установку/пакетирование npm и запустите существующее распакованное приложение из apps/desktop/release
--force-buildПринудительно выполнить полную перестройку, даже если отметка содержимого соответствует
--build-onlyСоздайте настольное приложение, но не запускайте его (используется vibeos update)
--sourceЗапуск через electron . вместо apps/desktop/dist вместо упакованного приложения
--cwd PATHНачальный каталог проекта для сеансов чата на рабочем столе (устанавливает VIBEOS_DESKTOP_CWD)
--vibeos-root PATHПереопределить корень источника VibeOS, который использует приложение (устанавливает VIBEOS_DESKTOP_VIBEOS_ROOT)
--ignore-existingЗаставить приложение игнорировать любой vibeos CLI, уже подключенный к PATH, во время внутреннего разрешения
--fake-bootВключить детерминированные задержки загрузки для проверки пользовательского интерфейса при запуске

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

Упакованное приложение включает в себя оболочку Electron и встроенную поверхность чата React. При первом запуске он может установить среду выполнения VibeOS в VIBEOS_HOME (~/.vibeos или %LOCALAPPDATA%\vibeos в Windows) — тот же макет, который используется при установке через CLI, поэтому они взаимозаменяемы. Внутреннее разрешение сначала учитывает VIBEOS_DESKTOP_VIBEOS_ROOT, затем завершенную управляемую установку, затем проверенную vibeos на PATH (если не установлен --ignore-existing / VIBEOS_DESKTOP_IGNORE_EXISTING=1) и, наконец, явное переопределение команды VIBEOS_DESKTOP_VIBEOS для таких упаковщиков, как Nix. Средство рендеринга React взаимодействует с серверной частью vibeos dashboard через API tui_gateway/dashboard и повторно использует среду выполнения агента, а не встраивает vibeos --tui. Логика установки, серверного разрешения и самообновления находится в основном процессе Electron.

Подключение к удаленному серверу​

По умолчанию приложение запускается и управляет собственным локальным сервером. Вместо этого вы можете указать его на серверную часть VibeOS, работающую на другом компьютере — VPS, домашнем сервере или Mini за Tailscale.

Удаленный сервер представляет собой запущенный процесс vibeos dashboard.

«Удаленный сервер» означает сервер vibeos dashboard, работающий на удаленном компьютере — это процесс, к которому подключается настольное приложение. Ничто в этом разделе не работает, если эта панель мониторинга не активирована и не доступна. Настольное приложение не запустит его автоматически; вы (или служба systemd) поддерживаете работу vibeos dashboard на удаленном хосте, и приложение подключается к нему. Если вы также используете каналы обмена сообщениями (Telegram, Discord и т. д.), шлюз — это отдельный длительный процесс, который вы запускаете независимо — см. примечание после этапов настройки.

Соединение состоит из двух частей: на серверной стороне вы защищаете панель мониторинга с помощью провайдера аутентификации, а в приложении вы вводите URL-адрес серверной части и входите в систему. Привязка панели мониторинга к адресу без обратной связи автоматически включает шлюз аутентификации, а настроенный вами поставщик — это то, что пропускает настольное приложение.

Выберите поставщика в зависимости от того, где находится серверная часть:

  • **OAuth (портал Nous) — предпочтителен для всего, что доступно за пределами вашего собственного компьютера. ** Логины проверяются по вашей учетной записи Nous, поэтому этот вариант подходит для VPS, общедоступного хоста или любого удаленного бэкэнда. Зарегистрируйте панель управления с помощью vibeos dashboard register (или на странице портала /local-dashboards), чтобы подготовить клиент OAuth, а затем войдите в систему из приложения с помощью Войти с помощью Nous Research. Самостоятельный поставщик OIDC работает так же, если вы используете собственный поставщик удостоверений.
  • Имя пользователя/пароль — используется только в локальной/доверенной сети. Самый простой вариант, когда серверная часть находится в той же доверенной локальной сети или доступна только через VPN (например, Tailscale). Он защищает единые общие учетные данные без внешнего поставщика удостоверений, поэтому не используйте его для панели управления, доступной в общедоступный Интернет — вместо этого используйте там OAuth.

В оставшейся части этого раздела показан путь имени пользователя и пароля, поскольку он быстрее всего подключается к доверенной сети; путь OAuth см. в разделе Веб-панель → Поставщик по умолчанию: Nous Research.

На серверной стороне (удаленный компьютер)​

Задайте имя пользователя и пароль, затем запустите панель мониторинга, привязанную к доступному адресу. Учетные данные хранятся в ~/.vibeos/.env (файл секретов, режим 0600):

# 1. Set the dashboard login credentials.
cat >> ~/.vibeos/.env <<'EOF'
VIBEOS_DASHBOARD_BASIC_AUTH_USERNAME=admin
VIBEOS_DASHBOARD_BASIC_AUTH_PASSWORD=choose-a-strong-password
# Recommended: a stable signing secret so sessions survive restarts.
# Without it a random key is generated per boot and you'll be logged out
# on every restart.
VIBEOS_DASHBOARD_BASIC_AUTH_SECRET=$(openssl rand -base64 32)
EOF
chmod 600 ~/.vibeos/.env

# 2. Run the dashboard bound to a reachable address. The non-loopback bind
# engages the auth gate; the username/password provider handles login.
vibeos dashboard --no-open --host 0.0.0.0 --port 9119

Продолжайте этот процесс vibeos dashboard работать до тех пор, пока вы хотите, чтобы настольное приложение могло подключиться — если он остановится, приложение больше не сможет связаться с серверной частью. Запустите его под systemd, tmux или выбранным вами менеджером процессов, чтобы он выдержал выход из системы и перезагрузку.

Отдельно убедитесь, что шлюз работает на удаленном хосте, если вы полагаетесь на каналы обмена сообщениями: серверная часть панели управления — это то, с чем взаимодействует настольное приложение, но ваши сеансы шлюза Telegram/Discord/Slack — это другой процесс, который вы запускаете и продолжаете выполнять самостоятельно. См. Сообщения для настройки шлюза.

Предпочитаете не хранить пароль в виде открытого текста? Вместо этого установите VIBEOS_DASHBOARD_BASIC_AUTH_PASSWORD_HASH в хэш сценария — вычислите его с помощью python -c "from plugins.dashboard_auth.basic import hash_password; print(hash_password('PW'))". Полная поверхность конфигурации (ключи config.yaml, каждая переменная окружения, ограничитель скорости): Веб-панель → Поставщик имени пользователя/пароля.

Запуск панели мониторинга как службы systemd? Дайте устройству EnvironmentFile=%h/.vibeos/.env, чтобы учетные данные находились в среде при загрузке.

предупреждение

Панель мониторинга считывает и записывает ваши .env (ключи API, секреты) и может запускать команды агента. Показанная выше настройка имя пользователя и пароль предназначена для доверенной сети — никогда не открывайте защищенную паролем панель управления непосредственно в открытом Интернете; поместите его за VPN. Tailscale — это чистый вариант: привяжитесь к IP-адресу Tailscale машины (--host &lt;tailscale-ip&gt;) и используйте http://<tailscale-ip>:9119` в качестве удаленного URL-адреса, чтобы только ваша хвостовая сеть могла связаться с ним. Чтобы получить доступ к серверной части через общедоступный Интернет, используйте вместо этого поставщика OAuth (Nous Portal).

В приложении​

Настройки → Шлюз → Удаленный шлюз:

  1. Удаленный URL-адрес — http://&lt;backend-host&gt;:9119 (префиксы путей, такие как /vibeos, работают, если вы используете обратный прокси-сервер)
  2. Войти — приложение определяет, какого провайдера рекламирует серверная часть, и адаптирует кнопку. Для серверной части имени пользователя и пароля отображается кнопка Войти, которая открывает форму учетных данных (введите учетные данные из шага 1). Для серверной части OAuth отображается Войти с помощью &lt;provider&gt; (например, Войти с помощью Nous Research), который запускает вход в браузер провайдера. В любом случае приложение завершает сеанс аутентификации с серверной частью.
  3. Сохранить и переподключить — переключает оболочку рабочего стола на удаленный сервер. Сеанс обновляется автоматически; вы остаетесь в системе после перезапуска, если установлен VIBEOS_DASHBOARD_BASIC_AUTH_SECRET.

Вы также можете установить URL-адрес серверной части без пользовательского интерфейса через переменную среды VIBEOS_DESKTOP_REMOTE_URL перед запуском приложения (она переопределяет настройки в приложении); вы по-прежнему входите в систему с панели настроек шлюза.

Удаленные хосты для каждого профиля

Узел удаленного шлюза настраивается для каждого профиля, поэтому каждый профиль может указывать на свой собственный удаленный сервер (или оставаться на своем локальном). Переключение профилей переключает удаленный хост, к которому подключается приложение.

Поиск неисправностей​

  • Сбой входа в систему с кодом 401 / «Неверные учетные данные» — имя пользователя или пароль не соответствуют VIBEOS_DASHBOARD_BASIC_AUTH_USERNAME / VIBEOS_DASHBOARD_BASIC_AUTH_PASSWORD серверной части. Серверная часть возвращает одну и ту же общую ошибку для неизвестного пользователя и неправильного пароля (без оракула перечисления), поэтому дважды проверьте оба. Подтвердите, что шлюз включен с помощью curl -s http://&lt;host&gt;:9119/api/status | jq '.auth_required, .auth_providers' — он должен сообщать true и включать "basic".
  • Нет кнопки «Войти» — вместо этого запрашивается токен сеанса — поставщик имени пользователя и пароля серверной части не активен. /api/status не будет включать "basic" в auth_providers. Убедитесь, что имя пользователя и пароль (или хэш пароля) установлены в ~/.vibeos/.env и что процесс информационной панели действительно загрузил их.
  • Выход при каждом перезапуске — установите для VIBEOS_DASHBOARD_BASIC_AUTH_SECRET стабильное значение. Без него ключ подписи токена заново генерируется при каждой загрузке, что делает все сеансы недействительными.
  • Соединение отклонено/время ожидания — серверная часть, привязанная к 127.0.0.1 (по умолчанию), или брандмауэр/VPN блокирует порт. Привяжитесь к 0.0.0.0 или IP-адресу Tailscale и откройте порт для доверенной сети.

Для той же настройки с точки зрения веб-панели см. Веб-панель → Подключение рабочего стола VibeOS к удаленному серверу; переменные env каталогизируются в разделе Переменные среды → Веб-панель и рабочий стол VibeOS.

Поиск неисправностей​

Журналы загрузки попадают в VIBEOS_HOME/logs/desktop.log (он включает в себя выходные данные серверной части и недавние обратные трассировки Python) — сначала проверьте его, если приложение сообщает об ошибке загрузки. Вы также можете отслеживать его из CLI:

vibeos logs gui -f

Общие сбросы:

# Force a clean first-launch setup (macOS/Linux)
rm "$HOME/.vibeos/vibeos-agent/.vibeos-bootstrap-complete"

# Rebuild a broken Python venv (macOS/Linux)
rm -rf "$HOME/.vibeos/vibeos-agent/venv"

# Reset a stuck macOS microphone prompt
tccutil reset Microphone com.nousresearch.vibeos

«Создание настольного приложения» зависло при загрузке Electron​

Сборка загружает среду выполнения Electron (~114 МБ) из github.com/electron/electron/releases. Если установщик зависает на этапе Создать настольное приложение и в реальном времени повторяется retrying attempt=…, GitHub блокируется или регулируется в вашей сети (брандмауэр, прокси-сервер или регион).

Установщик автоматически исправляет это: при неудачной сборке он (1) очищает поврежденный кэшированный zip-архив Electron и повторяет попытку, затем (2) если все равно происходит сбой и вы не установили ELECTRON_MIRROR, повторяет попытку через npmmirror.com, де-факто зеркало сообщества Electron. @electron/get SHASUM — проверяет загрузку, но контрольные суммы поступают с одного и того же зеркала — оно выявляет поврежденную или частичную загрузку, а не скомпрометированное зеркало. Если вы не хотите доверять стороннему хосту, прикрепите свой собственный ELECTRON_MIRROR (ниже); сборка никогда не переопределяет ту, которую вы установили.

Чтобы выбрать собственное зеркало (например, корпоративное/доверенное), установите ELECTRON_MIRROR перед установкой или повторной сборкой вручную — сборка учитывает это значение и не переопределяет его:

ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ \
bash -c 'cd "$HOME/.vibeos/vibeos-agent/apps/desktop" && CSC_IDENTITY_AUTO_DISCOVERY=false npm run pack'

Чтобы вручную очистить поврежденный кэшированный zip-архив:

rm -f "$HOME/Library/Caches/electron"/electron-*.zip   # macOS
rm -f "$HOME/.cache/electron"/electron-*.zip # Linux

Сборка из исходников​

Если вы хотите взломать само приложение, один раз установите deps рабочей области из корня репозитория, а затем запустите сервер разработки из apps/desktop:

npm install          # from repo root — links apps/desktop, web, apps/shared
cd apps/desktop
npm run dev # Vite renderer + Electron, which boots the Python backend

Направьте приложение на конкретную кассу или изолируйте его от своей реальной конфигурации:

VIBEOS_DESKTOP_VIBEOS_ROOT=/path/to/clone npm run dev
VIBEOS_HOME=/tmp/throwaway npm run dev
npm run dev:fake-boot # exercise the startup overlay with deterministic delays

Установщики сборки:

npm run dist:mac     # DMG + zip
npm run dist:win # NSIS + MSI
npm run dist:linux # AppImage + deb + rpm
npm run pack # unpacked app under release/ (no installer)

Подписание и нотариальное заверение macOS/Windows выполняются автоматически, если в среде присутствуют соответствующие учетные данные (CSC_LINK / CSC_KEY_PASSWORD / APPLE_* для macOS, WIN_CSC_* для Windows).

См. также​

  • CLI Guide — интерфейс терминала
  • TUI — современный пользовательский интерфейс терминала, используемый vibeos --tui, и вкладка чата на панели управления.
  • Веб-панель — админ-панель браузера со встроенной вкладкой чата.
  • Конфигурация — конфигурация, которую читает и записывает настольное приложение.
  • Windows (Native) — собственный путь установки Windows.