Self-hosted personal finance tracking with xpenser
Track and analyze income and expenses with dashboards, categories, vendors, reports, and OpenAPI/MCP access in a self-hostable app with source you can inspect.
Accounts are for xpenser.cleverbrush.com; self-hosted deployments run from the same MIT licensed source.

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.
Explorexpenser is an open-source expense tracker for recording expenses, income, refunds, vendors, categories, multi-currency transactions, and finance reports.
ExploreUse xpenser with OpenAPI docs, API keys, typed client access, and MCP tools for personal finance data, including vendors, categories, transactions, and agent workflows.
ExploreReal screens, not a placeholder finance app
The public page now shows the transaction browser, API key, and MCP setup surfaces directly, so users can evaluate the product and integration workflow before creating an account.

Transactions stay inspectable
Searchable transaction history shows categories, vendors, effects, amounts, and dates in the same data model exposed by the API.

Integrations live in the product
Preferences include API keys, MCP OAuth setup, bearer-token fallback instructions, Telegram linking, and email report settings.
API access is a product surface
xpenser already generates OpenAPI from the same Cleverbrush contracts used by the server and typed client. The public site should expose that reference directly and point agent users to the MCP endpoint.
curl /api/openapi.json
curl /api/mcp \
-H "Authorization: Bearer ${XPENSER_API_KEY}"const client = createXpenserClient({
baseUrl: process.env.XPENSER_API_BASE_URL,
getToken: () => process.env.XPENSER_API_KEY
});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.
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.
Start hosted, then self-host when ready
Create a hosted xpenser account for the public instance, or review the MIT licensed source and run your own deployment from Docker Compose.