What's Changed
CSV Export (Issue #30)
Export transactions to CSV for spreadsheets and data analysis:
tally up --format csv > transactions.csv
tally up --format csv --category Food > food.csvCSV columns: date, description, amount, merchant, category, subcategory, source, tags, plus any extra fields from supplemental sources.
Transform Directive
Override transaction descriptions dynamically in your rules:
[Apple Purchases - Enriched]
match: source("apple_purchases")
transform: " + ".join([r.title for r in m])
category: Entertainment
subcategory: Apple
Before: APPLE.COM/BILL ONE APPLE PARK WAY CA
After: Endel: Focus & Sleep Sounds + Overcast
Original description shown in UI with ✎ indicator on hover.
Supplemental Sources Improvements
Supplemental data sources now only require {date} field - amount is optional:
supplemental:
- name: apple_purchases
file: apple_purchases.csv
format: "{date},{order_id},{title},{price}"Bug Fixes
- Fixed CSV header detection for semicolon-delimited files (#77)
- Improved error messages for let binding and field accessor failures
Install
Linux / macOS:
curl -fsSL https://tallyai.money/install.sh | bashWindows PowerShell:
irm https://tallyai.money/install.ps1 | iexOr download the zip for your platform below.
See https://tallyai.money for more info.