Ultra Budget Tracker

by Ahmed Hassan
5
4
3
2
1
Score: 50/100

Description

The Ultra Budget Tracker plugin turns bank SMS messages saved into Budget/Inbox into transaction notes and shows balances, budgets and charts inside a five tab budget view. It parses English and Arabic transaction text on the device, ignores reminders, codes and offers and stores everything as plain Markdown under a Budget/ folder. Categories can be learned from the merchants you file by hand, while accounts, budgets, colours, exclusion rules and parser patterns stay editable as notes with JSON blocks. The plugin also supports manual transactions, derived account balances, filtered CSV export and embedded finance summaries in notes. Pending messages are retried until they have an amount, currency, type and account and excluded transactions stay visible but never count toward totals.

Reviews

No reviews yet.

Stats

0
stars
71
downloads
0
forks
2
days
2
days
2
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
62
commits

RequirementsExperimental

  • iPhone Shortcuts automation to save bank messages into Budget/Inbox

README file from

Github

Ultra Budget Tracker

Turn bank SMS messages into transaction notes, then read your spending, budgets and balances in a budget view inside Obsidian. Everything is parsed on the device — no network requests, no telemetry, nothing leaves the vault.

Your data stays plain Markdown in a Budget/ folder: greppable, syncable, and still yours after the plugin is gone.


What it does

  • Captures a bank SMS dropped into Budget/Inbox by an iPhone automation.
  • Ignores what is not a transaction — statement reminders, due dates, one-time codes and offers carry amounts and card numbers too.
  • Parses English and Arabic wordings out of the box: amount, currency, account, date, and the name of the other side.
  • Files it into a category, learning from the names you categorise by hand.
  • Shows it in a five-tab Budget view with balances, budgets and charts.

Works the same on desktop and mobile.


Screenshots

Sample data — the figures and names are invented.

Transactions Merchants
Transactions, grouped by day Merchants, largest first
Categories Stats
Categories, spend against budget Stats, charts and CSV export

Install

Community pluginsBrowse → search Ultra Budget TrackerInstallEnable.

To install it by hand instead, download main.js, manifest.json and styles.css from a release into <vault>/.obsidian/plugins/ultra-budget-tracker/, then restart Obsidian.


Quick start

  1. Run Create budget folders from the command palette — or press Create folders in the plugin's settings.
  2. Open the Budget view from the wallet icon in the ribbon.
  3. Rename the Bank1 account to your own and put your real card digits in it.

Step 1 writes the whole tree, already filled in.

It is also a reset. Every file the command writes — the settings notes, Cash, Bank1 and the eight category notes — goes back to its default each time you run it, so a budget, a colour, a card ending or a learned keyword on one of those notes is replaced. When that would overwrite anything, it lists the files by name and asks first; a fresh vault, or a run that only fills in what is missing, is never asked. Your transactions and any account or category you added yourself are never touched.

<vault>/Budget/
├── Inbox/                      ← the Shortcut drops messages here
├── Transactions/               ← one note per transaction, by year and month
├── Accounts/
│   ├── Cash.md
│   └── Bank1.md                ← rename it; card_endings is what files a message
└── Settings/
    ├── config.md               ← default currency
    ├── accounts.md             ← accounts without a note of their own
    ├── sms_patterns.md         ← extra parser patterns, if your bank needs any
    ├── exclusion_rules.md      ← rules that keep a transaction out of the totals
    └── Categories/
        ├── rules.md            ← keyword → category
        └── Groceries.md …      ← one note per category, with colour and budget

Every file under Settings/ is a note you can open and read: a paragraph saying what it is, then one json block holding the data. Edit the block by hand or change it in the Budget view — both write the same file, and the prose around the block is kept.


Capturing messages

Set up an iPhone automation once: Shortcuts → Automation → Message, trigger on your bank's sender, then Text holding the Shortcut Input and Save File into Obsidian/⟨vault⟩/Budget/Inbox with Ask Where to Save off and Overwrite off.

Obsidian reads the inbox at startup and on every pass. Each file becomes one transaction, and the file is deleted only once its note is on disk. Messages that are not about money moving are discarded and counted in the notice, so forwarding a whole bank thread is safe.

