| Возможность | Пример команды |
|---|---|
| 🎤 Голосовое управление | «Открой Obsidian и напиши стих» |
| 🖥️ Управление окнами | «Сверни все окна», «Открой блокнот» |
| 📝 Запись в приложения | «Напиши заметку в Obsidian» |
| 🐚 Терминал и процессы | «Запусти сервер», «Покажи логи» |
| 📁 Файлы и Git | «Сделай коммит», «Покажи diff» |
| 🌐 Браузерный агент | «Открой сайт и прочитай текст» |
| 🔍 Поиск в интернете | «Найди документацию по FastAPI» |
| ⏰ Напоминания | «Напомни через 10 минут проверить тесты» |
| 🧠 Долговременная память | «Запомни, мой любимый редактор — VS Code» |
| 📋 UI Automation | «Нажми кнопку ОК в активном окне» |
| 👁️ OCR | «Распознай текст на экране» |
| 📊 Desktop UI | Полноценное окно управления процессами, памятью и разрешениями |
| 🔄 Отказоустойчивость | Автоматический fallback между Groq и OpenRouter |
| 🔒 Безопасность | Подтверждение опасных действий, sandbox для кода, запрет записи в системные каталоги |
Скачайте с python.org и установите, обязательно отметьте Add to PATH.
git clone https://github.com/ваш-username/nova.git
cd nova
### 3. Настройте API-ключи
Создайте файл `.env` в корне проекта:
```env
GROQ_API_KEYS=gsk_ваш_ключ
OPENROUTER_API_KEYS=sk-or-ваш_ключГде взять ключи:
- Groq: console.groq.com — бесплатно, до 30 запросов в минуту.
- OpenRouter: openrouter.ai — бесплатные модели, резервный провайдер.
python scripts/install_dependencies.pyИли вручную:
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install playwright
python -m playwright install chromiumpython -m mainНажмите Ctrl+Shift+Space и скажите:
Открой блокнот и напиши привет
| Клавиша | Действие |
|---|---|
Ctrl+Shift+Space |
Включить/выключить голосовой режим |
Esc |
Прервать речь Nova |
Ctrl+Shift+Q |
Прервать речь Nova |
Nova поддерживает подключение к внешним MCP (Model Context Protocol) серверам для расширения возможностей:
| Сервер | Описание | Требует токен |
|---|---|---|
| GitHub | Управление репозиториями, issues, PR | GITHUB_TOKEN |
| Filesystem | Работа с файлами | Нет (встроен) |
| SQLite | Запросы к базе данных | MCP_SQLITE_PATH |
| Slack | Интеграция с Slack | SLACK_TOKEN |
| Web Search | Поиск в интернете | Нет (встроен) |
Настройка в .env:
# MCP Servers
GITHUB_TOKEN=ghp_ваш_токен
SLACK_TOKEN=xoxb-ваш_токен
MCP_SQLITE_PATH=nova_memory.dbДоступные инструменты:
mcp_github_*— управление GitHub (issues, PR, репозитории)mcp_filesystem_*— чтение/запись файлов, поискmcp_sqlite_*— SQL запросы, работа с таблицамиmcp_slack_*— каналы, сообщения, пользователиmcp_websearch_*— поиск в интернете
| Команда | Результат |
|---|---|
| «Сколько времени?» | Текущее время |
| «Сделай громче» / «Убавь звук» | Громкость |
| «Выключи звук» / «Включи звук» | Mute |
| «Сверни все окна» | Свернуть окна |
| «Закрой окно» | Закрыть активное окно |
| «Открой блокнот» / «Запусти калькулятор» | Запуск приложения |
| «Закрой блокнот» | Закрытие приложения |
| Команда | Результат |
|---|---|
| «Открой Obsidian и напиши стих» | Запуск + запись |
| «Напиши в блокноте привет» | Ввод текста |
| «Открой блокнот и сделай заметку» | High-level skill |
| Команда | Результат |
|---|---|
| «Создай файл test.txt с текстом привет» | Запись файла |
| «Прочитай файл test.txt» | Чтение файла |
| «Найди все файлы .txt на рабочем столе» | Поиск |
| «Покажи diff файла test.txt» | Diff |
| «Откати файл test.txt» | Rollback из backup |
| Команда | Результат |
|---|---|
| «Запусти терминальную команду echo hello» | Выполнение команды |
| «Запусти фоновый процесс python -m http.server» | Фоновый сервер |
| «Покажи статус процесса» | Статус |
| «Прочитай логи процесса» | Stdout/stderr |
| «Останови процесс» | Остановка |
| «Покажи все процессы» | Список |
| Команда | Результат |
|---|---|
| «Проверь статус Git» | git status |
| «Покажи diff» | git diff |
| «Покажи историю коммитов» | git log |
| «Сделай коммит с сообщением тест» | git commit |
| «Покажи ветки» | git branch |
| Команда | Результат |
|---|---|
| «Запомни, мой любимый цвет синий» | Сохранение |
| «Какой мой любимый цвет?» | Поиск |
| «Что ты обо мне помнишь?» | Список |
| «Забудь мой любимый цвет» | Удаление |
| «Очисти всю память» | Очистка |
| Команда | Результат |
|---|---|
| «Напомни через 10 минут проверить тесты» | Установка |
| «Какие у меня напоминания?» | Список |
| Команда | Результат |
|---|---|
| «Запусти браузер» | Запуск Playwright |
| «Открой сайт example.com» | Навигация |
| «Прочитай текст страницы» | Извлечение текста |
| «Сделай скриншот страницы» | Скриншот |
| «Закрой браузер» | Остановка |
| Команда | Результат |
|---|---|
| «Выполни план: открой блокнот, затем напиши привет» | Многошаговый план |
| «Запусти в фоне план: открой калькулятор, подожди, закрой» | Фоновый план |
| «Покажи статус фонового плана» | Статус |
| «Отмени фоновый план» | Отмена |
| Команда | Результат |
|---|---|
| «Покажи дерево UI активного окна» | Структура элементов |
| «Найди кнопку с именем ОК» | Поиск элемента |
| «Нажми кнопку с именем ОК» | Клик по элементу |
| Команда | Результат |
|---|---|
| «Распознай текст на экране» | OCR |
| «Найди на экране слово Отмена» | Поиск текста |
Nova поставляется с полноценным Desktop UI на PySide6.
Возможности:
- Обзор — текущее состояние Nova
- Процессы — просмотр и остановка фоновых процессов
- Память — просмотр, удаление и очистка долговременной памяти
- Разрешения — подтверждение или запрет опасных операций
- Модели — состояние провайдеров и ключей
- Журнал — лог команд UI
Desktop UI запускается автоматически вместе с Nova. Чтобы отключить:
NOVA_DESKTOP_UI=false# Запустить все тесты (220+ тестов)
python -m pytest -v
# Запустить конкретный тест
python -m pytest tests/test_speech_service.py -v
# Запустить тесты безопасности
python -m pytest tests/test_security_redteam.py -vnova/
├── core/ # Конфигурация, системный промпт
├── modules/
│ ├── agent/ # Планировщик, Executor, Recovery Engine
│ ├── application/ # Агент, речь, отчёты
│ ├── audio/ # STT (Whisper), TTS (Silero)
│ ├── brain/ # LLM, память, роутер моделей, gateway
│ ├── browser/ # Playwright browser agent
│ ├── domain/ # Результаты, состояния, события
│ ├── local/ # Локальный STT/LLM fallback
│ ├── security/ # Sandbox для Python-кода
│ ├── storage/ # SQLite, история, память, артефакты
│ ├── tools/ # Реестр, раннер, политики, навыки
│ ├── ui/ # Desktop UI (PySide6), overlay
│ └── windows/ # Файлы, процессы, Git, UI Automation, OCR
├── data/ # Локальные данные (память, логи, бэкапы)
├── scripts/ # Установщик, сборка
├── tests/ # 220+ тестов
├── main.py # Точка входа
└── .env.example # Пример конфигурации
Далее модули будут дополняться
pip install pyinstaller
python scripts/build_installer.pyИсполняемый файл: dist/Nova.exe
Pull Request'ы приветствуются. Пожалуйста, убедитесь, что тесты проходят:
python -m pytest -v