Software & Apps
Enhancedjax / Bagels: Powerful Cost Tracker living in your terminal.

Vigorous cost tracker living in your terminal.
The Bagels Expense Tracker for a Tui application where you can track and analyze your money flow, with features oriented at ease and complete interface.
Why is a terminal cost tracker?
I found it easier to create an attitude and trace properly tracking my expenses when I do it at the end of the day, instead of walking. So why not in the terminal where is it rapid, and can I store all my local data?
Some outstanding features include:
- Accounts, (sub) category, division, transfer, records
- Templates for recurring transactions
- Add Templated Record with Number Keys
- Clear Layout of Table with Togglable Splits
- Switch to and from external tracked accounts
- Navigate to “Jump Mode”.
- Fewer and fewer fields of entry per transaction, operated by transactions and input modes
- Insights
- Defaulted Keybindings and Defaults, such as the first day of the week
- Label, value and filter category
- Spend Designs / Graphs with Estimated Spend
- Budgeting tool for money storage and limiting unnecessary spending
Macos:
# 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 bagels
Windows:
# install uv:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# then follow instructions to add uv to path
uv tool install --python 3.13 bagels
Usage:
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 path
Recommended, but not necessary, using “modern” terminals to run the app. MacOS users are recommended to use Ghostty, and Windows users are recommended to use Windows terminal.
Upgrade:
git clone https://github.com/EnhancedJax/Bagels.git
cd Bagels
uv sync
uv run pre-commit install
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 logging
Please use the black formatter to format the code.
backlog:
https://repository-images.githubusercontent.com/881979565/70cad97a-5b1a-4171-b8b5-211ce571d7d3
2025-01-26 11:57:00