1.5 KiB
1.5 KiB
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
- Copy the environment file:
cp .env.example .env
- Edit
.envand add:
TELEGRAM_BOT_TOKEN=...
GEMINI_API_KEY=...
OPENROUTER_API_KEY=...
Gemini is the primary provider. OpenRouter is optional, but useful as fallback.
Get keys from:
https://aistudio.google.com/app/apikey
https://openrouter.ai/keys
- Define the bot personality in
personality.md.
Example:
You are Marvin, a funny, slightly sarcastic assistant. Keep replies short and playful.
Optional settings in .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_MESSAGESchat messages - all long-term memories for the current Telegram chat
Recent chat history commands:
/forget
Long-term memory commands:
/remember location = Zagreb
/memories
/forget_memory location
/forget_memories
Images
Generate and send an image using Pollinations:
/image a sad robot drinking coffee in Zagreb, noir style
- Start the bot:
npm start
Then open Telegram and message your bot.