data, built for the AI era.
fin connects your banks, cards and brokerages through Plaid and brings in your Amazon and Costco purchases. It runs locally on your laptop, keeps its keys in your Keychain, and costs nothing on Plaid's free Trial plan. Ask your agent, open it all as pages in your browser, query your transactions with SQL, or keep them in a Google Sheet.
you โบ Build me a monthly spending review. Compare it to the month before.
ran fin transactions --since 2026-08-01 --json
โ 412 transactions from 6 connections
agent โบ September spending was $6,482, down 9% from August ($7,121).
Rent and utilities held at $2,850. Dining out rose +31% to $694,
mostly six weekend orders from Sushi Ota. Shopping fell $1,216
because August included a $1,180 standing desk.
You saved $3,368, 34% of what came in.
bash
$ fin accounts
Accounts ยท 7 across 6 Items
โญโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโฎ
โ Item โ Account โ Mask โ Type โ Current โ Available โ Limit โ Ccy โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโค
โ chase โ Sapphire Preferred โ 4242 โ credit card credit โ 1834.12 โ 13165.88 โ 15000.00 โ USD โ
โ chase โ Total Checking โ 8810 โ checking depository โ 6120.40 โ 6120.40 โ โ USD โ
โ amex โ Gold Card โ 1005 โ credit card credit โ 912.77 โ โ โ USD โ
โ citi โ Savings โ 3127 โ savings depository โ 24500.00 โ 24500.00 โ โ USD โ
โ fidelity โ Roth IRA โ 0917 โ roth investment โ 48210.57 โ โ โ USD โ
โ schwab โ Brokerage โ 3301 โ brokerage investment โ 96215.00 โ 42680.00 โ โ USD โ
โ robinhood โ Individual โ 7712 โ brokerage investment โ 18440.10 โ โ โ USD โ
โฐโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโฏ
Balances from Plaid's daily refresh. Use --live to ask each bank now (billed per call).
bash
$ fin accounts --json
{
"accounts": [
{
"item": "chase",
"institution": "Chase",
"name": "Sapphire Preferred",
"mask": "4242",
"type": "credit",
"subtype": "credit card",
"balances": {
"available": 13165.88,
"current": 1834.12,
"limit": 15000,
"iso_currency_code": "USD"
}
},
โฆ
],
"env": "production",
"errors": [],
"live": false
}
bash
$ fin transactions --since 2026-10-01
Transactions ยท 2026-10-01 โ 2026-10-09 ยท 8
โญโโโโโโโโโโโโโฌโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฎ
โ Date โ Item โ Account โ Description โ Amount โ Ccy โ Category โ
โโโโโโโโโโโโโโผโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ 2026-10-09 โ chase โ Sapphire Preferred โ Sushi Ota โ -86.40 โ USD โ food and drink โ
โ 2026-10-08 โ amex โ Gold Card โ Whole Foods Market โ -142.18 โ USD โ food and drink โ
โ 2026-10-08 โ chase โ Total Checking โ ACME Corp Payroll โ 4925.00 โ USD โ income โ
โ 2026-10-07 โ chase โ Sapphire Preferred โ Uber โ -23.90 โ USD โ transportation โ
โ 2026-10-05 โ amex โ Gold Card โ Netflix โ -24.99 โ USD โ entertainment โ
โ 2026-10-03 โ chase โ Total Checking โ Rent ยท October โ -2600.00 โ USD โ rent and utilities โ
โ 2026-10-02 โ citi โ Savings โ Interest payment โ 31.20 โ USD โ income โ
โ 2026-10-01 โ chase โ Sapphire Preferred โ United Airlines โ -540.00 โ USD โ travel โ
โฐโโโโโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโดโโโโโโโโโโโโโโโโโโโโโฏ
Money out 3417.47 ยท money in 4956.20. Shown here as negative = spent, positive = received; JSON keeps Plaid's sign.
bash
$ fin transactions --since 2026-10-01 --json
{
"env": "production",
"errors": [],
"since": "2026-10-01",
"transactions": [
{
"item": "chase",
"institution": "Chase",
"account_name": "Sapphire Preferred",
"account_mask": "4242",
"date": "2026-10-09",
"authorized_date": "2026-10-08",
"name": "SUSHI OTA SAN DIEGO",
"merchant_name": "Sushi Ota",
"amount": 86.4,
"iso_currency_code": "USD",
"pending": false,
"category": "FOOD_AND_DRINK",
"category_detailed": "FOOD_AND_DRINK_RESTAURANT"
},
โฆ
],
"until": "2026-10-09"
}
bash
$ fin amazon categorize --all
Amazon items ยท 5
โญโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโฎ
โ Item โ Date โ Title โ Qty โ Cost โ Category โ
โโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค
โ 114-2290017-6612408#1 โ 2026-10-06 โ Cordless drill kit โ 1 โ 129.84 โ HOME_IMPROVEMENT โ
โ 114-2290017-6612408#2 โ 2026-10-06 โ Ground coffee, 2 lb โ 2 โ 38.90 โ FOOD_AND_DRINK โ
โ 114-2290017-6612408#3 โ 2026-10-06 โ Vitamin D3, 240 count โ 1 โ 18.62 โ MEDICAL โ
โ 113-8805213-0147729#1 โ 2026-10-02 โ Kids' rain boots โ 1 โ 34.17 โ GENERAL_MERCHANDISE โ
โ 113-8805213-0147729#2 โ 2026-10-02 โ Catan board game โ 1 โ 46.03 โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโฏ
Set one with fin amazon categorize --set ITEM CATEGORY [--product].
bash
$ fin amazon categorize --all --json
{
"categories": [
"INCOME",
โฆ
],
"items": [
{
"item": "114-2290017-6612408#1",
"order_id": "114-2290017-6612408",
"date": "2026-10-06",
"product": "B0C7KQ3X1M",
"title": "Cordless drill kit",
"quantity": 1,
"cost": 129.84,
"category": "HOME_IMPROVEMENT",
"category_detailed": "HOME_IMPROVEMENT_HARDWARE",
"category_source": "item",
"account": "home",
"bank_transaction": "AMAZON MKTPL*BB4L09 ยท 2026-10-07"
},
โฆ
]
}
bash
$ fin holdings
Holdings ยท 7 positions ยท 162865.67
โญโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโฎ
โ Item โ Account โ Security โ Quantity โ Price โ Value โ Cost basis โ Gain โ Lots โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโค
โ fidelity โ Roth IRA โ VTI โ 120 โ 288.10 โ 34572.00 โ 26400.00 โ 8172.00 โ 4 โ
โ fidelity โ Roth IRA โ FXAIX โ 61.05 โ 223.40 โ 13638.57 โ 11020.00 โ 2618.57 โ 3 โ
โ schwab โ Brokerage โ AAPL โ 150 โ 241.30 โ 36195.00 โ 21300.00 โ 14895.00 โ 5 โ
โ schwab โ Brokerage โ SCHD โ 600 โ 28.90 โ 17340.00 โ 16200.00 โ 1140.00 โ 2 โ
โ schwab โ Brokerage โ U S Dollar โ 42680 โ 1.00 โ 42680.00 โ 42680.00 โ 0.00 โ 0 โ
โ robinhood โ Individual โ NVDA โ 80 โ 182.50 โ 14600.00 โ 9100.00 โ 5500.00 โ 6 โ
โ robinhood โ Individual โ TSLA โ 10 โ 384.01 โ 3840.10 โ 4400.00 โ -559.90 โ 2 โ
โฐโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโฏ
Total value 162865.67, cost basis 131100.00 where known.
bash
$ fin holdings --json
{
"env": "production",
"errors": [],
"holdings": [
{
"item": "fidelity",
"institution": "Fidelity",
"account_name": "Roth IRA",
"ticker": "VTI",
"security_name": "Vanguard Total Stock Market ETF",
"security_type": "etf",
"quantity": 120,
"price": 288.1,
"price_as_of": "2026-10-08",
"value": 34572,
"cost_basis": 26400,
"iso_currency_code": "USD",
"tax_lots": [
{
"quantity": 30,
"purchase_price": 212.4,
"original_purchase_datetime": "2022-03-14T00:00:00Z",
"position_type": "LONG"
},
โฆ
]
},
โฆ
]
}
bash
$ fin sql "select category,
sum(amount) filter (month(date) = 8) as aug,
sum(amount) filter (month(date) = 9) as sep,
round(100 * (sep - aug) / aug) as pct
from transactions
where amount > 0
and date between '2026-08-01' and '2026-09-30'
group by category
order by sep desc"
6 rows
โญโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโฌโโโโโโฎ
โ category โ aug โ sep โ pct โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโค
โ RENT_AND_UTILITIES โ 2850 โ 2850 โ 0 โ
โ FOOD_AND_DRINK โ 1153.8 โ 1318 โ 14 โ
โ TRAVEL โ 814.6 โ 1203.6 โ 48 โ
โ GENERAL_MERCHANDISE โ 1700.4 โ 484.4 โ -72 โ
โ TRANSPORTATION โ 412.3 โ 389.6 โ -6 โ
โ ENTERTAINMENT โ 189.9 โ 236.4 โ 24 โ
โฐโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโดโโโโโโฏ
From ~/.local/share/fin/production.duckdb, synced Oct 9, 09:12. Run fin sync to refresh.
bash
$ fin sql --json "select category,
sum(amount) filter (month(date) = 8) as aug,
sum(amount) filter (month(date) = 9) as sep,
round(100 * (sep - aug) / aug) as pct
from transactions
where amount > 0
and date between '2026-08-01' and '2026-09-30'
group by category
order by sep desc"
{
"columns": ["category", "aug", "sep", "pct"],
"env": "production",
"rows": [
{
"aug": 2850,
"category": "RENT_AND_UTILITIES",
"pct": 0,
"sep": 2850
},
{
"aug": 1153.8,
"category": "FOOD_AND_DRINK",
"pct": 14,
"sep": 1318
},
โฆ
],
"synced": [
{
"item": "chase",
"item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",
"transactions_update_status": "HISTORICAL_UPDATE_COMPLETE",
"last_sync": "2026-10-09T16:12:00Z"
},
โฆ
]
}
Made-up numbers in fin's real output format. In a terminal fin prints tables; when an agent runs it, JSON.
// fin ui ยท illustrative data
Or open it in your browser. #
fin ui turns the local file into pages: net worth day by day, spending against last month, your portfolio, and a SQL editor that charts what it returns. fin serves them from 127.0.0.1 behind a random token, and they load nothing from the internet.
// works with the banks, cards and brokerages Plaid connects to
Logos are trademarks of their owners. fin is independent and not affiliated with them or with Plaid.
// AI-generated reports ยท illustrative data
Ask in plain words. Get a report. #
fin supplies the data. Your agent creates the layout, charts, and analysis.
// fin help security
Local and yours. #
- reads
- Balances, transactions, holdings with tax lots, investment activity.
- never requests
- Plaid Auth or Identity: no account numbers, no personal details. Cannot move money.
- secrets
- macOS Keychain, service
fin. State in~/.config/fin/state.json, mode 0600. - data
- Transactions, a balance per account for each day you sync, and holdings in a DuckDB file in
~/.local/share/fin; query it withfin sqlor browse it withfin ui.fin sheetcopies them to a spreadsheet in your Google Drive, the only file there fin can see. - amazon
- Experimental and off until you run
fin amazon login: it reads your Amazon payments and order pages with your Chrome sign-in, so each charge opens into its items. - costco
- Experimental and off until you run
fin costco login: it reads your warehouse and gas receipts and costco.com orders with your Chrome sign-in, so each trip opens into its items. - servers
- No hosted service. fin calls Plaid's API from your laptop and prints the answer.
fin uiserves its pages on 127.0.0.1 only, behind a random token, with every font and script built into fin. - cost
- Free on Plaid's Trial plan, up to 10 institutions. MIT licensed.