Skip to content

Download recent transactions from your financial institutions

Notifications You must be signed in to change notification settings

skhavari/cheddardog

Repository files navigation

cheddardog

a poor mans Mint, Personal Capital or other, in the making

  • Download transactions from your financial institutions
  • Save them in a json file
  • Generate an html spending summary report
  • Generate an html balance report for all accounts
  • Email the spending summary
  • Why?
    • Financial insights without spraying your data to third parties.
    • Enable 2 Factor auth on your financial accounts and they still work
    • Local db of balances & transactions to whatever you want

sample report

Supports

  • American Express
  • Bank of America (CA)
  • Etrade
  • Fidelity
  • Schwab
  • Vanguard
  • 2 Factor Auth: works, but you'll have to babysit the run and enter the 2nd factor manually

Download Ledger from Financial Institutions

credentials come from env vars, config is in config.json

  • update config.json with which accounts you want refreshed.
  • Set BOFA_USER and BOFA_PW env variable and/or
  • Set AMEX_USER and AMEX_PW env variable and/or
  • Set SCHWAB_USER and SCHWAB_PW env variable and/or
  • Set VANGUARD_USER and VANGUARD_PW env variable
  • npm install
  • npm run build
  • npm run refresh to generate ./out/txndb.json

Tip: Use 1password cli or set env vars without saving to history

To simplify repetitive execution, consider something like this in a .zshrc file

cheddardog() {
    eval $(op signin)

    echo 'Configuring AMEX...'
    TEMP=`op get item amex | jq -r "(.details.fields[1].value, .details.fields[2].value)"`
    export AMEX_USER=`echo $TEMP | head -1`
    export AMEX_PW=`echo $TEMP | tail -1`

    // .... more accounts credentials

    export SENDGRID_API_KEY=`op get item sendgrid_account_name | jq -r .details.fields[0].value`
}

Send Report

  • Set SENDGRID_API_KEY env variable
  • update config.json with the email sender (from) and receipients (to)
  • npm run send to generate ./out/index.html and have it emailed

Known issues

  • Only works on Mac OS (download dir is hardcoded, not tested on other platforms)

Basic design

design

Donate

paypal