Terminal-Native · YNAB-Powered · Zero Infrastructure

Know your spending pace,
right from the terminal.

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 — Dashboard
        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
📦

Zero Infrastructure

Single Go binary. No server, no database setup, no Docker. Download, configure your YNAB token, and run. SQLite handles the rest.

Lightning Fast

Starts in milliseconds. Delta sync fetches only new data. All analysis runs locally with zero network latency for rendering.

Keyboard-Driven

Navigate with vim-style keys or arrows. Every action is a keypress away. Built for people who live in the terminal.

🔒

Privacy First

All data stays on your machine in a local SQLite database. No cloud sync, no analytics, no telemetry. Your budget, your data.

Everything you need to
stay on pace.

Budget Buddy TUI turns raw YNAB data into actionable spending insights, right in your terminal.

Core

Spending Pace Calculator

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
Sync

YNAB Integration

Connects directly to the YNAB API with efficient delta sync. Categories, transactions, and budget amounts stay current without manual refreshes.

Classify

Linear vs. Lumpy

Groceries are spent daily. Insurance is paid once. Budget Buddy auto-detects the pattern (4+ transactions = linear) and adjusts projections accordingly.

Detect

Transaction Outliers

Flags transactions more than 2 standard deviations from the mean that exceed 25% of the category budget. Unusual spending surfaces automatically.

Group

Saved Category Groups

Create custom groupings like "Essentials" or "Fun Money." Load any group to see aggregate pace across multiple categories at once.

Visualize

7-Day Heatmap

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.

Analyze

Pattern Analysis

Classifies your spending patterns as sparse, concentrated, mixed, or distributed. Understand how you spend, not just how much.

Manage

Category Controls

Enable or disable individual categories for tracking. Override automatic spending type detection. Focus on what matters to your budget.

Switch

Multi-Budget Support

Track personal, household, or side-project budgets. Switch between YNAB budgets instantly from within the TUI.

Aggregate

Multi-Category Pace

Select any combination of categories to see their combined pace, total budget, and aggregate projected spending. Build your own spending views.

Six screens.
Complete control.

Navigate between dashboard, category details, groups, and more — all without leaving the terminal.

budget-buddy — Dashboard
        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
budget-buddy — Category Detail
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
budget-buddy — Categories
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
budget-buddy — Groups
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

From YNAB to insight
in four steps.

1

Build & Run

Clone the repo and build a single Go binary. No server to deploy, no database to provision. Just a portable executable.

2

Connect YNAB

On first launch, enter your YNAB API token and select a budget. The setup screen walks you through it in seconds.

3

Sync & Analyze

Budget Buddy pulls categories and transactions via delta sync, then computes pace, projections, and pattern analysis locally.

4

Track & Adjust

Check your terminal daily. See which categories need attention, review outlier transactions, and adjust spending before month-end.

Data Flow
💶
YNAB
API
🔄
Delta
Sync
🗃
SQLite
Pace
Calculator
Bubble Tea
TUI
YNAB stays the source of truth — Budget Buddy derives analysis from locally synced data.

Keyboard-driven.
Every action, one key.

Navigate, sync, and manage your budget without reaching for the mouse.

Navigation

Move up k
Move down j
Select / Confirm Enter
Go back Esc
Switch pane Tab
Show help ?

Actions

Sync from YNAB r
Toggle item Space
Cycle spending type t
Select all a
Clear selection c
Delete d

Screens

Category detail Enter
Groups g
New group n
Back to dashboard Esc
Quit q Ctrl+C

Analytics that go
beyond the balance.

Budget Buddy doesn't just show you numbers — it tells you what they mean.

Spending Patterns

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

Outlier Detection

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

Linear vs. Lumpy

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

Spending Shape

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

Three statuses.
Instant clarity.

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.

On Track

Spending pace is at or below budget pace. You're good.

Watch

Projected to go slightly over. Time to be mindful.

Over

On pace to significantly exceed budget. Action needed.

Built with
proven tools.

🖥

Go

Fast, statically typed language that compiles to a single binary

🍵

Bubble Tea

Elm-inspired TUI framework for building terminal applications

🎨

Lip Gloss

Declarative terminal styling and layout from Charm

🗃

SQLite

Embedded database for local storage with zero configuration

🔧

Bubbles

Pre-built TUI components: tables, text inputs, spinners, and more

💶

YNAB API

Official API with delta sync for efficient data fetching

6
Screens
1
Binary
0
Dependencies
<1s
Startup

Ready to track your
spending pace?

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

Also from programmingjosh.com