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.