# Voice command reference Все голосовые команды J.A.R.V.I.S. (текущее состояние, **98 паков**). Каждая команда — это фраза, которую можно произнести после wake-word ("Джарвис"). > Языки: **RU + EN** (украинский поддерживался до 2026-05-16, в текущей версии удалён). Группы: - [Управление ассистентом](#управление-ассистентом) - [LLM / мозг](#llm--мозг) - [Память / профили / macros](#память--профили--macros) - [Расписание / напоминания / привычки](#расписание--напоминания--привычки) - [Окна / приложения / процессы](#окна--приложения--процессы) - [Аудио / медиа](#аудио--медиа) - [Система / устройство](#система--устройство) - [Файлы / буфер / заметки](#файлы--буфер--заметки) - [Информация из интернета](#информация-из-интернета) - [Утилиты-калькуляторы](#утилиты-калькуляторы) - [Разработка](#разработка) - [Развлечения](#развлечения) - [Скриншоты / экран](#скриншоты--экран) После каждой команды есть **30-секундное grace-окно** для follow-up без повторного "Джарвис". Конфигурируется через `CONVERSATION_GRACE_MS`. --- ## Управление ассистентом | Команда (RU) | Что делает | |---|---| | "Помощь" / "что ты умеешь" | Перечисляет категории возможностей | | "Расскажи о себе" / "кто ты такой" | Краткое представление (LLM варьирует) | | "Сколько команд знаешь" | Health snapshot — все активные бэкенды + счётчики | | "Диагностика" / "доложи о себе" | Одной строкой: TTS, LLM, профиль, памяти/задач | | "Повтори за мной X" | Эхо — для теста микрофона + TTS | | "Что я сказал" | Что услышал из последней фразы | | "Стоп" / "хватит" / "прекрати" | Прерывает текущую команду | | "Сбрось контекст" / "забудь разговор" | Очищает историю LLM | | "Повтори последнее" / "повтори ответ" | Озвучивает последний ответ LLM | ## LLM / мозг | Команда | Что делает | |---|---| | "Переключись на локальный" / "перейди на оллама" | Hot-swap на Ollama (persistent в БД) | | "Переключись на облако" / "используй грок" | Hot-swap на Groq | | "Какой у тебя мозг" / "облако или локально" | Текущий backend | Любая фраза без распознанной команды → LLM router (если включён) → если нет матча → LLM chat fallback. ## Память / профили / macros | Команда | Что делает | |---|---| | "Запомни что я люблю чай улун" | Сохраняет факт | | "Что ты помнишь про чай" | Substring-поиск по памяти | | "Что ты знаешь обо мне" | Все факты | | "Забудь про X" | Удалить факт | | "Режим работа" / "режим игра" / "режим сон" / "режим за рулём" / "обычный режим" | Профиль (5 встроенных) | | "Какой сейчас режим" | Активный профиль | | "Запиши макрос имя" | Начать запись макроса | | "Сохрани макрос" | Завершить запись и сохранить | | "Отмени макрос" | Отменить запись | | "Запусти макрос имя" | Воспроизвести (с интервалом 800мс) | | "Какие у меня макросы" / "удали макрос имя" | Управление списком | Также: GUI страницы `/memory` (добавить/забыть факты), `/macros` (запуск/удаление), `/scheduler` (отмена задач). ## Расписание / напоминания / привычки | Команда | Что делает | |---|---| | "Напомни через 5 минут выключить кофеварку" | One-shot reminder | | "Напомни в 18:00 забрать ребёнка" | Today at HH:MM | | "Каждые 2 часа напоминай попить воды" | Interval | | "Каждый день в 9:00 делай брифинг" | Daily | | "Что у меня запланировано" / "очисти расписание" | Управление | | "Отмени напоминание про воду" | Substring-match remove | | "Запусти помодоро" / "стоп помодоро" | 25/5 циклы | | "Напоминай мне пить воду" | Каждые 2 часа | | "Напоминай размяться" | Каждые 50 минут | | "Напоминай отдыхать глазам" | 20-20-20 (каждые 20 мин) | | "Отключи все привычки" | Стоп всех habit_nudge задач | | "Настрой утренний брифинг на 9:00" | Daily briefing в указанное время | | "Утренний брифинг" | Запустить брифинг сейчас | | "Отключи утренний брифинг" | Снять daily задачу | ## Окна / приложения / процессы | Команда | Что делает | |---|---| | "Открой Telegram" / "запусти Steam" / "Spotify" | Через `apps/` пак (имя в config) | | "Закрой Telegram" / "убей процесс X" | Process kill | | "Сверни всё" / "разверни окно" / "переключи окно" | Window manager | | "Какие открыты окна" | Список Z-order | | "Сверни активное" / "максимизируй" | Action на foreground | | "Открой папку загрузок" / "файлы" / "проводник" | Explorer | ## Аудио / медиа | Команда | Что делает | |---|---| | "Громче" / "тише" / "громкость на 30" | Volume up/down/set | | "Заглуши" / "сними заглушку" | Mute toggle | | "Какая громкость" | Текущий уровень | | "Открой панель звука" | Sound panel | | "Включи Realtek" / "переключи звук на Headphones" | Output device swap | | "Пауза" / "плей" / "следующий трек" / "предыдущий трек" / "стоп музыка" | Media keys — Spotify / YouTube / Foobar / Yandex Music | | "Запиши голосовую заметку" | (см. notes/) | | "Выключи музыку через 30 минут" | Sleep timer для медиа | ## Система / устройство | Команда | Что делает | |---|---| | "Сколько процессор грузится" / "сколько RAM" / "температура" | Sysinfo | | "Сколько заряда" / "заряд батареи" | Battery % | | "Сколько свободно на диске" / "сколько на диске C" | PowerShell Get-PSDrive | | "Какие у меня диски" | C: D: E: со свободным местом | | "Какая сеть" / "какой WiFi" | Net SSID via netsh | | "Мой IP" / "локальный IP" | Get-NetIPAddress | | "Внешний IP" | api.ipify.org | | "Прибавь яркость" / "тусклее" / "яркость 70" | Brightness via WMI | | "Тёмная тема" / "светлая тема" | Windows theme | | "Заблокируй компьютер" | LockWorkStation | | "Выключи компьютер" / "перезагрузи" / "ребутни" / "сон" / "гибернация" / "выйди из системы" / "отмени выключение" | Power management | | "Выключи компьютер через 30 минут" | Sleep timer для системы | | "Отмени таймер выключения" | shutdown /a + scheduler clear | ## Файлы / буфер / заметки | Команда | Что делает | |---|---| | "Найди файл report" / "поищи documents" | File search | | "Запиши заметку купить хлеб" | Append в notes file | | "Покажи заметки" / "что я записал" | Открывает notes | | "Прочитай буфер" / "что в буфере" | Clipboard contents speak | | "Переведи буфер на английский" | LLM перевод + replace clipboard | ## Информация из интернета | Команда | Что делает | |---|---| | "Какая погода" / "погода завтра" / "что с погодой" | Weather pack | | "Курс доллара" / "курс юаня" | CBR rates | | "Сколько 1000 долларов в рублях" | Currency convert | | "Сколько Сбер" / "сколько Газпром" | MOEX котировки (22 тикера) | | "Сколько биткоин" / "сколько эфир" | Crypto | | "Новости" / "что нового в мире" | News RSS | | "Найди в гугле X" / "загугли X" | DuckDuckGo Instant + LLM | | "Википедия X" / "что такое X" / "кто такой Y" | Wikipedia REST | | "Открыть Google поиск X" | Websearch (open browser) | | "Переведи на английский X" | Translate | ## Утилиты-калькуляторы | Команда | Что делает | |---|---| | "Посчитай 2 плюс 2" / "сколько будет 10 в степени 3" | Math | | "Переведи 100 метров в футы" | Length convert | | "70 кг в фунты" | Weight convert | | "100 цельсий в фаренгейт" | Temperature convert | | "100 км в час в мили в час" | Speed convert | | "Сколько дней до нового года" | Date math (8 марта, 9 мая, Рождество, Новый год + любая дата) | | "Какой сегодня день недели" | Zeller's congruence | | "Время" / "сколько времени" / "какое сегодня число" | Date query | | "Подбрось монету" / "орёл или решка" | Coin flip | | "Сгенерируй пароль 16 символов" | Secure password → clipboard | | "Сгенерируй UUID" | v4 UUID → clipboard | | "Брось кубик" / "брось два кубика" | Dice | | "Выбери случайно из X или Y или Z" | Random choice | | "Запусти секундомер" / "сколько прошло" / "стоп секундомер" | Stopwatch | | "Прибавь счётчик" / "сколько на счётчике" / "сбрось счётчик" | Counter | | "Как пишется X" | Spelling | ## Разработка | Команда | Что делает | |---|---| | "Укажи проект C:\..." | Codebase Q&A: установить root | | "Какой проект сейчас" | Текущий root | | "Что делает функция X" / "найди в коде Y" / "объясни код" | Walks codebase → LLM | | "Текущий репо owner/repo" | GitHub: установить repo | | "Какие пиары" / "открытые пиары" | List PRs via gh CLI | | "Разбери последний пиар" | LLM-ревью PR (gh pr view) | | "Сгенерируй код для X" | Code generation pack | | "Открой Cursor" / "VS Code" | apps/ | ## Развлечения | Команда | Что делает | |---|---| | "Расскажи анекдот" / "пошути" / "скажи фразу" / "тостер" | Fun pack (jokes) | | "Запиши настроение 7" / "сегодня мне грустно" | Mood log | | "Как прошла неделя" / "сводка настроения" | Mood recap via LLM | | "Запусти Steam игру X" / "поиграй в Y" | Games pack | ## Скриншоты / экран | Команда | Что делает | |---|---| | "Что на экране" / "опиши экран" | Vision LLM описание | | "Прочитай ошибку" | Vision LLM: ищет stack trace, объясняет | | "Сделай скриншот" / "скрин в буфер" | Screenshot → clipboard | | "Сохрани скриншот" | Screenshot → ~/Pictures/Screenshots/ | | "OCR экрана" / "прочитай текст" | OCR (existing pack) | | "Суммаризируй экран" | Summarize visible window | --- ## Wave 4-8 (новое — личность, рутины, режимы) | Команда | Что делает | |---|---| | **Личность / banter** | | | "Привет Джарвис" / "Доброе утро" | Время-чувствительные ответы из ~30 вариантов | | "Спасибо" / "Ты молодец" | Варьирующиеся «батлерские» ответы | | "Как дела Джарвис" | Включает живые цифры из памяти + профиля | | "Процитируй Тони" | Случайная цитата Stark/JARVIS (15+ вариантов) | | "Скажи что-нибудь интересное" / "Скучно мне" | Принудительная idle-banter реплика | | "Помолчи" / "Можешь говорить" | Pause/resume фонового banter | | **Память / разговор** | | | "О чём мы говорили" | LLM-сжатие последних ~12 реплик | | "Повтори" / "Не расслышал" | Перепроизнести последний ответ | | "Сколько фактов помнишь" | Размер долговременной памяти | | "Покажи что помнишь" | Список ключей в памяти | | "Точно забудь всё" | Полное стирание памяти (с защитой) | | **Режимы и рутины** | | | "Режим фокуса" / "Focus mode" | Профиль work + Focus Assist + стретч через 50 мин | | "Выключи фокус" | Откат | | "Спокойной ночи" | Профиль sleep + отмена одноразовых таймеров | | "Доброе утро" | Профиль default + обзор расписания | | "Иду за кофе" / "Coffee break" | Пауза banter + чек-ин через 5 минут | | **Утилиты / новые** | | | "Сколько будет 234 на 567" | Offline-парсер (без LLM, instant) | | "Что такое квантовая запутанность" | DDG Instant Answer (без ключа) | | "Переведи буфер на немецкий" | Translate clipboard с озвучкой в немецком SAPI voice | | "Поставь чайник" / "Варю пасту" | Cooking timer с пресетами на 16+ блюд | | "На чём я остановился" | Recap из памяти + расписания + последнего LLM-ответа | | "Расскажи про железного человека" | Случайный MCU-факт | | "Разбуди сервер" / "Wake on LAN" | Magic packet на MAC из памяти (`wol_server`) | | **Outlook (требует Outlook)** | | | "Сколько у меня непрочитанных писем" | Outlook COM → счётчик inbox | | "Прочитай последнее письмо" | From + Subject + 200 chars body | | "Отправь письмо [Имя]" | Body = clipboard, через GAL lookup | | "Коротко расскажи про инбокс" | LLM-сводка последних 5 unread | | **Time tracker** | | | "Начни отсчёт" / "Закончи отсчёт" | Сессия учёта рабочего времени | | "Сколько я работаю сегодня" | Сумма открытых + закрытых сессий за календарный день | | "Сколько на этой неделе" | Сумма за последние 7 дней | | "Сбрось трекер" | Стереть сегодняшние записи | | **Кастомное wake-word** | | | GUI → /wake-trainer | Мастер: запись 5–30 сэмплов → rustpotter .rpw | | **Плагины** | | | GUI → /plugins | Toggle/Open Folder для `%APPDATA%/com.priler.jarvis/plugins/` | ## Как добавить свою команду Скопируй `resources/commands/echo/` как шаблон, отредактируй `command.toml` (id, phrases) и `*.lua` (логика). Рекомендуемая структура — см. [ARCHITECTURE.md → Recommended pack structure](ARCHITECTURE.md#recommended-pack-structure). Минимум: ```lua -- thing.lua local phrase = (jarvis.context.phrase or ""):lower() local body = jarvis.text.strip_trigger(phrase, { "сделай штуку" }) body = body:gsub("^[%s,:%.]+", ""):gsub("%s+$", "") if body == "" then return jarvis.cmd.error("Что именно?") end -- ... do work ... return jarvis.cmd.ok("Готово.") ``` Затем `cargo test -p jarvis-core --lib commands::tests` — он автоматически проверит что TOML парсится и Lua-скрипт существует. ## Голосовое vs GUI GUI страницы — для случаев когда голосом неудобно: - `/commands` — все 67 паков с поиском (для discovery) - `/macros` — список с кнопкой "Запустить" - `/scheduler` — задачи с auto-poll каждые 5 сек - `/memory` — добавление/удаление фактов с фильтром - `/settings → AI Backends` — переключение LLM/TTS через dropdown ## Что-то не работает? 1. **Голос не распознаётся** — проверь микрофон в Settings → Devices. Скажи "повтори за мной привет" — если эхо проходит, проблема не в STT. 2. **Не слышу ответ** — проверь TTS backend в Settings → AI Backends. Скажи "проверка эхо" — должен быть слышен голос. Если нет, проверь динамики + попробуй `JARVIS_TTS=sapi`. 3. **"Не могу связаться с сервером"** — LLM unreachable. Если Groq — проверь GROQ_TOKEN и интернет. Если Ollama — `ollama serve` запущен? 4. **Команда не найдена** — посмотри `/commands` в GUI, поищи фразу. Если фразы похожи но не та — agentic router сделает попытку, или подскажет. 5. **Что-то странное в логах** — `/jarvis.log` (путь видно в первых строках `jarvis-app` stdout).