Leas is an interactive, command-line program for managing personal finances. I have been using it to manage mine for about a year and a half now so it has been well-used... there shouldn't be too many bugs. Let me know if you find any issues!
To see a full manual for Leas in a tutorial format, see: http://zflynn.com/leas/index.html
The manpage is replicated below to give an overview of the basic commands. See the file INSTALL for installation instructions.
Leas(1) General Commands Manual Leas(1) NAME Leas - the little extensible accounting system - for keeping accounts in order and studying past spending habits leas [-f FILE] [-l FILE] [-s] [-n] [-v] [-h] [COMMAND] DESCRIPTION Leas keeps track of personal accounts and spending. Text entry at the Leas console follows standard line editor conventions (it has Emacs-like key bindings, uses the GNU readline library). To cancel a command, type: Control-C. Leas's main interactive commands are: spend spend money (transfer from asset to expense account) charge charge a purchase (transfer from liability to expense account) earn earn money (transfer from income to asset account) borrow borrow money (transfer from liability to asset account) aa add account at add transaction to current account et [n] edit transaction, optionally setting how many of the latest transaction numbers to list (any transaction can be chosen whether it is listed or not). lt list most recent transactions in current account (change number to list by modifying the variable leas/number-to-quick-list). ltn list most recent transactions in current account, prompt for number to list ea rename account da delete account dt delete transaction la list accounts and current balances lae list expense accounts and current balances lai list income accounts and current balances laa list asset accounts and current balances lal list liability accounts and current balances bt total accounts by type (income, expense, asset, liability) cex total across expenditure accounts cin total across income accounts cas total across asset accounts cli total across liability accounts cwo assets - liabilities cba current balance re list transactions in current account matching a regular expres- sion sa set current account ca display current account w write accounts to file r read saved accounts from file t transfer from one account to another dtr delete a transfer ltbd list transactions in current account by day, prompting for the first and last day to show v print version sd set "current" day, changing it allows you to see how account values have changed over time cd print current day out in YYYY-MM-DD format baod prints account balance over a sequence of days exod prints total expenses as of a sequence of days inod prints total income as of a sequence of days liod prints total liabilities as of a sequence of days wood prints net worth as of a sequence of days ttbd prints total of all transactions between a sequence of days ttre prints total of all transactions between a sequence of days matching a regular expression pl pay a loan, allows you to split a payment between a principal account (liability account) and an interest account (an expense account) fn print out current default save file csp Change the stock price of current account cal [opt] print out calendar, can pass a string to cal which acts like specifying options for the program cal at the command line p X print X, a Scheme expression q quit, unless -s specified, prompt to save before quit The command prompt is a full Guile Scheme interpreter except that you do not need to enclose the outer-most expression in parenthesis. Any valid Scheme code can be executed at the prompt. For example, typing display "hello" will print the text "hello". Leas loads the Scheme functions in the /usr/local/share/leas.scm file at startup. These func- tions implement the commands above. Of particular interest for developing your own functions in Scheme is the function leas/call which can be used to make Scheme functions in- teractive. The saved file is simply a tar archive of CSV files that record trans- actions and characteristics of accounts. These files are human-read- able. The prompt is whatever is returned by the evaluating the Scheme expres- sion "(leas/prompt)" so redefining this function will customize your prompt. OPTIONS --file,-f FILE load accounts from FILE --load,-l CODE execute Scheme code in file CODE --no-prompt-on-quit,-s do not prompt to save on exit, will not save on exit --no-rc,-n do not load ~/.leasrc.scm --help,-h print help message giving command line options. --version,-v print the version of Leas and copyright info COMMAND execute COMMAND as if it was entered at Leas's prompt and then exit. This enables you to, for example, type "leas t" to enter a new transaction (supposing your main Leas file is loaded in your ~/.leasrc.scm). FILES Leas executes Scheme code in ~/.leasrc.scm when it starts up if the file is present. EXAMPLES leas start the Leas interpreter and execute any Scheme code in ~/.leasrc.scm (potentially including code to load data from a default file). leas -f myaccounts.leas load the file myaccounts.leas from the current directory. leas -s v quits and exists after displaying version number (without prompting to save data). leas aa displays prompts to add new account after evaluating ~/.leasrc.scm and then exits (prompting to save) leas t displays prompts to add new transaction after evaluating ~/.leasrc.scm and then exits (prompting to save) leas -s la displays current account balances and quits without prompting to save. leas -f myaccounts.leas -l myscript.scm -s Runs a script, presumably to modify myaccounts.leas, and exists. Leas can be run noninteractively in this way. SEE ALSO BUGS Please report as an issue to https://github.com/flynnzac/leas AUTHOR Zach Flynn <firstname.lastname@example.org> This manpage is distributed under the GNU Free Documentation License version 1.3. See COPYING_DOC for the text of the license. There are no invariant sections. 2019-04-26 Leas(1)