Version 1.2 - Optimized Core
by Rafacuy | @rafardhancuy | MIT License
MyLumina is a Node.js-based Telegram bot that leverages AI, long-term memory (LTM), mood simulation, and various personalized features to deliver natural and engaging conversation experiences.
- Groq-Powered Chat: Lightning-fast AI responses powered by LLaMA/deepseek models
- Web Search + AI Summary: Summarizes Google search results using AI
- AI Vision: Image recognition & OCR text extraction
- Document Reader: Reads/summarizes TXT, PDF, DOCX, CSV, and Markdown files
- Real-Time Weather: Live weather info + personalized weather reminders
- Prayer Times: Auto-scheduled for Asia/Jakarta timezone
- Holiday Tracker: Public holiday info & reminders
- News Digest: Daily summarized news at 8 AM
- Dynamic Mood System: Moods change based on time & interactions (auto-reset)
- DeepTalk Mode: Switches to deep conversations after 9 PM
- Relationship System: Personality evolves with ongoing interactions
- Context Detection: Automatically detects conversation topics
- Voice/Text Reminders: Set reminders via voice or text
- Personal Notes: Secure personal note storage
- Long-Term Memory: Learns from chat history & preferences
- Nightly Sad Songs: Sends calming song recommendations at 10 PM
- Auto Cache Cleanup: Manages memory & storage efficiently
- Dotenv Security: Encrypted API key management
- Structured Logging: Uses Pino for structured system logs
- Error Tracking: Integrated with Sentry for crash reporting
- Node.js 18+
- Telegram Bot API (node-telegram-bot-api)
- LokiJS (embedded database)
- Pino + pino-pretty (logging)
- Sentry SDK
- Cron Jobs (node-schedule)
core/ => Core logic & AI response
modules/ => Weather, mood, TTS, and more
data/ => LokiJS database & memory management
scheduler/ => Cron jobs & automation
handler/ => Command & context handler
utils/ => Helper functions (logger, time, etc)
config/ => Configuration & feature flags
state/ => Global state management- Clone the repo:
git clone https://github.com/Rafacuy/MyLumina.git cd MyLumina - Install dependencies:
npm install
- Add a
.envfile (see.env.examplefor reference) - Run the bot:
node index.js
| Variable | Description |
|---|---|
| TELEGRAM_TOKEN | Telegram Bot Token |
| DSN_KEY | Sentry DSN project key |
| NODE_ENV | production / development |
| TARGET_CHAT_ID | Default chat ID for cron & notifications |
| LATITUDE | Latitude location for Weather API |
| LONGITUDE | Longitude location for Weather API |
| GROQ_API_KEY | Groq API key for AI |
| NEWSAPI | Daily news API |
| OCR_API_KEY | API key for OCR |
| IMAGGA_API | Imagga API key |
| IMAGGA_SECRET | Imagga API secret key |
| WEATHER_API_KEY | OpenWeather API key |
| GOOGLE_SEARCH | Google Search API key |
| GOOGLE_CX_KEY | Google Search CX key |
| CALENDARIFIC_KEY | Calendarific API key |
| PORT | 3000 / 8080 (depending on your setup) |
(See full details in .env.example file)
- Make sure Node.js 18+ and dependencies are installed.
- Set environment variables for API keys and tokens (see
.env.examplefor reference). - Run
node index.jslocally or deploy to Railway / Render / VPS.
Open for PRs & feedback. DM me on Tiktok @rafardhancuy for casual discussions.
MIT License.
Copyright © 2025 Arash