Bella Keys
Bella Keys
Bella Keys is a privacy-first desktop application combining a personal AI assistant with multi-period expense and budget tracking. Built on LangGraph, FastAPI, React, Electron, and the Model Context Protocol.
Deployment Architecture
Bella Keys uses an inside-out architecture: application logic runs in Docker containers while all user data (PostgreSQL, Qdrant, Ollama models) stays on the host machine. The React UI is served by nginx in web mode and connects directly to services in Electron mode.
Core Components
-
Desktop Client React 19 interface inside Electron, compiled with Vite and styled with Material UI v6. Served by nginx in web/Docker mode; connects directly to services in Electron mode.
-
Expense Manager Service (Technical Details) Clean Architecture FastAPI service for multi-period budgeting, savings envelopes, and account tracking. Backed by async SQLAlchemy and PostgreSQL.
-
Bella Chat Service (Agent Details) LangGraph
create_agentorchestrator with RAG knowledge search, MCP tool use, SSE streaming, and Arize Phoenix observability. Supports Ollama (local) and Google Gemini as the LLM backend. -
EMS MCP Server (Server Details) FastMCP service exposing EMS financial data as read-only LLM-callable tools over streamable HTTP.
-
ETL Pipelines (Pipeline Details) Offline ingestion job that fetches wiki docs from GitHub and loads dense vector embeddings into Qdrant.
User Workspace Showcase
- Budgeting and Envelopes
- Accounts and Balances
- Intelligent Assistant
Envelope Allocations and Period Parameters
Distribute active monthly income into customized spending and savings envelopes. The table updates balances in real-time as expense items are added.

Savings Envelopes Breakdown
Monitor target progress and transaction balances dynamically for savings objectives:


Liquid Assets and Liabilities
Consolidate bank accounts, savings allocations, and credit liabilities into a single view to monitor net worth statistics:

Account and Category Configurations
Manage active ledger accounts and category thresholds directly inside settings cards:


Multi-Turn Agentic Chat Workspace
The desktop chat panel connects to the LangGraph OrchestratorAgent, routing queries to financial data tools or the RAG knowledge base:

Context Retrieval with Grounded Citations
The RAGAgent performs semantic vector search and returns source-linked citations alongside the answer:
