Десктоп-приложение
Десктоп 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 <tailscale-ip>) и используйте http://<tailscale-ip>:9119` в качестве удаленного URL-адреса, чтобы только ваша хвостовая сеть могла связаться с ним. Чтобы получить доступ к серверной части через общедоступный Интернет, используйте вместо этого поставщика OAuth (Nous Portal).
В приложении
Настройки → Шлюз → Удаленный шлюз:
- Удаленный URL-адрес —
http://<backend-host>:9119(префиксы путей, такие как/vibeos, работают, если вы используете обратный прокси-сервер) - Войти — приложение определяет, какого провайдера рекламирует серверная часть, и адаптирует кнопку. Для серверной части имени пользователя и пароля отображается кнопка Войти, которая открывает форму учетных данных (введите учетные данные из шага 1). Для серверной части OAuth отображается Войти с помощью
<provider>(например, Войти с помощью Nous Research), который запускает вход в браузер провайдера. В любом случае приложение завершает сеанс аутентификации с серверной частью. - Сохранить и переподключить — переключает оболочку рабочего стола на удаленный сервер. Сеанс обновляется автоматически; вы остаетесь в системе после перезапуска, если установлен
VIBEOS_DASHBOARD_BASIC_AUTH_SECRET.
Вы также можете установить URL-адрес серверной части без пользовательского интерфейса через переменную среды VIBEOS_DESKTOP_REMOTE_URL перед запуском приложения (она переопределяет настройки в приложении); вы по-прежнему входите в систему с панели настроек шлюза.
Узел удаленного шлюза настраивается для каждого профиля, поэтому каждый профиль может указывать на свой собственный удаленный сервер (или оставаться на своем локальном). Переключение профилей переключает удаленный хост, к которому подключается приложение.
Поиск неисправностей
- Сбой входа в систему с кодом 401 / «Неверные учетные данные» — имя пользователя или пароль не соответствуют
VIBEOS_DASHBOARD_BASIC_AUTH_USERNAME/VIBEOS_DASHBOARD_BASIC_AUTH_PASSWORDсерверной части. Серверная часть возвращает одну и ту же общую ошибку для неизвестного пользователя и неправильного пароля (без оракула перечисления), поэтому дважды проверьте оба. Подтвердите, что шлюз включен с помощьюcurl -s http://<host>: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.