The full walkthrough, plus a tap-to-add Shortcut for cash, is in docs/iphone-shortcuts.md.

A note becomes status: parsed once it has an amount, a currency, a type and an account. Anything less stays pending — never dropped — and is retried on every pass, so adding a card ending or a pattern later is enough to finish it.


The Budget view

Tab What it gives you
Transactions Grouped by day, current month by default. Tap a row to edit; long-press or right-click for quick category and exclude actions. + adds one by hand.
Merchants Every merchant, recipient and sender, one row each. Choosing a category files every transaction of that name and writes the keyword, so the next message files itself.
Categories Spend against budget per category. Edit colour, icon, budget and keywords in place. Renaming re-files every transaction.
Accounts A card per account: derived balance, what the period moved through it, and the drift from the statement figure.
Stats Charts and totals for the filtered period, plus a CSV export.

Excluding a transaction keeps it in the list but removes it from every total — for a reversal, a duplicate message, or anything that did not really happen. A transaction you excluded by hand is never overridden by a rule.

Commands

Command Does
Open budget Opens the Budget view
Create budget folders Writes the whole Budget/ tree, resetting the files it owns to their defaults
Process pending SMS transactions Parses everything still status: pending
Import messages from the SMS inbox Pulls Budget/Inbox in right now
Add transaction Adds one by hand
Edit categories and budgets / List merchants… Opens that tab
Edit exclusion rules Opens the rules editor
Apply exclusion rules to all transactions Re-runs every rule over everything
Fill in missing merchants from stored messages Re-reads stored messages and fills only the blanks
Export filtered transactions as CSV Writes the current filter to a CSV in the vault

Embedding a summary in a note

```finance-summary
period: 2026-09
categories: Groceries, Transport
accounts: CIB
limit: 8
```

period takes YYYY-MM, YYYY or all, and defaults to this month. The rest are optional.


Configuration

Most people never edit a settings file: the Budget view writes all of them. When you do want to — a bank wording the parser misses, a bulk edit, an exclusion rule by hand — every file, key and pattern is documented in docs/configuration.md.

A vault set up by an older release has the same settings as .json files. They keep working where they are; nothing is migrated behind your back.


Privacy

Every message is parsed on the device, by this plugin, inside your vault. No SMS text, no transaction and no setting is sent anywhere. The plugin makes no network requests and collects no telemetry.


Support

If this saves you time, you can say thanks:

buymeacoffee.com/a7med7asan15

Bugs and feature requests: GitHub issues.


Development

TypeScript under src/, bundled to a single main.js by esbuild. main.js is a build artifact — edit the sources, never the bundle.

Clone outside your vault. node_modules alone is around a thousand files and 43 MB; inside a vault, Obsidian indexes all of it at every launch and a sync plugin tries to push it, which on a phone means a long hang on a black screen at startup.

npm install
npm run dev        # rebuild on change
npm test           # node --test
npm run build      # typecheck, then bundle

To have a build install itself, point it at your vault: export OBSIDIAN_VAULT=/path/to/vault, or one line in a gitignored .vaultpath file at the repo root. Without it the bundle is still built, just not copied. Reload Obsidian after a build.

Releases go through scripts/release.sh patch "what changed", which bumps the three version files, commits, tags and pushes; the tag starts the release workflow. It refuses to run on a dirty tree, a stale branch, or a failing npm test / npm run build.

