Chat with your South African bank statements powered by local LLM
# BankBot
A local-first application that parses South African bank statement PDFs, auto-classifies
transactions using a local LLM, and lets you explore your spending through a
modern web UI or CLI chat interface. All data stays on your machine.
## Supported Banks
- FNB (First National Bank) - PDF parsing
- Investec Private Bank - PDF parsing + Programmable Banking API
Want to add support for another bank? See Adding Support for New Banks.
> [!WARNING]
> This application processes sensitive financial data. **Run locally only** - do
> not deploy to cloud services or expose to the internet. Your bank statements
> contain personal information that should never leave your machine.
> [!IMPORTANT]
> **DISCLAIMER**
>
> BankBot is an independent, open-source project. It is **not affiliated with,
> endorsed by, or sponsored by** FNB, Investec, or any other financial
> institution. All bank names, logos, and trademarks are the property of their
> respective owners and are referenced only for interoperability.
>
> Transaction classifications, totals, and chat responses are produced by a
> local language model and **may be inaccurate, incomplete, or out of date**.
> Nothing in this tool constitutes financial, tax, accounting, or legal advice.
> Always verify figures against your official bank statements before making
> any financial decision.
>
> This software is provided "as is", without warranty of any kind. You assume
> all risk associated with its use, including but not limited to data loss,
> misclassification, and reliance on any generated output.
## Features
- **PDF Parsing**: Extract transactions from FNB and Investec bank statement PDFs
- **Investec API**: Fetch transactions directly from the Investec Programmable Banking API
- **Auto-Classification**: Uses local LLM to categorize transactions (doctor, groceries, utilities, etc.)
- **Chat Interface**: Ask natural language questions about your spending
- **REST + WebSocket API**: Integrate with frontend applicati …