v0.4.1 · out now

Your bank sends SMS.
Xarji builds the dashboard.

A self-hosted personal-finance tracker for Georgia. Reads payment SMS from Bank of Georgia and TBC today — parses every transaction locally, categorizes, visualises. No upload. No scraping. Your data never leaves your machine.

Fully open source
MIT license
Your machine only
No cloud accounts
Works offline
After first read
B
BOG Solo
Messages.app · now
SMS
გადახდა: GEL47.80
WOLT.GE / 20261
ბარათი: VISA *1423
21.04.26 · 19:42
SMS received
W
Wolt · Delivery
Food & Drink· 19:42 · ·1423
−₾47.80
Auto-category
Food & Drink
Bank
BOG Solo
Stored
Local
The problem

If you live in Georgia, you don't have a real expense tracker.

Not one Georgian bank exposes a public transaction API. Nothing you can build on. Nothing Monarch, Copilot or any of the tools the rest of the world uses can plug into. And the analytics in the native Georgian banking apps? No custom categories, no advanced filters, no budget limits and I don’t know why, but they never worked for me. It always felt like they were hallucinating my budgets.

01 · The gap
No API. Anywhere.
BOG, TBC and others - neither publishes a transactions endpoint. No OAuth, no OFX, no Plaid. You cannot programmatically read your own money.
0
Georgian banks with a public API
02 · The walls
Native apps are a dead end.
Fixed categories you can't rename. No cross-bank view. Exports that stop at last month. Fine for checking balances, useless for actually understanding your spending.
Custom categories, filters, or trends
03 · The hack
But the SMS are already there.
Every Georgian bank sends a structured SMS the instant you tap your card. If you mirror those SMS from your phone to Messages.app on macOS, the data is sitting in a local SQLite file - just waiting to be proceed.
100%
Of transactions, already on your Mac
The realisation
"If SMS notifications are on, every transaction is already in my pocket.
I just need to open my laptop."

macOS already mirrors iPhone SMS into a local SQLite database. Every payment confirmation, every declined card, every card-on-file charge — it's all there, timestamped, in plain text. Xarji reads it, parses it, and builds the dashboard the banks refused to.

A little bit hacky. Entirely local. Works whether anyone likes it or not.

Your iPhone
Bank SMS arrives
BOG / TBC
iCloud Messages · Forwarding on
Messages.app on Mac
SMS mirrored to local SQLite
~/Library/Messages/chat.db
Read-only parse · never leaves Mac
X
Xarji
Categorized · charted · yours
InstantDB · local
The dashboard

Built to be lived in.

A calm dark interface, one coral accent, and data you can read at a glance. Six screens cover everything from today's coffee to six months of trend.

xarji · localhost:3000
X
Xarji
ხარჯი
Overview
Transactions
Categories
Merchants
Signals
Manage
Good evening, Nika
April, at a glance
TodayWeekMonthYear
Spent this month · GEL
6,650.70
+₾812 vs March · 21 days · 94 transactions
Daily avg
₾317
low ₾48 · high ₾742
Declined
4
2× insufficient · 1× blocked
Spending mix
APR₾6.6k
Food & Drink32%
Groceries22%
Transport14%
Home12%
Today & recent
● Live
W
Wolt · Delivery
19:42 · Food & Drink
−₾47.80
S
Socar · Fuel
12:08 · Transport
−₾12.40
G
Goodwill
Yest 21:14 · Groceries
−₾256.00
A
Aversi Pharmacy
Yest 14:02 · Health
−₾18.50
01
Overview
Today · month · trend
02
Transactions
713 parsed, filter & search
03
Categories
9 buckets, auto-learn
04
Merchants
Who you paid, ranked
05
Signals
Anomalies & declines
06
Manage
Banks, preferences, data
Why Xarji
Self-hosted. Full stop.
The DMG installs a local app. You create your own InstantDB instance, you control your data.
Reads SMS, never scrapes.
Xarji parses the same payment SMS your bank already sends. No API keys, no login, no screen-scraping scripts.
Made for Georgian banks.
Today: Bank of Georgia (Solo SMS) and TBC. Coming: Liberty, Basis, ProCredit, Credo, Terabank, Cartu, Halyk, VTB, PASHA, Isbank, Ziraat, Silk Road.
Auto-learning categories.
Assign "WOLT.GE" to Food once — Xarji remembers. Merchant variants roll up automatically.
Anomalies & signals.
Spotting unusual amounts, duplicate charges, and declined payments before you notice them.
Export anytime.
Full CSV / JSON export. Your data is yours — open format, plain text, portable forever.
How it works
STEP 01
Install & grant SMS access
Xarji asks macOS for read access to your Messages.app database
STEP 02
Parse every bank SMS
Parsers for Bank of Georgia (Solo) and TBC turn SMS into structured transactions: merchant, amount, card, timestamp.
STEP 03
Live dashboard
InstantDB stores locally, syncs instantly across your windows.
Supported banks
Built on real Georgian bank SMS.
Two banks work today. The rest are on the roadmap — ranked by the asset table on Wikipedia.
Working today
BOG
Bank of Georgia
Solo SMS · parser · live
TBC
TBC Bank
TBC SMS · parser · live
On the roadmap
LIB
Liberty Bank
BAS
Basis Bank
PRC
ProCredit Bank
CRD
Credo Bank
TER
Terabank
CRT
Cartu Bank
HLK
Halyk Bank
VTB
VTB Georgia
PSH
PASHA Bank
ISB
Isbank
ZIR
Ziraat Bank
SLK
Silk Road Bank
Get it
Latestv0.4.1

