Minerva is a self-hosted AI assistant that lives in Telegram. It makes phone calls, sends emails, dispatches coding tasks to remote agents, tracks your nutrition, manages credentials with TOTP, schedules recurring tasks, integrates with Linear & OpenProject, deploys your servers — and remembers everything about you.
Every feature Minerva offers — from AI chat to phone calls to encrypted credentials. All in one self-hosted binary.
Conversational AI via Telegram with persistent history, photo analysis, document processing, and voice message transcription via Groq Whisper. Supports conversation management with /new, /history, and custom system prompts.
Real-time voice AI powered by Cartesia. Minerva makes phone calls on your behalf — restaurant reservations, appointments, inquiries. Calls are summarized and sent as Telegram notifications. Also supports an Android phone bridge for calling through your real phone.
Connect Claude Code instances from any machine via WebSocket. Dispatch coding tasks, stream output in real-time, update running tasks, and get automatic stale-task alerts. List agents, their projects, and active tasks.
Send emails via Resend with admin approval workflow — the AI drafts messages and you approve/reject via Telegram buttons before they're sent. Incoming emails are routed through Svix-signed webhooks.
Minerva remembers facts about you across conversations — preferences, ongoing projects, important details. Fully AI-managed with get, set, and search operations. Stored in SQLite with a 2000-character budget.
Schedule one-off or recurring tasks (daily, weekly, monthly). Simple reminders go to the AI brain for Telegram notification; agent tasks are dispatched to remote Claude Code instances for autonomous execution.
AES-256-GCM encrypted password vault with TOTP code generation (RFC 6238). Store usernames, passwords, and 2FA secrets. Retrieve live TOTP codes via chat or CLI. Encryption key derived from your bot token via SHA-256.
Track calories and macros (protein, carbs, fat) per meal. The AI auto-detects when you mention food or send a photo, estimates nutrition, and logs it. View daily, weekly, or monthly stats. Supports breakfast, lunch, dinner, and snack types.
Integrated with OpenProject (REST API) and Linear (via MCP). Create tasks, track issues, list projects, update statuses, manage sprints — all from Telegram or the CLI.
Send messages and files to yourself via Telegram from any script or agent. Supports images (sent as photos), documents, and captioned attachments. Useful for notifications, reports, and automated alerts.
Deploy the server to your VPS with a single command. Cross-compiles for Linux, uploads the binary, restarts the service, runs a health check, and automatically rolls back if the new version fails.
Execute JavaScript in a sandboxed Goja runtime. The AI brain can run small code snippets on-the-fly to calculate, transform data, or solve problems — without spawning external processes.
Every minerva subcommand available. The CLI talks to the same SQLite database and Telegram API as the bot.
memory get Get all stored memorymemory get [key] Search memory by keywordmemory set "..." Update memory contentsend "msg" Send Telegram message to adminfile send <path> Send file via Telegramsend-file <path> Send file (shorthand)context Get recent conversation historyemail send <to> Send email with --subject and --bodycall <number> "purpose" AI call via Telnyxphone list List connected Android phonesphone call <number> "purpose" Call via Android bridgeagent list List agents, projects & active tasksagent run <name> "prompt" Dispatch task to agentagent output <id> Get partial output of running taskagent update <id> "prompt" Stop & restart task with new promptschedule create "task" --at "time" Schedule task (one-off or recurring)schedule list List active scheduled tasksschedule delete <id> Delete a scheduled taskschedule run <id> Manually trigger a task nowmeal add "desc" Log meal with optional --calories --protein --carbs --fatmeal list List meals (--today, --week, --month, --from, --to)meal stats Calorie & macro summary for a periodmeal delete <id> Delete a meal entrycred add <name> Add credential (--user --pass --totp --issuer)cred get <name> Retrieve user, pass & live TOTP codecred list List all stored credentialscred delete <name> Delete a credentialdeploy Build, upload, restart, health check, auto-rollbackdeploy --dry-run Preview deploy steps without executingdeploy --force Skip confirmation promptsQuick actions available directly in your Telegram chat.
/start
Show welcome message and available commands
/new
Start a fresh conversation (new context)
/history
List past conversations and switch between them
/system
Set a custom AI system prompt for the conversation
/memory
View all stored memory about you
/tasks
View running background tasks and their status
One binary. One database. No orchestrators, no message queues, no YAML files. Minerva connects directly to the services it needs.
Go monolith — bot, webhooks, WebSocket server, CLI, all in one
Zero-config embedded database — conversations, memory, meals, credentials, tasks
AI brain via claude -p --continue with session continuity
Connect Claude Code from any machine for remote task execution
All you need is Go 1.24+, Claude CLI installed, and a Telegram bot token.
Also available: docker compose up -d with the included docker-compose.yml
Run minerva deploy to build, upload, and deploy with automatic health check and rollback
Put behind a reverse proxy for HTTPS — needed for voice calls and email webhooks
Build the agent binary separately: cd agent && go build, then connect via WebSocket