Об этом проекте

## Что это Snoop — инструмент с открытым исходным кодом для записи активности клавиатуры и мыши на десктопе, позиционируется как «локально ориентированный»: все данные пишутся в локальный файл SQLite, README прямо указывает, что ничего не отправляется в сеть. Поддерживает Windows 10/11 и macOS 10.15+, бренд принадлежит Feedra, талисман — кот. Инструмент отвечает на вопросы: какие приложения занимают больше всего времени, когда в течение дня наибольшая активность, как выглядит кривая интенсивности работы с клавиатурой и мышью, насколько фактическая картина расходится с субъективными ощущениями. ## Границы конфиденциальности (прямо заявлено в README) Записывается только частота и интенсивность использования клавиатуры и мыши; НЕ записывается: - Конкретная последовательность нажатых клавиш (пароли, сообщения, поисковые запросы не фиксируются) - Буфер обмена, скриншоты, микрофон, камера - Любой контент, требующий загрузки в сеть В базе данныхgranularity составляет: «какO приложения за интервал в 5 секунд было нажато N клавиш и мышь передвинута на K пикселей». Тепловая карта клавиатуры строится по подсчёту нажатий каждой клавиши; по словам авторов, восстановить ввод по ней невозможно. ## Основные модули - **Обзор / Сегодняшний снимок**: карточки текущего состояния приложений и уровней интенсивности, дневная сводка, рейтинг приложений по времени, тепловая полоса интенсивности за 24 часа. - **Таймлайн**: гantt-диаграмма типа «泳道», каждое приложение — отдельная строка, по горизонтали — время, цвет блока фиксирован за приложением; масштабирование колесом, перетаскивание, переключение дат; пустые интервалы свыше 2 часов сжимаются в серые блоки. - **Тепловая карта клавиатуры**: рендеринг по реальной раскладке, переключение между раскладами 40/60/68/87/98/104; фильтрация по приложению и периоду; три блока — клавиатура, мышь, топ-клавиши — взаимосвязаны; окраска использует квантили, чтобы высокие клавиши (например Enter) не затемняли остальные. - **Аналитика / Межнедельный отчёт**: столбчатая диаграмма трендов за неделю, рейтинг приложений с ростом/снижением, тепловая сетка作息 7×24. - **Прочее**:常驻 в трее, автозапуск (можно отключить), светлая и тёмная темы, список игнорируемых приложений, переключатель «кот-комментарии» и настройка его едкости, экспорт и очистка данных одной кнопкой. ## Установка и запуск Скачайте подходящий пакет на странице Releases: - Windows: `Snoop_x.y.z_x64-setup.exe`; при блокировке SmartScreen — «Дополнительно → Всё равно запустить». - macOS Apple Silicon: `Snoop_x.y.z_aarch64.dmg`; macOS Intel: `Snoop_x.y.z_x64.dmg`. - При первом запуске на macOS потребуется разрешение в «Системные настройки → Безопасность и конфиденциальность → Специальные возможности» для глобального перехвата клавиатуры и мыши; Gatekeeper можно обойти, открыв файл правой кнопкой мыши. Встроенное автообновление: на Windows — фоновая загрузка с предложением «Перезапустить для установки» в трее; на macOS — предложение открыть страницу загрузки для ручной установки поверх текущей версии. ## Реализация и производительность Стек: Tauri 2 + React 19 + TypeScript + Vite (фронтенд), Rust как бэкенд, rusqlite для хранения, rdev / Raw Input для сбора событий. Платформозависимый код изолирован через `#[cfg]`. Тема реализована через кастомные компоненты и CSS-переменные с семантическим разделением светлой и тёмной тем. По словам авторов, глобальный перехват идёт через нативные каналы ОС (Windows — Raw Input, macOS — низкоуровневый event channel); колбэки оперируют только счётчиками в памяти, каждые 5 секунд происходит пакетная запись в базу; типичное потребление CPU — менее 1%. Версия для Windows намеренно не использует low-level hook, чтобы не конфликтовать с античитамя EAC, Vanguard и подобными. Snoop не инжектирует DLL, не читает память других процессов, не посылает эмуляцию ввода. Путь к данным: Windows — `%APPDATA%\org.feedra.snoop\`, macOS — `~/Library/Application Support/org.feedra.snoop/`. ## Сборка из исходников Требуются Node 22+, стабильный Rust и цепочка инструментов платформы. README предупреждает: Vite 7 требует Node 20.19+/22.12+, использование Node 18 вызывает `crypto.hash is not a function` и не позволяет запустить dev-сервер. ```bash npm ci npm run tauri dev # режим разработки npm run tauri build # создание установочного пакета ``` Для Windows нужны Visual Studio Build Tools (рабочая нагрузка C++ desktop development), для macOS — Xcode Command Line Tools. Подробный процесс упаковки и публикации см. в `docs/打包与发布.md` внутри репозитория. ## Известные ограничения и лицензия Linux пока не поддерживается — в README это указано как отсутствие цели для текущих релизов. Синхронизация с телефоном или облаком не предусмотрена; автор описывает это как осознанный выбор. Бренд и авторские права принадлежат Feedra (© 2026). Код открыт, но README просит не использовать бренд «Snoop» и талисман в аналогичных продуктах. Официальные условия лицензии ещё не утверждены, файл `LICENSE` ожидается.