Three months of spending, already in your inbox.

mTagger reads your M-Pesa messages, works out what each payment was, and adds it up. Transactions never leave the phone.

The review queue: fifteen payments waiting, the untagged ones first, then the guesses, each with Keep and Change buttons.
The Today screen: Ksh 7,870 out today, two payments worth a glance at the top, and the day's payments listed underneath with their categories.

One text message in. One tagged payment out.

Each M-Pesa confirmation is read the moment it lands. On first launch, mTagger works through the last 90 days of your inbox.

From M-PESA, 5:05 PM

SD44Q2628Z Confirmed. Ksh4,220.00 paid to SOKO FRESH MARKET. on 28/9/26 at 5:05 PM. New M-PESA balance is Ksh14,802.00. Transaction cost, Ksh0.00.

Filed in Today
5:05 PM
SOKO FRESH MARKET Groceries/Shopping
−Ksh 4,220

It reads sending, receiving, paybill, buy goods, withdrawals, M-Shwari, bank transfers and airtime. Anything else in your inbox is left alone.

The edit sheet for a Soko Fresh Market payment of Ksh 4,220, showing the rule it was filed by and quick suggestions for other categories.

It tells you when it is guessing.

The difference between knowing and guessing is the one thing mTagger never blurs. Every payment carries one of three marks.

  • Groceries/Shopping Settled. You agreed, or a rule you wrote says so. It asks for nothing.
  • Work Commute A guess. It waits for your Keep or Change, however long that takes.
  • Tag this Nothing covers it yet. An empty slot, never a made-up category.

Nothing settles itself, because silence is not agreement.

It needs you less every week.

A correction becomes a rule

File one payment and mTagger says how many others it would move, and what they add up to. Do all of them, or just this one.

Insights that show the working

What you really spent once money that only moved is set aside. Your biggest payment, who you pay most, which heading is growing.

Shared payments, netted

When a friend sends back their share, tie it to the bill. The payment then reports what it cost you, with the subtraction in plain sight.

The original, one tap away

Every field is the parser's reading, so the SMS it came from is always there to check, word for word.

Seven accents, light or dark

Material 3 throughout, light or dark. Pick one and this section follows.

Accent

Your transactions stay on your phone.

No account, no sign-in, no server of ours. mTagger is free because it shows ads, and fetching them is the only reason it goes online. Nothing read from your messages is part of that request.

Stored on the device
Messages are parsed and kept on the phone itself. No transaction, total or counterparty is ever transmitted.
No analytics
Nothing tracks what you tag or how you categorise it. Cloud backup is switched off.
Permissions held in check
The build pins the exact permissions the app may hold, so a dependency cannot quietly add one.
Gone when you uninstall
Removing the app removes everything it stored. Your messages are left as they were.

What it asks for, and why

Read and receive SMS
The whole point. Incoming M-Pesa messages are matched against the transaction formats.
Notifications optional
So a new payment can be confirmed from the lock screen.
Internet
Ads from Google AdMob, and nothing else.

Your inbox already did the hard part.

Get it on Google Play

mTagger is not affiliated with Safaricom PLC. It reads messages and cannot move money. Your Safaricom statement is the authoritative record.