Sage
Be your own accountant, without the stress.
Automatically download transactions from your banks and credit cards, then categorize them based on your own rules.
Features
- Automatically sync your ledger with banks and credit card institutions
- Uses double-entry bookkeeping to keep things in check
- Can deploy as a single binary or as a Docker container
For future features, see below
Install
To install, run go get github.com/johnstarich/sage
Usage
For available options, run sage -help
Sage requires a ledger (plain text accounting) file, an ofxclient.ini credentials file, and an hledger rules file.
The ledger will store all of your transactions in plain text so you can easily read it with any text editor. It also supports [several other tools][ledger tools] that can generate reports based on your ledger.
The ofxclient.ini file is currently generated by the ofxclient CLI, but only supports passwords in the clear right now. (Plans for encrypted password stores coming in the future.)
The rules file is a format designed by the hledger project for importing CSVs. This file will help Sage automatically categorize incoming transactions into the appropriate accounts for your ledger. After a transaction has been imported, it is assigned an account (category) from this file. To follow convention, only include rules to change the account2 field or a comment. While changing account1 is supported, it will likely cause problems with Sage since account1 is assumed to be the source institution of the transaction.
Future work
- Web UI to view transactions, accounts, and balances
- Budget tracking (maybe add over-budget notifications)
- Automatic version control to reduce risk of data loss
- Smarter categorization by training on current ledger
- Web UI to add credentials for new accounts