A full desktop finance app built solo with PyQt6, pandas, and matplotlib — GUI development, data handling, and live charting, plus optional AI-powered insights via the OpenAI API.
Track income, expenses, savings, accounts, and categories with a clean dashboard and charts. Your session is autosaved and restored automatically, so you can close the app and pick up right where you left off. Optional AI features provide insights, budget advice, fraud checks, chat, and smart category suggestions.
- Import one or multiple CSV files at once
- Manual transaction entry
- Multi-account support
- Category management
- Financial dashboard cards (income, expenses, savings, rate)
- Income vs expense trend chart
- Expense distribution pie chart
- Savings goal progress tracking
- Transaction table view
- Export charts as images
- Autosave to
autosave.csv, restored automatically on the next launch - Editable savings goal, right from the dashboard
- Optional AI insights, budget advice, fraud check, chat, and category suggestion
- Automatic update check (version.json)
pip install -r requirements.txtpython main.pyThe app accepts CSV files with these columns:
Date,Type,Category,Account,Amount,Description
2025-01-01,Income,Salary,Bank,3000,Monthly salary
2025-01-02,Expense,Food,Cash,50,Groceries
2025-01-03,Expense,Transport,Credit Card,20,TaxiRequired fields:
Date(YYYY-MM-DD)Type(IncomeorExpense)Amount(numeric)
Optional fields:
Category(defaults toOther)Account(defaults to the first account)Description(optional)
The repo ships with a sample autosave.csv (example data) so you can try the app immediately — feel free to delete it, the app will start fresh and create a new one.
Create ai_config.json next to main.py:
{
"api_key": "YOUR_OPENAI_API_KEY",
"model": "gpt-4o-mini"
}Or set environment variables:
setx OPENAI_API_KEY "your-key"
setx OPENAI_MODEL "gpt-4o-mini"Optional for custom endpoints:
setx OPENAI_BASE_URL "https://your-endpoint"Notes:
- Keep
ai_config.jsonout of source control (already in.gitignore). - AI calls time out after ~20s and show an error if network or key is invalid.
- Load CSV: Import one or multiple files
- Save CSV: Export all transactions
- Add: Manually add a transaction
- Manage Categories / Accounts: Add or remove list items
- AI buttons: Get insights, budget advice, fraud checks, chat answers, or category suggestions
- Export Chart: Save charts as PNG
- Python 3.9+
- PyQt6
- pandas
- matplotlib
- openai (optional for AI features)