Powerful expense tracker that lives in your terminal.
Bagels expense tracker is a TUI application where you can track and analyse your money flow, with convenience oriented features and a complete interface.
Some notable features include:
accounts, (sub)categories, splits, transfers, records
You can track your money flow through different accounts, categories, and splits. You can also transfer money between your accounts and even outside tracked accounts.templates for recurring transactions
Create templates for frequently added transactions, so you can quickly add them without typing much.add templated record with number keys
Press a number key to quickly add a transaction based on a template.clear table layout with toggable splits
The clear table layout makes it easy to read and understand even the most complex transactions.transfer to and from outside tracked accounts
You can transfer money between your accounts and even outside tracked accounts."jump mode" navigation
Quickly navigate between different parts of the application.less and less fields to enter per transaction, powered by transactions and input modes
The input mode system helps you quickly enter transactions by automatically selecting the right field for you to enter. And with the transaction history, you can quickly see what you entered before.insights
Bagels provides insights in the form of charts and tables, to help you understand your money flow.customizable keybindings and defaults, such as first day of week
You can customize the keybindings and defaults of the application to fit your needs.Who is this for?
# install uv (package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# restart your terminal, or run the following command:
source $HOME/.local/bin/env # or follow instructions
# install bagels through uv
uv tool install --python 3.13 bagelsUsage:
bagels # start bagels
bagels --at "./" # start bagels with data stored at cd
bagels locate database # find database file path
bagels locate config # find config file pathIt is recommended, but not required, to use "modern" terminals to run the app. MacOS users are recommended to use iTerm2, and Windows users are recommended to use Windows Terminal.
git clone https://github.com/EnhancedJax/Bagels.git
cd Bagels
uv sync
mkdir instance
uv run bagels --at "./instance/" # runs app with storage in ./instance/
# alternatively, use textual dev mode to catch prints
uv run textual run --dev "./src/bagels/textualrun.py"
uv run textual console -x SYSTEM -x EVENT -x DEBUG -x INFO # for loggingPlease use the black formatter to format the code.
- [] More insight displays and analysis (by nature etc.)
- [] "Processing" bool on records for transactions in process
- [] Record flags for future insights implementation
- [] Repayment reminders
- [] Code review
- [] Daily check-ins
- [] Budgets
- [] Add tests
- [] Bank sync
