Actually, discovered ledger-cli here last week (thanks HN). It's amazing. Abstracting currency to the concept of commodity + price files makes it trivial to track your shares in 401k, and have the current market value print on the balance report. Handles lots. Recurring transactions support period specifications like "every two weeks starting on 2013/10/01". Maps payee's to accounts, and supports payee aliases. Pretty much anywhere you type a string you can also use a regex. State is a text file and the program does not alter state; just reads it and prints out a report. Finally, it provides a CSV convert which makes it easy to convert an export from your bank to a list of double entry transactions (./convert bk_download.csv >> trx.dat).