НеНойBot — локальный каркас AI-тренера по дисциплине, фокусу и результату.
На первом этапе проект работает как простой CLI и Telegram long polling worker. В онлайн-режиме бот может использовать OpenAI Responses API для живого разбора и Neon/Postgres для памяти по пользователям.
НеНойBot помогает пользователю:
- удерживать цель;
- возвращаться к ближайшему действию;
- пресекать прокрастинацию;
- дробить задачи до шага на 5-20 минут;
- фиксировать срок и отчет;
- не превращать сложность в бесконечное нытье.
nenoybot/
README.md
.gitignore
.env.example
requirements.txt
prompts/
system_prompt.md
state_classifier.md
combat_dictionary.md
reaction_scenarios.md
response_algorithm.md
docs/
architecture.md
usage.md
roadmap.md
examples/
examples.md
user_dialogues.md
test_cases.md
app/
main.py
telegram_bot.py
config.py
openai_client.py
memory_store.py
prompt_loader.py
nenoy_engine.py
tests/
test_prompt_loader.py
test_nenoy_engine.py
cd /Users/tony/Projects/codex-workspace/nenoybot
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app/main.pyДля выхода из CLI:
/exit
Для смены цели внутри CLI:
/goal Закончить черновик сегодня до 18:00
pytestМинимальная проверка без установки зависимостей:
python3 -m py_compile app/*.py
printf 'Закончить README сегодня\nпотом сделаю\n/exit\n' python3 app/main.py- В Telegram открыть
@BotFather. - Выполнить
/newbotи сохранить токен. - Добавить токен в
.envили переменные окружения хостинга:
TELEGRAM_BOT_TOKEN=123456:token
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-5.5
DATABASE_URL=postgresql://...
- Запустить worker:
python -m app.telegram_botКоманды в Telegram:
/start
/goal Запустить проект сегодня до 20:00
/clear_goal
Также бот показывает обычные кнопки:
🎯 Задать цель
✅ Отчёт
🔥 Пинок
📌 Меню
🧹 Сбросить цель
Для цели и отчёта команды не нужны: нажми кнопку и следующим сообщением напиши текст.
Напоминания работают из обычного текста. Если написать срок:
Сегодня в 19:00 проверю API в Make
Завтра до 12:00 отправлю отчёт
Через 30 минут вернусь с результатом
бот сохранит напоминание и сам придёт за отчётом в указанное время. Часовой пояс задаётся переменной NENOYBOT_TIMEZONE, интервал проверки — NENOYBOT_REMINDER_CHECK_INTERVAL.
Для облачного запуска используй start command:
python -m app.telegram_botДля Railway start command уже зафиксирован в railway.json. После изменения переменных окружения достаточно сделать redeploy.
Если OPENAI_API_KEY не задан, бот отвечает локальным keyword-based движком. Если DATABASE_URL не задан, цель и история живут только в памяти процесса до перезапуска.
- системный промпт НеНойBot;
- классификатор состояний;
- боевой словарь;
- сценарии реакций;
- алгоритм ответа;
- эталонные диалоги;
- загрузчик markdown-промптов;
- простой keyword-based движок;
- GPT-разбор через OpenAI Responses API;
- память через Neon/Postgres;
- локальный CLI-запуск;
- Telegram long polling worker;
- базовые тесты.
- Проверить стиль ответов на реальных диалогах.
- Подключить LLM API отдельным слоем, не ломая локальный движок.
- Добавить постоянное хранилище целей и истории отчётов.
Проект ведётся по process-цепочке: Brain Storm → Architecture → Issue → PR → Report → Review → Merge → Next.
- Для планирования и выполнения используются шаблоны в
docs/process/и.github/ISSUE_TEMPLATE/*. - Roadmap:
docs/roadmap.md. - В процессе обязательны этапы DoD: Код, Тесты, Отчёт, Code Review, Обновлён roadmap.