A fast, modern, and efficient Terminal User Interface (TUI) application for tracking your personal budget, built with Rust and Ratatui.
- πΌοΈ Screenshots
- β¨ Features
- π Getting Started
- β‘ Quick Start
- βοΈ Settings & Configuration
- π Data & CSV Format
- References
Main transaction view with summary bar and help
Category summary with expandable/collapsible categories
Monthly summary with interactive chart and budget line
Click to see all monthly summary screenshots
Multi-Month Line chart
Cumulative chart with budget line
Cumulative and multi month chart
Options Menu with Help / Keybindings Menu Open
Category/Sub-Category Fuzzy Search Enabled view
- Intuitive Terminal UI: Manage your finances directly from your terminal with a clean, responsive interface (TUI).
- Transaction Management: Add, view, edit, and delete income and expenses.
- Recurring Transaction: Setup transactions that automatically recur at select frequencies.
- Advanced Filtering: Filter transactions by date, description, category, type, and amount (including advanced multi-field filters).
- Smart Date Navigation: Use
+/-to adjust dates by day, andShift + Left/Rightto jump by month in date fields. - Categorization: Built-in, hierarchical categories and subcategories for all transactions.
- Fuzzy Search: Toggleable option to fuzzy search categories/subcategories for quick selection.
- Summaries & Charts: Visualize your spending/income by month and by category, with interactive charts and tables.
- Budget Tracking: Set a monthly target budget and see your progress (including a budget line in summary charts).
- Data Persistence: All data is stored locally in a configurable CSV file. Settings are saved in a config file.
- Cross-Platform: Runs on Windows, macOS, and Linux.
- Keyboard-Driven: Fully operable with keyboard shortcuts for every action and mode. Press
Ctrl+Hfor a help menu. - Update Checker: Automatically checks for updates on startup and notifies you of new versions.
- Robust CSV Support: Flexible date parsing, easy import/export, and Excel compatibility.
- High Precision: Uses decimal arithmetic (no floating point errors) for accurate financial calculations.
- Built with Rust: Safety, speed, and reliability.
If you are on Windows, you can download and run the latest installer for a quick and easy setup. This is the simplest way to get started on Windowsβno Rust or Cargo required! (NOTE: I do not have a windows developer licence so it will be an unknown publisher)
- Rust (includes
cargo)
Still working on adding support for direct downloads via some linux package managers
Build and Run Manually:
# Clone the repository
git clone https://github.com/Feromond/budget_tracker_tui
cd budget_tracker_tui
# Build the project (use --release for optimized build)
cargo build --release
# Run the executable
./target/release/Budget_TrackerInstall Globally with Cargo (Recommended for Linux/macOS):
# Navigate to the project directory
cd budget_tracker_tui
# Install the binary to Cargo's bin directory
cargo install --path .After installation, the Budget_Tracker command should be available in your terminal directly.
Optional Tip: For even quicker access, set up a shell alias:
# Example for bash/zsh (add to your .bashrc or .zshrc)
alias bt='Budget_Tracker'Then, you can just type bt to launch the app.
- Launch the app:
Budget_Tracker(orbtif you set up the alias) - Add a transaction: Press
a, fill in the fields, and pressEnterto save. - Navigate: Use
β/βto move between transactions,PageUp/PageDownto jump by pages,Ctrl+β/Ctrl+βto jump to first/last transaction. - Sort transactions: Press
1-6to sort by Date, Description, Category, Subcategory, Type, or Amount respectively. - Manage transactions: Press
eto edit,dto delete,fto filter,rto manage recurring transactions. - View summaries: Press
sfor monthly summary,cfor category summary (usePageUp/PageDownto jump between months in category view). - Change settings: Press
oto open settings (change data file path, set target budget). - Quit: Press
qorEsc. - Help: Press
Ctrl+Hat any time to view the keybindings menu for the current mode.
- Data File Path:
- The path to your
transactions.csvfile is configurable in-app (pressofor settings). - Default locations: - Linux:
$XDG_DATA_HOME/BudgetTracker/transactions.csv(usually~/.local/share/BudgetTracker/transactions.csv) - macOS:~/Library/Application Support/BudgetTracker/transactions.csv- Windows:%APPDATA%\BudgetTracker\transactions.csv(e.g.,C:\Users\<YourUsername>\AppData\Roaming\BudgetTracker\transactions.csv) - Cross-Device Sync: You can set your data file path to a cloud-synced folder (iCloud, Google Drive, Dropbox, OneDrive, etc.) to automatically sync your budget data across multiple devices. Just point the data file path to a location within your cloud storage folder!
- The path to your
- Target Budget:
- Set a monthly target budget in settings. This will show a budget line in summary charts.
- Hourly Rate:
- (Optional) Set your hourly earning rate to toggle a view that shows transaction costs in "hours worked".
- Fuzzy Search:
- Enable or disable the fuzzy search input for category selection (toggle in Settings menu
o).
- Enable or disable the fuzzy search input for category selection (toggle in Settings menu
- Config File:
- The application's settings are saved in a
config.jsonfile, which is stored in your OS's config directory:- Linux:
~/.config/BudgetTracker/config.json - macOS:
~/Library/Application Support/BudgetTracker/config.json - Windows:
C:\Users\<YourUsername>\AppData\Roaming\BudgetTracker\config.json
- Linux:
- This is separate from the data file location, which is in your OS's data directory (see above).
- The application's settings are saved in a
- CSV Columns:
date, description, amount, transaction_type, category, subcategory - Date Format: Flexible! Accepts
YYYY-MM-DD,YYYY/MM/DD,DD/MM/YYYY, orDD-MM-YYYY. - Transaction Type:
IncomeorExpense(case-insensitive, also acceptsi/e) - Category/Subcategory: Must match the built-in set of categories and subcategories provided by the application. Custom or arbitrary categories are not currently supported.
- Import/Export: You can edit the CSV in Excel/LibreOffice or import from other tools (just match the columns and use valid categories).
- Data Safety: The app will not overwrite your CSV unless you save a transaction, close the program, or change settings.