Navision
EN RU
Скачать

Beta 1 · первая публичная бета

Ubuntu, которой управляет AI

Navision — рабочий стол для Ubuntu со своим компоновщиком Wayland на Rust. Помощник на вашей подписке Claude Code или Codex пишет код и ведёт систему. Всё, что делает мышь, он может вызвать командой.

основа
Ubuntu 26.04 · x86_64
компоновщик
Wayland · Rust · Smithay 0.7
агенты
Claude Code · Codex · ACP
удалённо
macOS · QUIC · Metal
состояние
Beta 1
Стол Navision: верхняя панель, окно Настроек с приветствием первого входа и Док внизу

Поставь Dockerпример

Поставь Docker и проверь, что работает

Ставлю пакет. Нужны права root:
sudo apt install docker.io

Окно пароля

Docker установлен, hello-world отработал

+

~/projectsСпрашивать37%

Так работает компоновщик: кадры появляются только там, где что-то меняется. Между ними он спит, и экран держит последний кадр.

кадров за последние 6 секунд: 72 из 360

  • 45мс

    от запуска компоновщика до первого кадра

    Медиана пяти запусков без монитора. На мониторе 4K — 261 мс.

  • 0,2в секунду

    пробуждения всего стола в покое

    С неподвижными обоями: 0 мс процессора и 0 мс видеокарты за секунду.

  • 10,3мс

    от щелчка мыши до экрана

    Медиана на мониторе 4K 120 Гц, 95-й процентиль — 14,2 мс.

  • 73МБ

    память всех процессов стола

    У GNOME Shell в том же замере 176 МБ, у KDE Plasma — 330 МБ.

nova-brain · nova-agentd · nova-mcp

Claude Code в окне, а не в терминале

Помощник — чат с проектами и историей. Работу делает официальный CLI вашего агента, поэтому подписка работает как есть: Navision не трогает токены и сама не обращается к API моделей.

  • Любой агент, несколько подписок

    Claude Code и Codex подключены напрямую. OpenCode, Gemini CLI и Qwen Code — через протокол ACP. Агента можно сменить посреди чата.

  • Чат управляет Ubuntu

    «Поставь Docker», «что грузит сервер», «почини тест». Ссылки на файлы в ответах открывают Файлы.

  • Диспетчер

    Отдельная сессия на быстрой модели раздаёт задачи фоновым агентам, сама к ним возвращается и отвечает голосом. Сама ничего не меняет.

  • Дела по расписанию и по событиям

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

  • Работа переживает окно

    Агенты живут в фоновой службе nova-agentd. Закрыли окно или перезапустили оболочку — они продолжают.

Окно «Помощник»: проекты слева, ответ со ссылками на запись экрана

comp.sock · nova-ctl · MCP

Каждая кнопка — команда

У компоновщика есть сокет управления и сервер MCP. Всё, что вы делаете мышью, агент делает той же командой и с тем же результатом. До 16 вызовов идут параллельно.

  • окна и столы
  • мониторы
  • запуск программ
  • настройки
  • снимки и запись экрана
  • дерево доступности
  • ui_tree
  • ui_find
  • ui_act
  • ввод мышью и клавиатурой
  • голос и музыка
  • тестовый браузер

nova-rootd · polkit · nova-cage

Агенту можно доверить систему

Команда агента от root не выполняется, пока вы не увидите её целиком и не введёте пароль. Так идёт каждая команда, без «запомнить на пять минут».

  1. sudo apt install …Агент вызывает sudo в своей песочнице.
  2. nova-sudoВместо sudo — клиент Navision, он передаёт команду по D-Bus.
  3. nova-rootdБрокер от root. Кто звонит, он узнаёт у ядра, а не со слов клиента.
  4. polkit · auth_adminpolkit требует пароль администратора на каждую команду.
  5. окно пароляКоманда видна целиком, опасные отмечены: rm -rf /, mkfs, dd.
