Budget Buddy TUI is a single Go binary that connects to YNAB and projects where you'll land at month-end. Track spending velocity, catch outliers, and stay on pace — no browser, no server, no dependencies.
▦ budget buddy My Budget | Synced 2m ago | Day 16 of 28 | ● 5 ● 2 ● 1 CATEGORY BUDGET SPENT PACE PROJECTED STATUS ─────────────────────────────────────────────────────────────────────── Groceries $600.00 $312.45 $19.53 $546.78 ● On Track Dining Out $200.00 $142.30 $8.89 $248.92 ● Watch Gas $150.00 $67.20 $4.20 $117.60 ● On Track Shopping $300.00 $287.50 $17.97 $503.13 ● Over Entertainment $100.00 $38.00 $2.38 $66.50 ● On Track Subscriptions $85.00 $64.97 lumpy — ● On Track Home Supplies $120.00 $89.33 $5.58 $156.33 ● Watch Personal Care $75.00 $32.10 $2.01 $56.18 ● On Track LAST 7 DAYS ────────── Mon ███ $42.30 Tue █████ $78.12 Wed ██ $24.50 Thu ████████ $132.87 Fri ████ $56.20 Sat ███████████ $198.43 Sun ███ $38.90 [r] Sync [Enter] Detail [g] Groups [?] Help [q] Quit
Single Go binary. No server, no database setup, no Docker. Download, configure your YNAB token, and run. SQLite handles the rest.
Starts in milliseconds. Delta sync fetches only new data. All analysis runs locally with zero network latency for rendering.
Navigate with vim-style keys or arrows. Every action is a keypress away. Built for people who live in the terminal.
All data stays on your machine in a local SQLite database. No cloud sync, no analytics, no telemetry. Your budget, your data.
Budget Buddy TUI turns raw YNAB data into actionable spending insights, right in your terminal.
The heart of Budget Buddy. For each category, it tracks days elapsed vs. days remaining, computes your daily burn rate, and projects end-of-month spending. Status indicators tell you instantly: On Track, Watch, or Over.
The dashboard shows your current pace vs. required pace, spending type classification (linear or lumpy), and a 7-day heatmap — all rendered in a beautiful terminal UI powered by Bubble Tea.
GROCERIES ● On Track Budget: $600.00 Spent: $312.45 (52%) Remaining: $287.55 Pace: $19.53/day Target: $21.43/day Projected: $546.78 Type: Linear (23 transactions) TOP PURCHASES $67.82 Whole Foods Feb 14 $54.30 Costco Feb 10 $43.15 Trader Joe's Feb 08
Connects directly to the YNAB API with efficient delta sync. Categories, transactions, and budget amounts stay current without manual refreshes.
Groceries are spent daily. Insurance is paid once. Budget Buddy auto-detects the pattern (4+ transactions = linear) and adjusts projections accordingly.
Flags transactions more than 2 standard deviations from the mean that exceed 25% of the category budget. Unusual spending surfaces automatically.
Create custom groupings like "Essentials" or "Fun Money." Load any group to see aggregate pace across multiple categories at once.
A color-coded bar chart of your last 7 days of spending. Green for under pace, yellow for near, red for over. Spot trends at a glance.
Classifies your spending patterns as sparse, concentrated, mixed, or distributed. Understand how you spend, not just how much.
Enable or disable individual categories for tracking. Override automatic spending type detection. Focus on what matters to your budget.
Track personal, household, or side-project budgets. Switch between YNAB budgets instantly from within the TUI.
Select any combination of categories to see their combined pace, total budget, and aggregate projected spending. Build your own spending views.
Navigate between dashboard, category details, groups, and more — all without leaving the terminal.
▦ budget buddy My Budget | Synced just now | Day 16 of 28 CATEGORY BUDGET SPENT PACE PROJECTED STATUS ─────────────────────────────────────────────────────────────────────── Groceries $600.00 $312.45 $19.53 $546.78 ● On Track Dining Out $200.00 $142.30 $8.89 $248.92 ● Watch Gas $150.00 $67.20 $4.20 $117.60 ● On Track Shopping $300.00 $287.50 $17.97 $503.13 ● Over [r] Sync [Enter] Detail [g] Groups [?] Help [q] Quit
GROCERIES Everyday Expenses ● On Track [Linear] Spent $312.45 / $600.00 Remaining $287.55 Target $21.43/day Actual $19.53/day Projected $546.78 Pattern: Distributed · 23 transactions · Avg $13.58 · Largest $67.82 (Whole Foods, Feb 14) · Outliers: None By Date │ By Amount Date Payee Amount │ Amount Payee Date ──────────────────────────────────── │ ──────────────────────────────────── Feb 16 Whole Foods $67.82 │ $67.82 Whole Foods Feb 16 Feb 15 Trader Joe's $43.15 │ $54.30 Costco Feb 12 Feb 14 Target $22.40 │ $43.15 Trader Joe's Feb 15 Feb 12 Costco $54.30 │ $38.90 Whole Foods Feb 10 Feb 10 Whole Foods $38.90 │ $31.67 Kroger Feb 08 Feb 08 Kroger $31.67 │ $22.40 Target Feb 14 [Esc] Back [Tab] Switch Pane [t] Toggle Type [r] Sync [q] Quit
MANAGE CATEGORIES 8 enabled · 3 disabled ───────────────────────────────────────────── [✓] Groceries Linear [✓] Dining Out Linear [✓] Gas Linear [✓] Shopping Linear [✓] Entertainment Linear [✓] Subscriptions Lumpy [✓] Home Supplies Linear [✓] Personal Care Linear [ ] Rent Disabled [ ] Savings Disabled [ ] Income Disabled [Space] Toggle [t] Cycle Type [a] Select All [Esc] Back
CATEGORY GROUPS ───────────────────────────────────────────── Essentials 4 categories $1,070.00 Fun Money 3 categories $600.00 Fixed Costs 2 categories $185.00 GROUP: Essentials ────────────────── Groceries $600.00 $312.45 ● On Track Gas $150.00 $67.20 ● On Track Home Supplies $120.00 $89.33 ● Watch Personal Care $75.00 $32.10 ● On Track ────────────────── Total $945.00 $501.08 ● On Track [n] New Group [d] Delete [Enter] View [Esc] Back
Clone the repo and build a single Go binary. No server to deploy, no database to provision. Just a portable executable.
On first launch, enter your YNAB API token and select a budget. The setup screen walks you through it in seconds.
Budget Buddy pulls categories and transactions via delta sync, then computes pace, projections, and pattern analysis locally.
Check your terminal daily. See which categories need attention, review outlier transactions, and adjust spending before month-end.
Navigate, sync, and manage your budget without reaching for the mouse.
Budget Buddy doesn't just show you numbers — it tells you what they mean.
Each category is classified by how spending is distributed across the month.
Distributed Even spread, consistent daily spending Concentrated Most spending in a few large transactions Sparse Few transactions with long gaps between Mixed Combination of small regular + large one-offs
Transactions flagged when they exceed both statistical and budget thresholds.
# Detection criteria Statistical: > 2 standard deviations from mean Budget: > 25% of category budget Both: Must meet BOTH thresholds ● OUTLIER Feb 12 — Best Buy — $487.23 Category "Shopping" avg is $38.50
The pace calculator adapts to how you actually spend in each category.
LINEAR (4+ transactions/month) Groceries, Gas, Dining Out → Daily rate projection, pace line comparison LUMPY (<4 transactions/month) Insurance, Subscriptions, Auto Repair → Actual spend only, no pace projection
Each category is tagged with a spending shape based on transaction count and distribution.
Many small 41 transactions · avg $24.50 Lots of small, regular purchases Mixed 10 transactions · avg $132.47 Blend of large and small purchases Few big purchases 5 transactions · avg $39.63 Spending concentrated in a few transactions
Budget Buddy reduces complex pace calculations to a simple signal. Spend percentage vs. time percentage determines your status — no mental math required.
The thresholds are tuned so you get early warnings while there's still time to adjust, not after it's too late.
Spending pace is at or below budget pace. You're good.
Projected to go slightly over. Time to be mindful.
On pace to significantly exceed budget. Action needed.
Fast, statically typed language that compiles to a single binary
Elm-inspired TUI framework for building terminal applications
Declarative terminal styling and layout from Charm
Embedded database for local storage with zero configuration
Pre-built TUI components: tables, text inputs, spinners, and more
Official API with delta sync for efficient data fetching
Budget Buddy TUI is open source and runs entirely on your machine. Clone the repo, build, and start tracking.
# Clone and build $ git clone https://github.com/cochranjd/budget_buddy_tui.git $ cd budget_buddy_tui && make build # Run $ ./budget-buddy