Free · Private · Made for Sri Lanka

Your bank texts you. Mudal makes it a budget

A free, private expense tracker for Sri Lanka. Mudal reads your bank SMS on your phone and builds your spending, budgets and savings goals for you — no typing, no sign-up, nothing uploaded.

Features

What Mudal keeps track of

  • Automatic from bank SMS

    Card payments, ATM withdrawals and transfers become transactions the moment the SMS arrives.

  • Every account in one place

    Savings, current and credit-card accounts are picked up from the SMS, with balances and balance history.

  • Budgets that keep up

    Weekly, monthly or one-off budgets over the categories you choose, with progress that updates as you spend.

  • Clear analytics

    Category breakdowns, trends and month-on-month comparisons, so you can see where the rupees actually go.

  • Your rules

    Auto-categorise by merchant, amount or text, applied to new and past transactions.

How it works

From SMS to spending, in under a second

Built for Sri Lanka

Made for the way Sri Lankan banks text you

Most expense trackers are built for somewhere else. Mudal is written against real SMS from Sri Lankan banks, with rupees as the default.

Supported banks

5
  • Commercial Bank of Ceylon
  • Sampath Bank
  • Nations Trust Bank
  • National Savings Bank
  • National Development Bank

Next, once we have samples

  • Seylan
  • HNB
  • Bank of Ceylon
  • People’s Bank
  • DFCC
  • Pan Asia
Request your bank

Download

Get Mudal

A signed APK for Android 8.0 and newer.

How to install

  1. Download the APK on your phone and open it. If asked, allow your browser to install unknown apps.
  2. On Android 14 or newer, open Settings → Apps → Mudal, tap the ⋮ menu and choose Allow restricted settings, then grant SMS permission.

FAQ

Questions, answered

The things people ask most before trusting an app with their bank SMS.

Ask something else
Why does Mudal need permission to read my SMS?

Reading bank SMS is how Mudal works. When your bank texts you about a transaction, Mudal reads that message on your phone and turns it into an entry. Messages are never sent anywhere. If you would rather not grant it, you can still add transactions by hand.

Does any of my data leave my phone?

Not unless you turn on a feature that needs the internet. SMS parsing, categories, budgets and the database all stay on the device. The only network calls are the ones you opt into: exchange rates, an AI assistant with your own key, webhooks you configure, and a pre-filled GitHub issue when you report an unrecognised SMS. The privacy policy lists each one.

My bank isn’t supported. Can you add it?

Yes, with your help. Parsers are only written from real messages, never guessed. Open a bank request on GitHub with a few of your bank’s transaction SMS — with account numbers and names masked — and say which sender ID they come from. Seylan, HNB, Bank of Ceylon, People’s Bank, DFCC and Pan Asia are next in line once samples arrive.

Will my data survive if I change phones?

Use Settings → Data Management to export a backup file and import it on the new phone. The database itself is encrypted with a key that never leaves the old device, so a backup file is the way to move. Backup files are not encrypted, so keep them somewhere private.

Privacy policy

Privacy policy

Effective 22 October 2026. Applies to the Mudal Android app and this website.

In short: Mudal does not collect your data. There is no Mudal server, no account and no analytics. Your financial data is stored encrypted on your phone and only leaves it if you turn on one of the optional features listed below.

1. Who we are

Mudal is a free, open-source expense tracker maintained by Heshan Jayakody and the Mudal contributors. It is a modified version of PennyWise AI, published under the GNU AGPL-3.0. Because Mudal has no servers, we — the developers — never receive your data.

2. What data Mudal handles

All of the following is created and stored on your phone only:

  • Bank SMS. Mudal reads messages from senders it recognises as banks and extracts the amount, merchant, date, account’s last four digits and balance. A message from an unknown sender that looks like a transaction is kept in a review list on your phone, so you can check it or report the format. Everything else is ignored. SMS text is never logged or uploaded.
  • Transactions and settings. Accounts, transactions, categories, rules, budgets, goals, subscriptions, loans, receipt images you attach, and your app preferences.
  • Optional API key. If you use the AI assistant, your Gemini API key is stored in the app’s private storage and sent only to Google.

3. Permissions

  • SMS (read and receive) — to turn bank messages into transactions. Optional; you can add transactions by hand instead.
  • Notifications — to tell you about new transactions and backups.
  • Biometrics — only if you turn on App Lock.
  • Internet — only for the optional features in section 4.
  • Notification access (optional, off by default) — if you enable it, Mudal reads transaction notifications from bank apps you allow, the same way it reads SMS.

Mudal does not request your location, contacts, camera roll or phone identity, and it does not use an advertising ID.

4. When data leaves your phone

Mudal makes no network requests in the background on its own. The only connections are these, and each one needs you to turn it on or tap it:

FeatureWhenWhat is sentTo
Exchange rates Only when you use more than one currency or turn on unified currency. A standard request for the rates of a currency code such as LKR. No amounts, no identifiers. open.er-api.com
AI assistant Only after you add your own Google Gemini API key and start a chat. Your question plus the transaction details needed to answer it (merchants, amounts, categories, dates). Sent directly to Google with your key. generativelanguage.googleapis.com
Webhooks Only if you set up a webhook yourself. The transaction data you chose to send, to the address you entered. Your own server
Reporting an unrecognised SMS Only when you tap “Report format” or “Ask for help”. Opens a pre-filled GitHub issue in your browser. Numbers, amounts, card and account numbers are masked on your phone first, and nothing is submitted until you review it and press submit. github.com

Those third parties have their own privacy policies — in particular Google’s, if you use the AI assistant. If you use none of these features, Mudal works completely offline.

5. What Mudal does not do

  • No analytics, telemetry or crash reporting.
  • No advertising, and no advertising ID.
  • No accounts, sign-in or cloud sync.
  • No selling, sharing or renting of data — we never have it to begin with.
  • No in-app purchases or billing services.

6. Storage and security

Mudal’s database is encrypted with SQLCipher. The key is generated on your phone and protected by the Android Keystore, so the database cannot be read if it is copied off the device. Android cloud backup of the app is switched off. You can also lock the app with your fingerprint or PIN and hide it in the recent-apps switcher.

7. Backups and exports

Backups and CSV exports are only created when you ask for them, or on a schedule you set up, and are saved where you choose. These files are not encrypted and contain your transaction history, so store and share them carefully. Anything you copy to a cloud drive is covered by that service’s policy.

8. Keeping and deleting your data

Your data stays on your phone until you delete it. You can delete individual transactions in the app, reset the database, or uninstall Mudal, which removes everything it stored. Backup files you exported are yours to delete.

9. Children

Mudal is not aimed at children and collects no data from anyone, including children.

10. This website

This site is a static page hosted on GitHub Pages. It sets no cookies and loads no analytics, fonts or scripts from other services. GitHub, as the host, may keep standard server logs such as IP addresses; see GitHub’s privacy statement.

11. Changes

If this policy changes, the new version will be published here with a new effective date. The history of every change is public in the source repository.

12. Contact

Questions about privacy? Open an issue on GitHub. Please do not paste real SMS, account numbers or other personal details in a public issue.