Помощник, раздел «Агенты и дела»: свой сервер Local agent и дело «Искать баги»
  • Пароль не видит ни один процесс пользователя

    Он уходит только в системный помощник polkit. Ни агент, ни окно Помощника его не получают.

  • Песочница на каждый CLI

    Агент работает в bubblewrap, как программы Flatpak. Скрыты .ssh, .gnupg, .aws, .kube, связка ключей и профили браузеров. Нет доступа к устройствам ввода.

  • Двери наружу открываются явно

    Службы systemd, задачи Диспетчера и подзадачи идут через отдельные узкие двери. Всё, что запускается вне песочницы (автозапуск, .bashrc), агенту доступно только для чтения.

  • Свой сервер моделей

    Локальная LLM по адресу и ключу: Anthropic-совместимый API работает через Claude Code, OpenAI-совместимый — через Codex. Ключ лежит в связке ключей.

nova-comp · frame_clock · nova-hold

Кадр рисуется, только когда что-то изменилось

Компоновщик — один поток событий без таймеров «на всякий случай». Его будит клиент, устройство ввода или срок конкретного кадра. Всё остальное время он спит.

  1. Сон до события

    Нет опроса и холостых циклов. Невидимое не анимируется.

  2. Только урон

    Перерисовывается изменившаяся область. Неподвижный низ сцены сведён в один слой.

  3. vblank минус бюджет

    Кадр начинается как можно позже. Бюджет не константа: он измеряется по недавним кадрам.

  4. Тот же кадр

    Быстрая программа получает сигнал раньше и успевает в текущий кадр. Буфер видеокарты применяется по сигналу готовности.

  5. Курсор вне кадров

    Указатель двигает отдельный поток на своей плоскости монитора, не дожидаясь сцены.

Два обновления монитора 120 Гц. Указатель успевает в первое, щелчок мыши — во второе. Замер на настоящем мониторе 4K.

  • 0–3,3мс/с

    Опоздания кадров (hitch) во всех сценариях

    Это 0–2 поздних кадра из 600. Меньше 5 мс/с глаз не замечает. До новой архитектуры кадра открытие окна давало 323 мс/с.

  • 0,74–1,83мс

    Время видеокарты на кадр

    Покой 0,74–0,77 мс, смена фокуса 1,63 мс, плавная прокрутка 1,83 мс.

  • ≈ 0,2с

    Перезапуск компоновщика

    Монитор не гаснет: до первого кадра нового процесса на экране остаётся последний кадр старого.

Машина замеров: Ryzen 9 9900X, встроенная Radeon (2 CU RDNA2), Samsung Odyssey G8 32″ 4K 120 Гц, масштаб ×1,5, HDMI, мышь 1 кГц, ядро 7.0. Все живые числа сняты на одной машине.

  • Падение не теряет работу

    Сокет Wayland держит отдельный процесс nova-hold и сам поднимает компоновщик. Терминалы живут в nova-keeper и возвращаются с историей в 10 000 строк. Агенты — в своей службе.

  • Что переживает перезапуск

    Свои приложения и программы на Qt 6 переподключаются. GTK, Chrome, Electron и X11 открываются заново на тех же местах, Chrome — со вкладками. Несохранённое в GTK-программе пропадает.

  • Чего пока нет

    VRR работает только под полноэкранным окном. Прямой вывод окна на плоскость монитора включён лишь для окон без рамки Navision и на мониторе ещё не проверен.

scripts/benchmark · 2026-11-06 · 92aa33cd

Сравнение с GNOME, KDE и Sway — одной командой

scripts/benchmark запускает каждый стол без монитора на одной и той же видеокарте, в 3840×2160, с одними и теми же программами. Всё меряется снаружи, из /proc и счётчиков видеокарты в ядре: внутренних счётчиков Navision в сравнении нет.

Первое окно, мс

От запуска компоновщика до первого показанного кадра окна.

  • Navision91,4
  • Sway 1.11105,6
  • Weston 14152,6
  • KWin 6.6171,0
  • KDE Plasma 6.6172,5
  • Mutter 50198,1
  • GNOME Shell 50553,7

Память в покое, МБ

PSS всех процессов стола: компоновщик, оболочка и службы, которые он поднял.

  • Sway 1.1145,8
  • Mutter 5056,2
  • Navision73,3
  • Weston 1482,7
  • KWin 6.6139,6
  • GNOME Shell 50176,4
  • KDE Plasma 6.6329,8

