A cross-platform CLI expense tracker for users who prefer managing their finances directly from the terminal.
dot-spend is a minimalist, keyboard‑driven tool designed for speed, clarity, and compatibility. It runs seamlessly on Windows (PowerShell/CMD) and Linux systems, providing an efficient way to record, review, and export expenses without ever leaving the command line.
- Zero Friction Entry: Add expenses quickly through simple command flags.
- Terminal Graphs: View spending patterns using ASCII bar charts displayed directly in the console.
- Delete by ID: Remove entries easily by referencing their list ID.
- Excel‑Ready Exports: Output your data to CSV for analysis in Excel or Google Sheets.
- Widget Integration: Output formatted data for Polybar, Waybar, Rainmeter, or custom JSON‑based widgets.
- Smart Storage: Automatically follows XDG standards on Linux and uses AppData on Windows.
dot-spend can be used either as a standalone application or run directly from source.
This produces a single executable file that runs without requiring Python.
- Clone the repository:
git clone https://github.com/yourusername/dot-spend.git
cd dot-spend
- Install dependencies:
pip install -r requirements.txt
- Build the executable using PyInstaller:
pyinstaller --onefile --name spend --hidden-import=jaraco.text main.py
- Add the resulting binary to your system PATH.
Windows:
- Create a folder such as
C:\Tools. - Move
dist\spend.exeinto it. - Add that folder to the System PATH.
Linux:
sudo mv dist/spend /usr/local/bin/spend
- Verify installation:
spend list
For development or modification:
- Clone and install dependencies as shown above.
- Execute commands using Python:
python main.py list
Usage: spend [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
add Add a new expense.
delete Delete an expense by its ID.
export Export data to CSV.
graph Visualize spending.
list Display recorded expenses.
nuke Remove all stored data.
status Show daily totals.
spend add --amount 12.50 --category "Food" --note "Lunch"
Short format:
spend add -a 12.50 -c "Food" -n "Lunch"
spend list
spend list --last 20
spend graph
spend delete 2
spend export
spend export C:\Users\You\Desktop\budget.csv
spend status
spend status --style polybar
spend status --style json
Windows: C:\Users\You\AppData\Local\Personal\dot-spend\expenses.json
Linux: ~/.local/share/dot-spend/expenses.json
To reset all data:
spend nuke