Skip to content

KremlevLev/nova

Repository files navigation

⚡ Nova — ваш локальный ИИ-агент для Windows

Голосовой ассистент, инженерный копилот и автоматизатор рабочего стола

Python 3.14 License MIT Tests Groq OpenRouter


🎥 Что умеет Nova

Возможность Пример команды
🎤 Голосовое управление «Открой Obsidian и напиши стих»
🖥️ Управление окнами «Сверни все окна», «Открой блокнот»
📝 Запись в приложения «Напиши заметку в Obsidian»
🐚 Терминал и процессы «Запусти сервер», «Покажи логи»
📁 Файлы и Git «Сделай коммит», «Покажи diff»
🌐 Браузерный агент «Открой сайт и прочитай текст»
🔍 Поиск в интернете «Найди документацию по FastAPI»
Напоминания «Напомни через 10 минут проверить тесты»
🧠 Долговременная память «Запомни, мой любимый редактор — VS Code»
📋 UI Automation «Нажми кнопку ОК в активном окне»
👁️ OCR «Распознай текст на экране»
📊 Desktop UI Полноценное окно управления процессами, памятью и разрешениями
🔄 Отказоустойчивость Автоматический fallback между Groq и OpenRouter
🔒 Безопасность Подтверждение опасных действий, sandbox для кода, запрет записи в системные каталоги

🚀 Быстрый старт

1. Установите Python 3.14

Скачайте с python.org и установите, обязательно отметьте Add to PATH.

2. Клонируйте репозиторий

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 — бесплатные модели, резервный провайдер.

4. Автоматическая установка зависимостей

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 chromium

5. Запустите Nova

python -m main

6. Активируйте голос

Нажмите Ctrl+Shift+Space и скажите:

Открой блокнот и напиши привет


🎮 Горячие клавиши

Клавиша Действие
Ctrl+Shift+Space Включить/выключить голосовой режим
Esc Прервать речь Nova
Ctrl+Shift+Q Прервать речь Nova

📋 Полный список команд

Быстрые команды (без обращения к LLM)

Команда Результат
«Сколько времени?» Текущее время
«Сделай громче» / «Убавь звук» Громкость
«Выключи звук» / «Включи звук» 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» git status
«Покажи diff» git diff
«Покажи историю коммитов» git log
«Сделай коммит с сообщением тест» git commit
«Покажи ветки» git branch

Память

Команда Результат
«Запомни, мой любимый цвет синий» Сохранение
«Какой мой любимый цвет?» Поиск
«Что ты обо мне помнишь?» Список
«Забудь мой любимый цвет» Удаление
«Очисти всю память» Очистка

Напоминания

Команда Результат
«Напомни через 10 минут проверить тесты» Установка
«Какие у меня напоминания?» Список

Браузер

Команда Результат
«Запусти браузер» Запуск Playwright
«Открой сайт example.com» Навигация
«Прочитай текст страницы» Извлечение текста
«Сделай скриншот страницы» Скриншот
«Закрой браузер» Остановка

Планы

Команда Результат
«Выполни план: открой блокнот, затем напиши привет» Многошаговый план
«Запусти в фоне план: открой калькулятор, подожди, закрой» Фоновый план
«Покажи статус фонового плана» Статус
«Отмени фоновый план» Отмена

UI Automation

Команда Результат
«Покажи дерево UI активного окна» Структура элементов
«Найди кнопку с именем ОК» Поиск элемента
«Нажми кнопку с именем ОК» Клик по элементу

OCR

Команда Результат
«Распознай текст на экране» OCR
«Найди на экране слово Отмена» Поиск текста

🖥️ Desktop UI

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 -v

🏗️ Архитектура

nova/
├── 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

📄 Лицензия

MIT


---

About

A deterministic Windows AI agent that doesn't hallucinate actions. Features native UI Automation (no blind clicks), file rollbacks, and strict HITL security.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages