Skip to main content
SAFIA is an AI-powered personal finance assistant that lives inside Telegram. Instead of filling out spreadsheets or navigating complex apps, you simply chat — in whatever language feels natural — and SAFIA handles the rest. It records transactions, monitors your investments, answers financial questions, and even processes receipts from photos or voice messages. Because it runs locally on your own hardware, your financial data never leaves your machine.

What SAFIA Can Do

Expense & Income Tracking

Record, filter, and review transactions through natural conversation. Send a receipt photo and SAFIA extracts the amount automatically.

Investment Portfolio

Track stocks, crypto, gold, and other assets. Get real-time pricing, portfolio summaries, and rebalancing suggestions based on your target allocations.

Debt Management

Keep tabs on money you’ve lent or borrowed, with settlement tracking so nothing slips through the cracks.

Market Data

Fetch live gold, silver, crypto, and currency exchange rates on demand, sourced from multiple real-time feeds.

Auto Reminders

Schedule price alerts, daily news digests, and portfolio summaries. SAFIA can also infer reminder patterns from your habits.

Voice Messages

Speak instead of type. SAFIA transcribes your voice messages using Whisper (via Groq) and processes them like any other message.

Knowledge Base (RAG)

Upload PDF, TXT, or DOCX files to the admin dashboard. SAFIA uses those documents to ground its responses with your own reference material.

Financial News

Search and summarize relevant Indonesian financial news to keep you up to date with the market.

Architecture: Local-First by Design

SAFIA is built around a local-first principle. The only network calls it makes are to LLM and speech-to-text APIs — every other component runs on your machine.
ComponentTechnologyWhere It Runs
LLM chatLunos / Groq / OpenAI / CustomRemote API
Speech-to-textWhisper (Groq)Remote API
Embeddingsfastembed + ONNX (384-dim, multilingual)Local
Vector storageQdrant on-diskLocaldata/qdrant/
DatabaseSQLite (default) or PostgreSQLLocal
Cache & rate limitingRedisLocal
Admin UIFlask + Chart.jsLocalhttp://127.0.0.1:5454
Bot daemonsystemd / launchd / Scheduled TasksLocal — auto-starts on boot
The embedding model (~120 MB) downloads once and runs on CPU via ONNX Runtime. Qdrant writes vectors directly to disk with no separate server or Docker container needed.
SAFIA defaults to Bahasa Indonesia for its persona and system prompts, but it detects and replies in the language you write in. You can chat in English, Indonesian, or any other language the underlying model supports.

Telegram Commands

SAFIA is primarily conversational — you interact through natural language rather than slash commands. Two built-in commands are available:
CommandDescription
/startStart the bot and reset the current chat session.
/bantuanShow the help message with an overview of what SAFIA can do.
All other interactions happen through normal conversation. Just chat as you would with a person.

Who SAFIA Is For

SAFIA is a good fit if you:
  • Want a personal finance assistant that keeps your data on your own hardware
  • Prefer managing money through conversation rather than form-based apps
  • Already use Telegram daily and don’t want to switch to another app
  • Are comfortable running a small self-hosted service on a Linux, macOS, or Windows machine
  • Want to customise the LLM provider, database backend, or knowledge base to suit your setup
SAFIA requires a Telegram bot token (free, from @BotFather) and an API key for your chosen LLM provider. Redis must be available locally — the installer handles this automatically on Linux and macOS.