Budget Tracker TUI

July 13, 2026 ยท View on GitHub

Budget Tracker Logo

Crates.io version Crates.io downloads Built With Ratatui

A terminal app for tracking your personal budget, built with Rust and Ratatui.

cargo install budget_tracker_tui

Screenshots

main_view
Main transaction view

cat_summary
Category summary

summary_view
Monthly summary with budget line

budget_view
Budget view

More screenshots

summary_multi
Multi-month line chart

summary_cumu
Cumulative chart with budget line

summary_cum_multi
Cumulative multi-month chart

help_menu
Settings with help menu open

fuzzy_find
Fuzzy search for categories

category_catalog
Category catalog

Features

  • Add, edit, delete, filter, and sort income and expense transactions
  • Recurring transactions, from daily to yearly, generated automatically up to today
  • Hierarchical categories and subcategories, editable in-app, with optional fuzzy search
  • Monthly and category summaries with interactive charts
  • Monthly target budget plus optional per-category budgets, tracked in a dedicated budget view
  • CSV import/export (duplicates skipped on import)
  • Local SQLite storage with decimal arithmetic (no floating-point rounding errors)
  • Fully keyboard-driven, with a built-in help menu
  • Runs on Windows, macOS, and Linux; checks for new versions on startup

Installation

Cargo (Linux, macOS, Windows)

With Rust installed (rustup.rs):

cargo install budget_tracker_tui

This puts the Budget_Tracker command on your PATH. A short alias like alias bt='Budget_Tracker' is handy.

Windows installer (no Rust required)

Download the latest installer from the Releases page and run it. I don't have a Windows developer licence, so it shows as an unknown publisher.

From source

git clone https://github.com/Feromond/budget_tracker_tui
cd budget_tracker_tui
cargo install --path .

Usage

Launch with Budget_Tracker. The help bar at the bottom shows the keys for the current view, and Ctrl+H opens the full keybindings menu. Settings (o) is where you configure the database path, categories, CSV import/export, and target budget.

For a more detailed walkthrough of every view and setting, see the User Guide.

Data & configuration

Transactions and categories live in a local SQLite database (budget.db), and app preferences in a config.json:

OSDatabaseConfig
Linux~/.local/share/BudgetTracker/~/.config/BudgetTracker/
macOS~/Library/Application Support/BudgetTracker/same
Windows%APPDATA%\BudgetTracker\same

The database path is configurable in settings; point it at a cloud-synced folder (iCloud, Dropbox, etc.) to share your budget across devices. Changes are saved to the database immediately.

Older versions stored transactions in a transactions.csv file. On first launch, it is imported into the database automatically and renamed to transactions.csv.migrated-backup.

CSV format

Import/export uses the columns date, description, amount, transaction_type, category, subcategory, with flexible date parsing. Import skips exact duplicates, so re-importing the same file is safe. Full details are in the User Guide.

License

Licensed under the GNU General Public License v3.0. See LICENSE for details.