Запуск приложений, мс

От запуска до первого кадра окна в Navision. Свои приложения и Chrome.

  • Терминал12,5
  • Редактор32,0
  • Настройки33,1
  • Файлы34,7
  • Помощник35,8
  • Chrome221,2

Цена кадра 4K, мс видеокарты

Время самой видеокарты на один полный кадр по сценам.

  • ничего не изменилось0,0
  • шаг живых обоев0,7
  • пустой стол1,4
  • терминал1,8
  • два монитора2,0
  • Настройки2,5
  • Файлы2,6

Пробуждения в покое, в секунду

Сколько раз за секунду просыпается стол, когда вы ничего не делаете. Меньше — лучше.

  • Mutter 500,0
  • Sway 1.110,0
  • KWin 6.60,4
  • Navision · обои без движения0,5
  • GNOME Shell 505,0
  • KDE Plasma 6.67,2
  • Navision · живые обои149,9

Анимация окна, мс видеокарты в секунду

Сколько стоит столу программа, которая перерисовывается на каждый кадр.

  • Mutter 5084,3
  • KWin 6.684,8
  • KDE Plasma 6.685,9
  • Sway 1.1198,2
  • Navision108,5
  • GNOME Shell 50146,3
Вся таблица сравнения
Столпокой: процессор, мс/спокой: пробуждений/спокой: видеокарта, мс/санимация: процессор, мс/санимация: видеокарта, мс/скадров/с у программыhitch, мс/с
Navision · живые обои8,7149,924,430,0108,560,00,0
Navision · обои без движения0,00,50,021,0107,360,00,0
GNOME Shell 50.12,05,00,038,0146,360,00,0
KDE Plasma 6.6.61,07,20,018,585,960,00,0
KWin 6.6.60,00,40,017,084,860,00,0
Mutter 50.10,00,00,021,584,360,00,0
Sway 1.110,00,00,015,098,262,30,0

Где Navision проигрывает. С живыми обоями, которые включены по умолчанию, простой стол просыпается 150 раз в секунду и занимает видеокарту на 24 мс/с; остальные столы в это время спят. С неподвижными обоями — 0,5 пробуждения. Анимация окна стоит видеокарте 108 мс/с: больше, чем у KWin (85) и Sway (98), меньше, чем у GNOME Shell (146). Sway и голый Mutter занимают меньше памяти. Столы рисуют разное (GNOME — панель, голый KWin — только фон), поэтому это сравнение стоимости, а не красоты. Weston в таблице нет: его режим без монитора сам ведёт кадры примерно в 40 Гц.

Замер 2026-11-06, коммит 92aa33cd. AMD Ryzen 9 9900X (24 потока), 59,5 ГБ, встроенная Radeon Granite Ridge, Mesa 26.0.8, Ubuntu 26.04.1, ядро 7.0.0-42. Без монитора, виртуальный vblank 60 Гц, медианы. GNOME Shell 50.1, KWin и Plasma 6.6.6, Mutter 50.1, Weston 14.0.2, Sway 1.11.

nova-remoted · QUIC · wgpu / Metal

Remote Navision: сервер без видеокарты, интерфейс рисует Mac

Navision работает на любом сервере Ubuntu, а Док, окна, меню и анимации клиент рисует сам. Поэтому движение интерфейса не зависит от сети: с сервера приходит только то, что изменилось.

  • Серверу не нужна видеокарта

    Программы, агенты и службы работают на сервере. Картинку сервер считает на процессоре.

  • Оболочку ведёт Mac

    Док с лупой, меню, открытие, закрытие и перетаскивание окон, смену столов клиент анимирует на своих часах тем же кодом, что и сама система. Рисует Metal.

  • Сцена вместо видео

    Оболочка приходит списком фигур и только изменениями. Картинки передаются один раз. Видеокодека нет, поэтому текст всегда чёткий.

  • Чужие окна — плитками

    Неизменённая плитка не отправляется, однотонная уходит одним цветом, прокрутка — сдвигом. Остальное сжимают zstd и LZ4.

  • Одно соединение QUIC

    UDP, TLS 1.3. Движение указателя идёт датаграммами. Модель интерфейса важнее звука, звук важнее пикселей.

  • Вход по ключу SSH

    Паролей нет. Отпечаток сертификата сервера клиент получает по SSH, одноразовый пропуск живёт две минуты.

