Fython is a keyboard-first personal finance tracker with a full-screen terminal UI, optional desktop GUI, and an importer for HDFC bank statement exports.
This repository is prepared for public sharing: local statements, generated CSVs, personalization files, and app state are kept out of Git by default.
- Import HDFC statement exports from local
.csv,.xls,.xlsx, and.qiffiles - Normalize transactions into a single CSV for analysis and editing
- Auto-categorize spending into main and sub-categories
- Review anomalies such as duplicate groups, date coverage gaps, and spend outliers
- Browse transactions in a full-screen terminal UI with filters, search, and per-account views
- Python 3.10+
- macOS, Linux, or another environment that supports the dependencies in
requirements.txt
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtTerminal UI using the included demo dataset:
python -m fython --normalized sample_normalized.csv --data-dir dataTerminal UI with your own imported data:
python -m fythonDesktop GUI:
python -m fython guiImport-only mode:
python -m fython.main import- Put your own bank statement exports in
data/when running imports locally. data/,normalized.csv,example_data.csv, and local database/state files are ignored by Git.- The included
sample_normalized.csvis anonymized demo data for screenshots, testing, and first-run exploration.
python -m fython.main --help
python -m fython.main import --data-dir data --normalized normalized.csv
python -m fython.main --normalized sample_normalized.csv --data-dir data
python -m fython.main guirsync statements fromdata/nadd a new transactioneedit the selected transactionddashboardttransactionsmmonthly summaryccategory breakdownaanomalies and data-quality checks/searchEscclear searchqquit
fython/application packageconfig/categorization, scoring, and localization datadata/local-only import directory kept out of Gitsample_normalized.csvanonymized demo datasetUSAGE.mddetailed workflow notes
- The importer is designed for HDFC export formats.
- Running the app without a normalized CSV will open the UI with an empty dataset until you import data.
- The terminal UI is the default entrypoint when no subcommand is provided.