Expensave is a free, open-source self-hosted expense tracker for personal and family budget management. Track spending, share calendars with family members, import bank statements, and monitor your finances β all on your own server.
Calendar & editing: browse your timeline, review entries, and create or edit transactions.
Reports & themes: analyze spending trends and use Expensave in light or dark mode.
Mobile experience: manage expenses, edit entries, and review reports on smaller screens.
- π₯ Multiple user support
- π Shared expense calendars between family members
- βΎοΈ Multiple & unlimited expense calendars
- π Recurring expenses β daily, weekly, monthly, and yearly schedules
- π¦ Import bank statements in various formats β OFX/QFX, ISO 20022 XML, Revolut, Dollarbird
- π Reports on spending and income habits
- π€ AI assistant integration β manage expenses from Claude, Cursor, and other AI tools via the built-in MCP server
- π± Mobile PWA β installable on iOS and Android
- π¨ Responsive design β works on desktop, tablet, and mobile
Requires Docker. Installs and starts Expensave interactively:
curl -fsSL https://expensave.app/install.sh | sudo bashThe installer will:
- Verify Docker is installed and running
- Ask whether to use default or custom settings
- Configure timezone and locale from your OS automatically
- Generate a secure database password
- Pull images and start the application
- Print the URL and credentials when done
1. Create a directory and download the compose file:
mkdir -p /opt/expensave && cd /opt/expensave curl -fsSL https://raw.githubusercontent.com/algirdasc/expensave/main/docker-compose.yml -o docker-compose.yml
2. Create a .env file:
cat > .env <<EOF TZ=Europe/Vilnius LOCALE=en REGISTRATION_DISABLED=no EOF
3. Start:
docker compose up -d
App is available at http://localhost:18000
Useful commands:
docker compose logs -f # view logs docker compose pull && docker compose up -d # update to latest docker compose down # stop
One-click deploy on a Hostinger VPS with Docker pre-configured:
Expensave works as a Progressive Web App β install it on your phone directly from the browser, no app store required.
See wiki: Using mobile version.
Import your balance from financial institutions in various formats:
- OFX / QFX β supported by most US banks (Chase, Bank of America, Wells Fargo, Citi, American Express, β¦). Look for a "Quicken (QFX)", "Web Connect" or "OFX" download option in your internet bank. Both bank account and credit card statements are supported.
- ISO 20022 XML (camt.053, versions .001.02β.001.08) β the standard SEPA statement format offered by most European banks (Luminor, ING, Nordea, mBank, β¦).
- Revolut β CSV statement exported from the Revolut internet bank.
- Dollarbird β CSV data export, for migrating from Dollarbird.
See wiki for detailed export instructions: Bank statement import.
Expensave exposes a built-in MCP (Model Context Protocol) server at /_mcp, so AI assistants like Claude, Cursor, or pi can manage your expenses programmatically β add, update, and delete expenses, browse calendars and categories, and generate spending reports β with the same permissions as the web app.
Point your MCP client at https://your-expensave-host/_mcp with a Bearer token from the login endpoint, and ask things like "add a 12.50 grocery expense for today" or "show my monthly spending report".
See wiki for setup, client configuration, and the full tool list: MCP server (AI assistants).
Have a question, idea, or want to share how you use Expensave?
π Join the discussion on GitHub
- π‘ Ideas & feature requests β suggest what you'd like to see
- β Q&A β ask questions and get help from the community
- π£οΈ Show & tell β share your setup or how you use Expensave
Found a bug or need help?
- Open an issue for bug reports
- Start a discussion for questions and ideas
Expensave is developed and maintained in my free time. If you find it useful, consider supporting the project:
- Click the Sponsor button at the top of this page
- Your support helps me dedicate more time to new features, bug fixes, and keeping the project alive
- It also lets me know that Expensave is useful to others β which means a lot
Expensave is open-source software licensed under the GNU General Public License v3.0.