Локальный OS-агент для Windows, который не просто отвечает — он действует на вашем компьютере.
Голос · окна · файлы · терминал · браузер · память · MCP · фоновые планы
Обычному ассистенту вы объясняете задачу, получаете инструкцию и всё равно делаете работу сами. Nova получает цель, выбирает подходящие инструменты, выполняет шаги и показывает, что получилось.
«Открой проект, запусти тесты, покажи ошибки и не потеряй процесс, пока я занимаюсь другим».
Nova может открыть приложения, работать с файлами, запустить команду в фоне, следить за процессом, продолжить план после перезапуска и сообщить, когда результат готов.
| Обычный AI-чат | Nova |
|---|---|
| Пишет, куда нажать | Нажимает через API или UI Automation |
| Даёт команду для терминала | Запускает и контролирует процесс |
| Забывает задачу после закрытия | Сохраняет checkpoints фоновых планов |
| Видит только prompt | Работает с окнами, файлами, браузером и MCP |
| Говорит «не могу» без доступного действия | Ищет подходящий инструмент и объясняет реальный blocker |
Вы: «Запусти проект, прогони тесты и скажи, если сервер упадёт»
Nova: понимает цель
→ выбирает terminal + process tools
→ запускает работу в фоне
→ сохраняет состояние
→ следит за тестами и сервером
→ возвращается с результатом
Не нужно помнить названия инструментов или вручную собирать цепочку команд. Вы описываете результат человеческим языком.
- Открывать одно или сразу несколько приложений.
- Сворачивать и закрывать окна, менять громкость.
- Находить элементы интерфейса через UI Automation и нажимать их.
- Распознавать текст на экране через OCR.
- Принимать голосовую команду по
Ctrl+Shift+Space.
«Открой блокнот, калькулятор и проводник»
«Найди кнопку “Сохранить” в активном окне и нажми её»
«Распознай текст на экране»
- Автоматически понимать активный Git/workspace по IDE, терминалу и файлам.
- Выполнять относительные terminal/file/Git-команды именно в этом проекте.
- Читать, создавать и изменять файлы с backup и diff.
- Отменять последние изменения Nova командой «верни как было», не затирая более свежие ручные правки.
- Проверять Git status, diff, log, ветки и делать commit.
- Запускать команды, тесты и долгоживущие процессы.
- Читать stdout/stderr, проверять health и останавливать дерево процессов.
- Управлять Playwright-браузером.
«Запусти тесты здесь» — полный путь к проекту указывать не нужно
«Отмени последнее изменение Nova» — восстановится точный проверенный backup
«Покажи изменения в проекте и предложи название коммита»
«Запусти python -m pytest в фоне и покажи итог»
«Подними HTTP-сервер на 8000 и следи, чтобы он не упал»
- Хранить долговременные факты локально в SQLite.
- Создавать многошаговые и фоновые планы.
- Сохранять checkpoint после каждого подтверждённого шага.
- Продолжать незавершённый план после перезапуска без повтора side effects.
- Создавать напоминания.
«Запомни, что рабочие репозитории лежат в D:\Projects»
«Запусти в фоне план: открой проект, прогони тесты, собери отчёт»
«Напомни через 20 минут проверить сборку»
В настройках есть opt-in режим «Nova рядом». Когда он включён, Nova изредка анализирует только активное окно и может сама спросить:
«Похоже, сборка упала. Разобраться с ошибкой?»
Кнопка под предложением превращает его в обычный пользовательский запрос. Регистрация на сайте, ответ в мессенджере, публикация или другое внешнее действие проходят через стандартный orchestrator, preview и permission policy. Само наблюдение никогда не получает инструменты.
Nova сообщает, когда:
- в активном окне появилась явная ошибка, блокер или полезный момент для помощи;
- завершился фоновый план или тесты;
- упал управляемый сервер;
- CPU или RAM остаются перегруженными несколько измерений подряд — с указанием процесса-виновника;
- на диске заканчивается место;
- одноразовый процесс подозрительно долго остаётся запущенным;
- в Git появился конфликт или изменения давно не закоммичены;
- failed-план можно безопасно продолжить с последнего checkpoint;
- повторяющуюся последовательность действий стоит сохранить как workflow;
- явно отслеживаемая публичная страница изменилась;
- резервная копия пропала или устарела;
- для установленного Python-пакета вышла новая версия.
Уведомления имеют cooldown, quiet hours, уровень важности и объяснимую причину. Nova предлагает действие, но не выполняет новый side effect без запроса пользователя.
«Следи за https://example.com/releases и сообщи, когда страница изменится»
«Покажи сайты, за которыми ты следишь»
«Удали подписку watch_...»
«Следи за D:\Backups и предупреди, если backup старше 24 часов»
«Покажи контроль резервных копий»
«Следи за обновлениями пакета requests»
Для поиска повторов сохраняются только названия инструментов, случайные operation/turn/session ID и время. Аргументы, пути, сообщения и результаты не попадают в эту историю; записи старше configured lookback удаляются.
Инструменты регистрируются в общем capability registry. Роутер выбирает их по намерению задачи, а не заставляет одну модель угадывать всё сразу.
- Частые Windows-команды выполняются напрямую, без лишнего LLM-вызова.
- Для сложной задачи Nova строит план и вызывает инструменты по шагам.
- MCP-инструменты подключаются к тому же registry.
- Ошибки инструментов возвращаются как структурированный результат, а не маскируются общим отказом.
- Опасные операции проходят через permission policy.
Для Groq маршрут намеренно ограничен двумя моделями:
| Запрос | Модель |
|---|---|
| Текст, рассуждение и tool calling | openai/gpt-oss-120b |
| Запрос с изображением | qwen/qwen3.6-27b |
OpenRouter может использоваться как резервный провайдер. Nova не отправляет текстовый tool-call в случайную маленькую модель ради формального fallback.
git clone https://github.com/KremlevLev/nova.git
cd novapy -3.14 -m venv .venv
.\.venv\Scripts\Activate.ps1
python scripts/install_dependencies.py
python -m playwright install chromiumCopy-Item .env.example .envМинимальный .env:
GROQ_API_KEYS=gsk_your_keyКлюч Groq создаётся в console.groq.com. Для резервного маршрута можно также задать:
OPENROUTER_API_KEYS=sk-or-your_keypython -m mainНажмите Ctrl+Shift+Space и скажите:
«Открой блокнот и напиши: Nova работает».
| Клавиша | Действие |
|---|---|
Ctrl+Shift+Space |
Включить или выключить голосовой режим |
Esc |
Прервать речь Nova |
Ctrl+Shift+Q |
Аварийно прервать речь Nova |
Текущий PySide6-интерфейс запускается вместе с Nova и остаётся рабочим fallback на время миграции. Он даёт один центр управления:
- диалог и история выполнения;
- фоновые процессы и их логи;
- память;
- разрешения для рискованных действий;
- состояние моделей и провайдеров;
- proactive-уведомления и причины их появления.
Интерфейс можно отключить:
NOVA_DESKTOP_UI=falseНовый desktop-клиент развивается в apps/desktop: React + TypeScript отвечают
за presentation layer, Tauri — за окно, установщик и обновления, а всё AI-ядро
остаётся в Python.
Пользователю нужен только один файл:
Nova_0.1.5_x64-setup.exe
Запустите installer обычным двойным кликом. Nova установится для текущего
пользователя в %LOCALAPPDATA%\Nova, появится в меню «Пуск» и в списке
установленных программ. Python, Node.js и Rust на пользовательском компьютере
не требуются.
При первом старте без API-ключа приложение не падает: откройте «Настройки», выберите Groq/OpenRouter/Gemini и вставьте ключ. Nova сохранит его в пользовательских данных приложения и сама переподключит Core.
Для локального просмотра кликабельного dev-сценария:
cd apps\desktop
npm install
npm run dev
# открыть http://127.0.0.1:1420/?demo=1Без ?demo=1 браузерный preview честно показывает отсутствие Tauri Core.
JSONL bridge и supervisor уже реализованы, но полноценный desktop-запуск
проверяется отдельной командой:
$env:Path = "$env:USERPROFILE\.cargo\bin;$env:Path"
cd C:\Users\Utest\Desktop\nova\apps\desktop
npm run desktopЭта команда сама запускает Vite, собирает/открывает нативное окно Tauri и
поднимает Python Core. Не запускайте npm run dev одновременно: оба процесса
попытаются занять порт 1420.
Один раз установите build dependencies:
python -m pip install -r requirements-build.txt
cd apps\desktop
npm installЗатем:
$env:Path = "$env:USERPROFILE\.cargo\bin;$env:Path"
npm run installerКоманда собирает React, упаковывает headless Python Core через PyInstaller, собирает Tauri release и создаёт:
apps\desktop\src-tauri\target\release\bundle\nsis\Nova_0.1.5_x64-setup.exe
Core использует source fingerprint: повторная сборка пропускает PyInstaller, если Python-ядро не менялось. Для принудительной пересборки:
npm run build:core -- --forceПодробнее: docs/desktop_architecture.md.
Nova поддерживает stdio, Streamable HTTP и legacy SSE через официальный MCP
Python SDK. Конфиг совместим с форматом mcpServers:
NOVA_MCP_CONFIG=C:\Users\you\.config\nova\mcp.json
NOVA_MCP_AUTO_DISCOVERY=false{
"mcpServers": {
"project_files": {
"command": "python",
"args": ["C:\\tools\\project_server.py"],
"env": {
"PROJECT_TOKEN": "${PROJECT_TOKEN}"
}
},
"internal_api": {
"transport": "streamable_http",
"url": "http://127.0.0.1:8000/mcp"
}
}
}После handshake инструменты получают risk/category metadata и участвуют в
общем capability routing. Значения ${ENV_NAME} подставляются локально и не
добавляются в prompt.
OS-агент не должен быть «магией», которой приходится слепо доверять.
- Рискованные операции требуют подтверждения.
- Python-код выполняется в sandbox.
- Запись в системные каталоги ограничена.
- Fallback не повторяет уже выполненный side effect.
- Фоновые действия и причины proactive-предложений журналируются.
- «Nova рядом» выключена по умолчанию: при наблюдении кадр остаётся в RAM и в vision-модель уходит только активное окно.
- После клика «Помочь» визуальный контекст создаётся как одноразовый attachment и удаляется сразу после чтения агентом.
- Окна password manager, банков, оплаты и private browsing автоматически пропускаются.
- Содержимое экрана считается недоверенным и проверяется на prompt injection.
- MCP auto-discovery выключен по умолчанию.
- Секреты остаются в
.envи environment variables.
Порог свободного места и quiet hours настраиваются:
NOVA_PROACTIVE_QUIET_START=22
NOVA_PROACTIVE_QUIET_END=8
NOVA_PROACTIVE_DISK_FREE_PERCENT=10
NOVA_PROACTIVE_DISK_FREE_GB=5
NOVA_PROACTIVE_SYSTEM_CHECK_SECONDS=15
NOVA_PROACTIVE_CPU_PERCENT=90
NOVA_PROACTIVE_MEMORY_PERCENT=88
NOVA_PROACTIVE_SYSTEM_CONSECUTIVE_SAMPLES=4
NOVA_PROACTIVE_VISION_CHECK_SECONDS=180
NOVA_PROACTIVE_VISION_MIN_CONFIDENCE=0.78
NOVA_PROACTIVE_STALE_PROCESS_HOURS=4
NOVA_PROACTIVE_REPOSITORY_CHECK_SECONDS=60
NOVA_PROACTIVE_UNCOMMITTED_MINUTES=30
NOVA_PROACTIVE_RESUME_PLAN_MINUTES=15
NOVA_PROACTIVE_WORKFLOW_LOOKBACK_DAYS=14
NOVA_PROACTIVE_WORKFLOW_MIN_REPETITIONS=3
NOVA_PROACTIVE_WEBSITE_CHECK_SECONDS=300
NOVA_PROACTIVE_BACKUP_CHECK_SECONDS=300
NOVA_PROACTIVE_PACKAGE_CHECK_SECONDS=21600
NOVA_PROACTIVE_DISABLED_KINDS=disk_space_low,tests_completedflowchart LR
U["Голос / Desktop UI"] --> I["Intent routing"]
I --> D["Direct Windows actions"]
I --> P["Planner"]
P --> R["Tool registry"]
R --> W["Windows / Files / Git"]
R --> B["Browser"]
R --> M["MCP servers"]
R --> X["Processes"]
X --> C["Checkpoints + proactive events"]
C --> U
nova/
├── apps/
│ └── desktop/ React/TypeScript UI и Tauri Windows shell
├── core/ конфигурация и системные правила
├── modules/
│ ├── agent/ планы, background tasks, proactive engine
│ ├── application/ request pipeline и отчёты
│ ├── audio/ STT и TTS
│ ├── brain/ LLM gateway и model routing
│ ├── browser/ Playwright
│ ├── storage/ SQLite, память, checkpoints, artifacts
│ ├── tools/ registry, runner, policies
│ ├── ui/ PySide6 Desktop UI и overlay
│ └── windows/ процессы, файлы, Git, UIA, OCR
├── tests/
├── main.py
└── roadmap.md
python -m pytest -q
cd apps\desktop
npm test
npm run buildТекущий regression suite: 724 Python-теста + 4 desktop contract tests.
Для проверки именно оркестратора без Groq, сети и реальных действий:
python -m tests.orchestrator_acceptanceGolden-сценарии прогоняют production selector, tool schemas, registry, policy,
runtime validation и события выполнения. Все handlers заменены безопасными
recorders: приложения, файлы, терминал и сайты фактически не затрагиваются.
Новая capability добавляется одной записью в GOLDEN_SCENARIOS внутри
tests/orchestrator_acceptance.py.
Nova активно развивается. Уже работают OS-инструменты, durable background plans, MCP layer, desktop UI, память и безопасная проактивность. Дальше — расширение proactive-сценариев и multi-agent orchestration.
Подробный и честный backlog находится в roadmap.md.
Если вам нужен Windows-агент, которому можно не только задать вопрос, но и передать реальную задачу — попробуйте Nova и расскажите, на каком workflow она должна экономить ваше время следующей.