Сервер Ubuntu

Без видеокарты и монитора. Здесь работают программы, агенты и службы.

Ваш Mac

Сам рисует Док, окна, меню и анимации на Metal.

Чего мы не обещаем. Задержку по сети мы ещё не замеряли, поэтому чисел здесь нет. Программы на сервере работают без ускорения видеокартой. Клиент пока только для Mac на Apple Silicon и не нотаризован. Со звуком нужна сеть от 1,5 Мбит/с.

Cargo.toml · 98 crates · CI

Rust от компоновщика до приложений

Свой компоновщик на Smithay, не форк. Один поток событий, без async-рантайма. Домен окон не знает ни Wayland, ни видеокарты и проверяется обычными юнит-тестами.

  • 98

    крейтов

    У каждого одна ответственность. Файл длиннее 600 строк кода не проходит CI.

  • 518тыс. строк

    кода на Rust

    Вместе с тестами.

  • 7 236

    юнит-тестов

    На каждом PR идут тесты затронутых крейтов, на main — все.

  • 127

    сценариев на копии системы

    Каждый поднимает свою копию Navision без монитора. Быстрый набор — на каждом PR, все — каждую ночь.

  • Компоновщик

    Rust 2021 · Smithay 0.7 · calloop

    Smithay с одним своим патчем: плоскость курсора обновляется вне общего кадра.

  • Отрисовка

    GLES · llvmpipe · Pixman

    Запасные пути считают картинку на процессоре: так идут проверки без видеокарты и Remote Navision.

  • Текст и растр

    cosmic-text · swash · tiny-skia

    Разметку можно считать без видеокарты, поэтому она проверяется тестами.

  • Управление

    JSON socket · MCP · D-Bus (zbus)

    Мышь, командная строка и агент вызывают одни и те же команды.

  • Вход и безопасность

    bubblewrap · polkit · PAM · greetd

    Проверенные системные механизмы вместо своих.

  • Звук и запись экрана

    PipeWire · VAAPI / FFmpeg

    Запись экрана кодирует видеокарта.

  • Remote

    QUIC (quinn) · TLS 1.3 · CBOR · zstd · wgpu

    Те же шейдеры, переписанные на WGSL, рисуют интерфейс на Mac.

  • Терминал

    foot · alacritty_terminal · nova-keeper

    Сессия живёт в отдельном процессе и переживает перезапуск оболочки.

  • Доступность

    AccessKit · AT-SPI

    Одно дерево и для экранного диктора Orca, и для агента.

правило 2 · ресурсы по требованию

Что работает, когда вы ничего не делаете? Ничего

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

  • XwaylandПрограммы X11. Стартует с первым окном за 40 мс, уходя возвращает 90 МБ. гаснет через 10 с
  • nova-sysdWi-Fi, Bluetooth, звук, яркость, пока открыт пункт управления. гаснет через 10 с
  • nova-wifidWi-Fi от root, по вызову. гаснет через 10 с
  • nova-rootdБрокер root, по первой команде агента. гаснет через 10 с
  • nova-portalСистемное окно выбора файла. гаснет через 10 с
  • nova-voxdГолос: диктовка и чтение вслух. по запросу
  • nova-recdВидео записи экрана. процесс на запись
  • nova-authПроверка пароля. процесс на попытку
  • nova-remotedСервер Remote Navision. гаснет через 10 мин без клиента
  • nova-soundЗвуки интерфейса. гаснет через 1,5 с тишины

ARCHITECTURE.md · сравнение

Чем Navision отличается от GNOME, KDE, COSMIC и niri

