Фоновый демон для Windows, который следит за твоей активностью, анализирует её локально через AI и даёт пинок, если ты залип в соцсетях или забыл сделать перерыв.
Никакого облака. Никакой телеметрии. Всё работает локально.
Каждые 15 сек Каждые 15 мин
│ │
▼ ▼
Смотрим, какое Берём логи за 15 мин
окно активно │
│ ▼
▼ Отправляем в Ollama
Пишем в SQLite (локальная AI-модель)
(activity.db) │
ответ = "SKIP"?
│ │
ДА НЕТ
│ │
тихо 🔔 Уведомление
Windows
Всё хранится локально в файле activity.db. Логи старше 24 часов удаляются автоматически.
| Компонент | Версия |
|---|---|
| Node.js | v18 или выше |
| npm | v8 или выше |
| OS | Windows 10 / 11 |
| Ollama | последняя |
| RAM для модели | ~4 GB свободно |
Ollama — это локальный сервер для запуска AI-моделей. Работает полностью офлайн, данные никуда не уходят.
Перейди на официальный сайт и скачай установщик для Windows:
https://ollama.com/download/windows
Запусти .exe и следуй инструкции установщика. После установки Ollama появится в системном трее.
Открой PowerShell или CMD и выполни:
ollama pull qwen3:4bМодель весит около 2.6 GB. Скачается один раз, дальше всё работает офлайн.
Чтобы убедиться, что модель скачалась:
ollama listДолжна быть строчка с qwen3:4b.
ollama serveСервер поднимется на http://127.0.0.1:11434. Оставь это окно открытым (или настрой автозапуск — см. раздел ниже).
Проверь, что всё работает:
curl http://127.0.0.1:11434
# Должен вернуть: Ollama is runningВажно: Ollama должна быть запущена до старта демона. Если она не работает — демон не крашится, просто пишет ошибку в консоль и продолжает трекинг.
git clone https://github.com/ВАШ_НИК/proactive-assistant.git
cd proactive-assistantnpm installnpm скачает три пакета: sqlite3, active-win, node-notifier.
node index.jsВ консоли появится:
🤖 Proactive Assistant запущен
Трекинг: каждые 15 сек
Анализ: каждые 15 мин
Модель: qwen3:4b
Нажми Ctrl+C для остановки
Первое уведомление (если есть что сказать) придёт через 15 минут — модели нужно накопить данные для анализа.
Чтобы демон и Ollama запускались сами при старте Windows — используй pm2.
npm install -g pm2
npm install -g pm2-windows-startup# Перейди в папку проекта
cd proactive-assistant
# Добавь процесс
pm2 start index.js --name "proactive-assistant"
# Сохрани список процессов
pm2 save
# Настрой автозапуск при входе в Windows
pm2-startup installpm2 list # список процессов
pm2 logs proactive-assistant # смотреть логи в реальном времени
pm2 stop proactive-assistant # остановить
pm2 restart proactive-assistant # перезапустить
pm2 delete proactive-assistant # удалить из pm2Чтобы Ollama тоже стартовала автоматически:
- Открой Планировщик задач (Task Scheduler) —
Win + R→taskschd.msc - Создать задачу → вкладка Общие → дай имя
OllamaServe - Триггер: При входе в систему
- Действие: Запустить программу
- Программа:
C:\Users\ВАШ_НИК\AppData\Local\Programs\Ollama\ollama.exe - Аргументы:
serve
- Программа:
- Галочка Не запускать, если уже запущена
- Сохрани
Все параметры находятся в объекте CONFIG в начале файла index.js:
const CONFIG = {
OLLAMA_URL: "http://127.0.0.1:11434/api/generate",
OLLAMA_MODEL: "qwen3:4b",
TRACK_INTERVAL_MS: 15_000, // интервал трекинга
ANALYZE_INTERVAL_MS: 15 * 60_000, // интервал анализа
LOG_TTL_HOURS: 24, // сколько хранить логи
ANALYZE_WINDOW_MINUTES: 15, // за какой период анализировать
APP_NAME: "Proactive Assistant",
};| Параметр | По умолчанию | Описание |
|---|---|---|
OLLAMA_MODEL |
qwen3:4b |
Модель Ollama. Можно поменять на llama3:8b, mistral, gemma3:4b и т.д. Чем больше модель — тем умнее советы, но дольше ответ |
TRACK_INTERVAL_MS |
15000 (15 сек) |
Как часто писать в БД. Уменьши до 5000 для точности, увеличь до 30000 для экономии ресурсов |
ANALYZE_INTERVAL_MS |
900000 (15 мин) |
Как часто спрашивать AI. Можно поставить 10 * 60_000 (10 мин) если хочешь чаще |
LOG_TTL_HOURS |
24 |
Сколько часов хранить историю. 48 — двое суток, 168 — неделя |
ANALYZE_WINDOW_MINUTES |
15 |
За какой последний период анализировать. Совпадает с ANALYZE_INTERVAL_MS — логично |
APP_NAME |
Proactive Assistant |
Имя в уведомлениях Windows |
# Скачай другую модель
ollama pull llama3.2:3b # быстрее, легче
ollama pull gemma3:4b # хорошая альтернатива
# В index.js поменяй строку:
OLLAMA_MODEL: "llama3.2:3b",Промпт живёт в константе SYSTEM_PROMPT (сразу после CONFIG). Это многострочная строка — просто отредактируй её:
const SYSTEM_PROMPT = `Ты — [твоё описание персонажа].
...
Если всё ок — ответь СТРОГО одним словом: SKIP
Если нужен пинок — [твои правила для уведомлений]`;Важно: Правило про
SKIPменять не нужно — на нём завязана вся логика фильтрации. Остальное — полностью на твой вкус.
proactive-assistant/
├── index.js # весь код демона
├── activity.db # SQLite база (создаётся автоматически при первом запуске)
├── package.json
├── package-lock.json
└── README.md
activity.dbсоздаётся автоматически — коммитить её в git не нужно. Убедись, что она есть в.gitignore.
Создай файл .gitignore в корне проекта:
node_modules/
activity.db
Error: ECONNREFUSED в консоли
Ollama не запущена. Выполни
ollama serveи оставь окно открытым.
Уведомления не приходят
Проверь настройки уведомлений Windows:
Параметры → Система → Уведомления. Убедись, что уведомления включены глобально.
Cannot find package 'active-win'
Убедись, что в
package.jsonесть"type": "module". Active-win — ESM-only пакет.
Модель отвечает слишком долго
Попробуй более лёгкую модель:
ollama pull qwen3:1.7bи поменяйOLLAMA_MODELв конфиге.
sqlite3 не устанавливается (ошибка компиляции)
Установи Python и Visual Studio Build Tools:
npm install --global windows-build-toolsИли скачай напрямую: https://visualstudio.microsoft.com/visual-cpp-build-tools/
MIT — делай что хочешь.