Show HN: Bagels – TUI Expense Tracker
Bagels Expense Tracker
Bagels is a powerful terminal-based expense tracker designed to help users manage their finances with ease. This Text User Interface (TUI) application allows you to track and analyze your money flow using convenience-oriented features and a comprehensive interface.
Why Use a Terminal Expense Tracker?
Managing expenses daily rather than on-the-go simplifies habit formation and accuracy. Using the terminal provides a fast, local data management solution.
Key Features
- Accounts, (Sub)Categories, Splits, Transfers, Records
- Templates for Recurring Transactions
- Quick Entry with Number Keys
- Clear Layout with Togglable Splits
- External Account Transfers
- “Jump Mode” Navigation
- Reduced Input Fields Powered by Modes
- Custom Keybindings and Defaults
- Filtering by Label, Amount, Category
- Spending Graphs and Budgeting Tools
Installation Instructions
For MacOS:
curl -LsSf https://astral.sh/uv/install.sh | sh source $HOME/.local/bin/env uv tool install --python 3.13 bagels
For Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" uv tool install --python 3.13 bagels
Usage Overview
Use the following commands to operate the Bagels expense tracker:
bagels– Start Bagelsbagels --at "./"– Start Bagels with data at the current directorybagels locate database– Find database file pathbagels locate config– Find config file path
For the best experience, use modern terminals like Ghostty on MacOS or Windows Terminal on Windows.
Upgrade Process
Update Bagels with the following command:
uv tool upgrade bagels
Development Setup
git clone https://github.com/EnhancedJax/Bagels.git cd Bagels uv run pre-commit install mkdir instance uv run bagels --at "./instance/" uv run textual run --dev "./src/bagels/textualrun.py" uv run textual console -x SYSTEM -x EVENT -x DEBUG -x INFO
Use the black formatter for code formatting.
Roadmap
- Budgeting Features
- Enhanced Insight Displays
- Daily Check-Ins
- Pagination for Records
Backlog Features
- Processing Status for Transactions
- Record Flags for Future Insights
- Code Review and Repayment Reminders
- Add Tests and Bank Sync
Attributions
Bagels is heavily inspired by other posting methods and built with Textual. The name ‘Bagels’ comes from a personal love for bagels.