MIT licensed.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Adjacency Matrix Exporter
3 years ago by danielegrazzini
Create a numerical adjacency matrix of your Vault in two ways: Absolute and Normalized
Age Encrypt
2 years ago by Metin Ur
A plugin for Obsidian that provides age-based encryption for your notes.
Alfonso Money Manager
3 years ago by SmartLifeGPT Innovation
This is the repository for the obsidian plugin of the Alfonso Money Manager mobile application
Bases Charts
4 months ago by Moritz Jung
Blur Mode
2 years ago by dangehub
Blur Mode - Blur elements on the obsidian interface for presentations or screenshots|模糊模式 - 对obsidian界面上的元素进行模糊处理以便演示或截图
Budget Vault
a month ago by Ruan
Private budgeting for Obsidian — import bank statements in any currency and track budgets, debt and savings as plain files in your own vault. Twelve languages, works on iPhone and Android.
Charts
6 years ago by phibr0
Charts - Obsidian Plugin | Create editable, interactive and animated Charts in Obsidian via Chart.js
Charts View
5 years ago by caronchen
Data visualization solution in Obsidian, support plots and graphs.
Daily Note Metrics
2 years ago by Andre-Diamond
Obsidian Plugin that parses Daily Notes and uses data to create charts
DocFerry
3 months ago by Rosetta Zidian Guo
Publish one Obsidian note to a secure DocFerry share link.
Finance Manager
8 days ago by Dmitry
Учёт доходов и расходов
Financial Doc
3 years ago by Studio Webux
Financial Documentation and Tracking using CSV format and Chart.js directly in Obsidian
FitKit
20 days ago by Paul Chiu
Obsidian plugin for tracking workouts as plain-markdown notes, with a structured set/rep/weight editor, exercise charts, and a Dataview-powered dashboard.
Garble Text
5 years ago by kurakart
Obsidian plugin for exposing Obsidian's garbleText() function
Habitify
2 months ago by justrelaxdc
Harper
2 years ago by Elijah Potter
Hledger Notes
a year ago by Boburmirzo Khamrakulov
Hledger Notes: Create and manage hledger entries directly in Obsidian Daily notes
Local LLM Hub
2 months ago by TAKESHI MORITA
All-in-one local AI hub for Obsidian — LLM chat with vault tools, MCP servers, RAG, workflow automation, encryption, and edit history. Fully private, no cloud required.
Notion Bases
2 months ago by bgarciamoura
Turn any folder into a Notion-style database — 7 views, 17 column types, formulas, relations, rollups, and subtasks. All stored in plain Markdown frontmatter.
Nova
8 months ago by Shawn Duggan
Nova - AI plugin for Obsidian that edits your documents directly through natural conversation. Stop copying from chat, start collaborating with AI.
NSFW filter
2 years ago by catvatar
Obsidian Plugin adding a button to toggle visiblity of NSFW notes
Offline Whisper Transcription
2 months ago by David Manthey
Password Protect
3 years ago by Aspharmyx
Password Protection
3 years ago by Qing Li
This is a password plugin for protecting your private notes and diary, no encrypt, no decrypt.
Peekaboo
2 years ago by Wang Guoshi
An Obsidian plugin protects your privacy by setting a password to hide notes.
Plotly
5 years ago by Dmitriy Shulha
Obsidian plugin to embed Plotly charts into markdown notes.
Private Mode
a year ago by markusmo3
Sheet Plus
2 months ago by ljcoder
obsidian spreadsheets solutions
Sift
14 days ago by disasta-g
Search your notes with substring matching, operators, path and date filters, and ranked results in a large overlay.
Simple Disguise
2 years ago by slow-groovin
Obsidian plugin: disguise/obscure/hide the content in a very simple way
Size History
3 years ago by Piotr Borowski
Graph with vault size over time
SQLite DB
2 years ago by Stefano Frigerio
SQLSeal Charts
2 years ago by hypersphere
Charting extension for SQLSeal Obsidian Plugin. Visualise your data!
Table to CSV Exporter
4 years ago by Stefan Wolfrum
An Obsidian Plugin that allows to export tables from a pane in reading mode to CSV files.
TinyChart
2 years ago by Alin Coop
Dead simple ASCII charts for Obsidian.
Vault Encrypt
10 months ago by Pluppen
Obsidian Plugin that encrypts/decrypts the entire vault.
Vaultend
2 months ago by Daewon Hwang
AI-powered vault maintenance for Obsidian — auto-tag, link, and clean up your notes with privacy controls and full undo.
Vega Visualizations
4 years ago by Justin Kim
Create Vega and Vega-Lite visualizations in https://obsidian.md/.
Workout Planner
8 months ago by Rares Spatariu