This project is a local-first personal finance desktop app.
- Import card transactions from CSV.
- Store transactions and merchant rules in local SQLite.
- Categorize new merchants with Ollama + Llama and cache the result.
- Detect likely subscriptions with heuristics plus an LLM verification pass.
- Show spending breakdown by category.
- Manual category edits apply to every transaction from the same merchant.
- Sync button to re-run categorization/subscription detection.
- Plaid API connection + multi-Item support (credentials and tokens stored in OS keychain).
- Rule management panel to edit or delete merchant-level category rules.
- Node.js + npm
- Rust toolchain
- Ollama installed locally
- A local model pulled, for example:
ollama pull llama3.1:8bnpm install
npm run tauri devOn app launch:
- If Plaid is connected, the app pulls transactions first.
- Then it runs category/subscription sync and refreshes the dashboard.
- Connect Plaid API keys in the app:
- Client ID
- Secret
- Environment (
sandbox,development, orproduction)
- Add one or more Item Access Tokens (one token per connected institution login).
- Use the in-app item counter to stay under trial cap.
- Click
Sync ProviderorSync Nowto pull all configured Items.
Notes:
- Item count is tracked in the UI as
used/limit. - The app enforces a safety limit of 10 Items for Plaid trial usage.
Use a CSV with at least these columns:
date(orposted)descriptionamount
Optional merchant column aliases:
merchantpayeevendor
Supported date formats include:
YYYY-MM-DDMM/DD/YYYYMM/DD/YY
- This MVP is fully local and has no cloud backend.
- CSV import works immediately.
- Plaid sync requires API credentials plus Item access tokens.
- Editing a transaction category updates every transaction with the same merchant key.
- Saving a rule in the Rule Manager also updates all matching transactions.
- Deleting a rule resets matching transactions to
Uncategorized.