Skip to main content
Open-source personal finance

Self-hosted personal finance tracking with xpenser

Track and analyze income and expenses with dashboards, categories, vendors, reports, and MCP/API access in a self-hostable app with source you can inspect.

xpenser is early and evolving; feedback on product fit, self-hosting, README clarity, and MCP workflows is welcome.

Expense tracking workflows
Self-hostable finance app
Multi-currency tracking
MCP/API access
Telegram bot integration
Cleverbrush reference code
MIT licensed
Early project
xpenser dashboard month view showing income, expenses, net total, and category detail

Product-led paths for finance tracking

Start with the angle that fits your evaluation: self-hosting, open-source expense tracking, or API and MCP access for finance workflows.

Run xpenser as a self-hosted personal finance tracker with Docker Compose, a web app, private API service, PostgreSQL, telemetry, and open source code.

Explore

xpenser is an open-source expense tracker for recording expenses, income, refunds, vendors, categories, multi-currency transactions, and finance reports.

Explore

Use xpenser with API keys, typed client access, and MCP tools for personal finance data, including vendors, categories, transactions, and agent workflows.

Explore

Personal finance workflows first

xpenser is a working app, not a static showcase. It grew from a personal Telegram bot plus Google Sheets workflow into the product surfaces a finance tracker needs while keeping the implementation open-source and small enough to inspect or self-host, including multiple currencies and Frankfurter-backed automatic conversion.

Dashboard summaries

Daily, weekly, monthly, quarterly, and yearly summaries keep income, expenses, net totals, and trends visible.

Transaction tracking

Record income, expenses, refunds, and returns with category, note, date, and currency context.

Multi-currency conversion

Use multiple transaction currencies with automatic conversion to your default currency through Frankfurter rates.

Reports and email summaries

Reports compare periods on demand, and configurable weekly and monthly email summaries surface OpenAI-generated spending and income insights.

Personal setup

Preferences cover default currency, favorite transaction currencies, time zone, API keys, and Telegram bot linking.

Mobile-friendly interface

Responsive screens keep dashboard, transaction, and setup workflows usable on phones and desktops.

Cleverbrush reference

Learn Cleverbrush from a working app

The codebase exercises Cleverbrush contracts, server handlers, generated clients, schema-backed React forms, auth, Telegram bot integration, an MCP server, logs, telemetry, and deployment-ready configuration for self-hosting.

Schema-first contracts

Shared schemas describe validation, OpenAPI output, React forms, and typed client contracts from one source.

Typed full-stack flow

The same contract powers the server handlers, generated client calls, auth metadata, and cache tags.

Auth-aware APIs

Google sign-in, API keys, and protected endpoint metadata demonstrate framework-level auth integration.

Observable runtime

OpenTelemetry, structured logs, and typed environment parsing show how production behavior is wired in.

Connected entry points

The app exposes normal product UI and integration paths for agents, services, and external clients.

API keys

Create durable keys for typed client access.

MCP server

Let approved agents read or manage vendors, categories, and transactions through tool calls.

Telegram bot

Link Telegram and use bot-driven finance workflows alongside the web UI.

Telemetry

Trace web, API, and integration paths through SigNoz.

Use it, self-host it, or study the source

Create an account for the hosted app, review the source on GitHub, or follow the Cleverbrush docs behind the contracts, forms, APIs, and telemetry.