Xarji for macOS

Released April 28, 2026 · Apple Silicon
Download Xarji.dmg27.6 MB
sha256:098b…1ef6· signed · notarized
Previous releases
v0.4.0April 28, 2026Download →
v0.3.1April 28, 2026Download →
v0.3.0April 27, 2026Download →
v0.2.5April 24, 2026Multi-currency totals · NBG exchange rate API · TBC parser fixDownload →
v0.2.4April 23, 2026Install as native macOS app · service-unreachable splash · web app manifestDownload →
Looking for Linux or Windows? See FAQ →
FAQ

Questions, answered.

Entirely on your Mac. Xarji uses an InstantDB instance that you create on their free tier — the credentials live in `~/.xarji/config.json`, no cloud account of ours sits between you and your data. A local JSON backup at `~/.xarji/transactions.json` is the last line of defense. There is no Xarji server, no telemetry. If you uninstall the app, your data is yours to keep or delete.
macOS Messages.app stores received SMS in a local SQLite database (`~/Library/Messages/chat.db`) when iPhone Stores messages in iCloud and Mac messages app is using same account. Xarji asks for read access to that file, parses only payment SMS from recognised Georgian bank senders, and ignores everything else.
Today: Bank of Georgia (Solo SMS) and TBC Bank. Parsers for the other 12 major Georgian banks — Liberty, Basis, ProCredit, Credo, Terabank, Cartu, Halyk, VTB Georgia, PASHA, Isbank, Ziraat, Silk Road — are on the roadmap. If your bank isn't yet supported and you're willing to share anonymised sample SMS, open an issue on GitHub and we'll prioritise it.
Not yet — Xarji relies on macOS's native SMS mirroring from iPhone, which Windows and Linux don't have. A Linux build for users with Android-SMS-bridge setups is being evaluated.
We needed a local-first database that syncs instantly across the app's windows and tabs, with reactive queries. InstantDB fit perfectly — each user creates their own free-tier app, provides the credentials during onboarding, and the service writes straight there. No Xarji-owned backend sits in the middle.
Yes — full CSV and JSON export of transactions, categories, and merchants. Plain text, no lock-in.
Yes, MIT licensed. Source on GitHub. Contributions especially new bank parsers very welcome.
Mostly. Xarji reads SMS without any network, syncing to your InstantDB needs a connection. Parsed transactions queue locally and sync when you're back online. But you can process already synced data without needing internet connection
Free. Forever. No premium tier. If you want to support development, star the repo or send a PR. https://github.com/tornikegomareli/Xarji
Stay posted

Release notes, quietly.

One short email when a new version drops, or a new bank gets supported. No marketing, no drip campaigns, no "hey, haven't seen you in a while!" — promise. Unsubscribe in one click.

We store your email on the same self-hosted principles. No Mailchimp, no trackers.
Built with