# Marvin Telegram Bot Simple Telegram bot server that sends your Telegram messages to Gemini and replies back. OpenRouter can be configured as a fallback. Recent conversation memory is stored persistently in SQLite. ## Setup 1. Copy the environment file: ```bash cp .env.example .env ``` 2. Edit `.env` and add: ```env TELEGRAM_BOT_TOKEN=... GEMINI_API_KEY=... OPENROUTER_API_KEY=... ``` Gemini is the primary provider. OpenRouter is optional, but useful as fallback. Get keys from: ```text https://aistudio.google.com/app/apikey https://openrouter.ai/keys ``` 3. Define the bot personality in `personality.md`. Example: ```text You are Marvin, a funny, slightly sarcastic assistant. Keep replies short and playful. ``` Optional settings in `.env`: ```env GEMINI_MODEL=gemini-2.5-flash-lite OPENROUTER_MODEL=openrouter/free PERSONALITY_FILE=personality.md MEMORY_DB=marvin.sqlite MAX_HISTORY_MESSAGES=20 ``` ## Memory Marvin stores chat messages and long-term memories in SQLite at `marvin.sqlite` by default. The AI receives: - the most recent `MAX_HISTORY_MESSAGES` chat messages - all long-term memories for the current Telegram chat Recent chat history commands: ```text /forget ``` Long-term memory commands: ```text /remember location = Zagreb /memories /forget_memory location /forget_memories ``` 4. Start the bot: ```bash npm start ``` Then open Telegram and message your bot.