![]()
A fast, modern, and efficient Terminal User Interface (TUI) application for tracking your personal budget, built with Rust and Ratatui.
cargo install budget_tracker_tui
Main transaction view with summary bar and help
Category summary with expandable/collapsible categories
Monthly summary with interactive chart and budget line
Budget View with yearly, monthly, and categorically focused data
### CLICK FOR MORE SCREENSHOTS HERE
<img width="1000" height="612" alt="summary_multi" src="https://github.com/user-attachments/assets/07011663-c1b7-45c5-b972-fb6c68bf432c" />
Multi-Month Line chart
<img width="1000" height="612" alt="summary_cumu" src="https://github.com/user-attachments/assets/5d99b5a9-2869-4a0a-aa63-a41cfb4a8787" />
Cumulative chart with budget line
<img width="1000" height="612" alt="summary_cum_multi" src="https://github.com/user-attachments/assets/97633bb7-fc4c-4c20-822f-2f7feb1e0065" />
Cumulative and multi month chart
<img width="1000" height="612" alt="help_menu" src="https://github.com/user-attachments/assets/7b994e22-1fc2-435d-9a07-e6c5373f51b4" />
Options Menu with Help / Keybindings Menu Open
<img width="1000" height="612" alt="fuzzy_find" src="https://github.com/user-attachments/assets/9c6217f3-dbf5-47a9-8e86-b61c35449ba5" />
Category/Sub-Category Fuzzy Search Enabled view
<img width="1009" height="593" alt="category_catalog" src="https://github.com/user-attachments/assets/0f9430a9-50dc-4fec-ab2f-59ba21c331ca" />
Category Catalog - Editable categories and custom category creation
+/- to adjust dates by day, and Shift + Left/Right to jump by month in date fields.Ctrl+H for a help menu.The easiest way to install on Linux, macOS, or Windows (if you have Rust installed). One command, no cloning required:
cargo install budget_tracker_tui
After installation, the Budget_Tracker command is immediately available in your terminal.
Don't have Rust? Install it in seconds at rustup.rs — it includes
cargo.
Optional tip: Set up a short alias for even quicker access:
# Add to your .bashrc / .zshrc / PowerShell profile
alias bt='Budget_Tracker'
Then just type bt to launch the app.
If you are on Windows and prefer not to install Rust, you can download and run the latest installer directly from the Releases page — no toolchain needed.
Note: I do not have a Windows developer licence, so it will show as an unknown publisher.
Still working on adding support for direct downloads via some Linux package managers.
Build and run from source (recommended to just use crates.io):
# Clone the repository
git clone https://github.com/Feromond/budget_tracker_tui
cd budget_tracker_tui
# Build (use --release for an optimized build)
cargo build --release
# Run
./target/release/Budget_Tracker
Install globally from source:
cd budget_tracker_tui
cargo install --path .
Budget_Tracker (or bt if you set up the alias)a, fill in the fields, and press Enter to save.↑/↓ to move between transactions, PageUp/PageDown to jump by pages, Ctrl+↑/Ctrl+↓ to jump to first/last transaction.1-6 to sort by Date, Description, Category, Subcategory, Type, or Amount respectively.e to edit, d to delete, f to filter, r to manage recurring transactions.s for monthly summary, c for category summary, and b for the budget view.o to open settings — set the SQLite database path, manage categories, import/export transactions as CSV, set a target budget, and more.q or Esc.Ctrl+H at any time to view the keybindings menu for the current mode.budget.db), configurable in-app (press o for settings).$XDG_DATA_HOME/BudgetTracker/budget.db (usually ~/.local/share/BudgetTracker/budget.db)~/Library/Application Support/BudgetTracker/budget.db%APPDATA%\BudgetTracker\budget.db (e.g., C:\Users\<YourUsername>\AppData\Roaming\BudgetTracker\budget.db)transactions.csv file. On first launch the app automatically imports that file into the database and renames the original to transactions.csv.migrated-backup. Your data is preserved — nothing is deleted.o).config.json file, which is stored in your OS's config directory:~/.config/BudgetTracker/config.json~/Library/Application Support/BudgetTracker/config.jsonC:\Users\<YourUsername>\AppData\Roaming\BudgetTracker\config.jsondate, description, amount, transaction_type, category, subcategory. Exports also include the recurring columns (is_recurring, recurrence_frequency, recurrence_end_date, is_generated_from_recurring); these are optional on import and default to a non-recurring transaction.YYYY-MM-DD, YYYY/MM/DD, DD/MM/YYYY, or DD-MM-YYYY.Income or Expense (case-insensitive, also accepts i/e)transactions.csv.migrated-backup created during migration).$ claude mcp add budget_tracker_tui \
-- python -m otcore.mcp_server <graph>