Есть только здесь

  • Сокет управления с MCP для агентов

    У GNOME снаружи доступны D-Bus и расширения, у niri — niri msg. Здесь агент видит дерево интерфейса и нажимает то же, что и вы.

  • Терминалы и агенты переживают падение оболочки

    В GNOME на Wayland перезапуск оболочки закрывает программы. COSMIC и niri не держат сокет Wayland отдельно.

  • Логика окон проверяется без Wayland

    Порядок окон, плитки и столы — чистый код с юнит-тестами, без запуска графики.

  • Плавное колесо мыши в чужих программах

    Щелчок колеса раскладывается на 18 шагов за 150 мс для GTK, Qt Widgets и терминала: в GTK 3 выходит 9 кадров вместо одного. KWin, Mutter, Sway, Hyprland и niri этого не делают.

Где сильнее другие

  • COSMIC взрослее

    У него зрелее код, тайлинг деревом и собственный тулкит.

  • Панель и Док внутри компоновщика

    Как у GNOME: один контекст видеокарты и дешёвое стекло. Цена решения: ошибка в панели роняет компоновщик. Поэтому перезапуск и сделан без потерь.

  • Покой с живыми обоями

    KWin, Mutter и Sway в покое не просыпаются совсем. Navision так умеет только с неподвижными обоями.

nova-app · nova-voxd · nova-monitor

Целая система, а не тема оформления

Свои приложения написаны на одном тулките и открываются за 32–36 мс. Чужие программы работают как обычно.

Мониторинг Navision: процессор, память, сеть, диски, самые занятые программы и журнал
  • Помощник

    Чат с агентами, проекты, история, Диспетчер и дела по расписанию.

  • Терминал

    Вкладки по ⌘T перетаскиваются между окнами. Ссылки и пути кликабельны. Строку, которая не команда, Enter отдаёт агенту.

  • Файлы

    Быстрый просмотр офисных файлов и PDF. Он же — системное окно выбора файла.

  • Редактор

    Редактор кода с подсветкой синтаксиса.

  • Мониторинг

    Процессор, память, диски, сеть и температуры на одной странице. 20 виджетов для стола и кнопка «Спросить Помощника».

  • Снимки и запись

    Снимки экрана с пометками и запись видео.

  • Диски

    Разделы и форматирование.

  • Настройки

    Аккаунты, Wi-Fi, Bluetooth, внешний вид, мониторы — в духе macOS.

  • Голос

    Диктовка в любое поле на русском и английском, чтение ответов вслух и «Разговор» с Помощником с подавлением эха. Движки: Soniox и OpenAI.

  • Движение

    Пружины по модели SwiftUI. Прерванная анимация сохраняет скорость. Есть режим «Меньше движения».

  • Чужие программы

    Chrome, Electron, Qt и GTK идут родными клиентами Wayland, X11 — через Xwayland. Работает Wine.

  • Игры

    Steam открывается отдельным игровым режимом по Super+G и заморожен, пока на экране Navision.

install.sh · Beta 1

Установка одной командой

Первая публичная бета. Обе сборки CI собирает из изменений, которые прошли все проверки.

Navision для Ubuntu

Beta 1 · Ubuntu 26.04 · x86_64 · 177 MB

Установщик сам посмотрит машину, поставит пакеты, службы и вход. Вам останется войти и ввести свои аккаунты: при первом входе откроются Настройки → Аккаунты.

curl -fsSL https://github.com/snemesh/navision/releases/download/latest-main/install.sh | sh

Повторный запуск той же команды обновляет систему. Удалить: sudo novaos-setup remove из текстовой консоли.

Remote Navision

Предварительная сборка · macOS · Apple Silicon · 15 MB

Откройте dmg и перетащите Remote Navision в «Программы». Сборка не нотаризована: в первый раз нажмите «Всё равно открыть» в Системных настройках → «Конфиденциальность и безопасность».

Скачать RemoteNavision.dmg

На сервере нужны Navision, вход по ключу SSH без пароля и открытые порты UDP 60100–60199.

  • Только Ubuntu 26.04, x86_64. Готовых сборок для других версий нет.
  • Видеокарта AMD, Intel или NVIDIA. Все замеры сняты на AMD. Драйвер NVIDIA установщик ставит сам, но на NVIDIA систему ещё не проверяли: возможны ошибки.
  • Интерфейс пока на русском. Диктовка понимает русский и английский.
  • Нужна своя подписка. Агенты работают через официальный CLI Claude Code или Codex на вашем аккаунте.