Skip to content
an extensible tool to keep personal accounts in order and to study past spending habits
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


bal(1)			    General Commands Manual			bal(1)
bal - for keeping accounts in order and studying past spending habits

       bal [-f FILE] [-l CODE] [-s] [-n] [COMMAND]

       bal keeps track of personal accounts and spending.

       Text  entry at the bal console follows standard line editor conventions
       (it has Emacs-like key bindings, uses the  GNU  readline  library).  To
       cancel a command, type: Control-C.

       bal's main interactive commands are:

       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 bal/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-

       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

       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".  bal loads the Scheme
       functions in the /etc/bal.scm file at startup. These  functions	imple-
       ment the commands above.

       Of  particular  interest for developing your own functions in Scheme is
       the function bal/call which can be used to make Scheme functions inter-

       The  saved file is simply a tar archive of CSV files that record trans-
       actions and characteristics of accounts.  These files  are  human-read-

       The prompt is whatever is returned by the evaluating the Scheme expres-
       sion "(bal/prompt)" so redefining this  function  will  customize  your

       -f FILE
	      load accounts from FILE

       -l CODE
	      execute Scheme code in file CODE

       -s     do not prompt to save on exit, will not save on exit

       -n     do not load ~/.balrc.scm

	      execute  COMMAND	as  if it was entered at bal's prompt and then
	      exit.  This enables you to, for example, type "bal t" to enter a
	      new  transaction (supposing your main bal file is loaded in your

       bal executes Scheme code in ~/.balrc.scm when it starts up if the  file
       is present.

       bal    start  the  bal  interpreter  and  execute  any  Scheme  code in
	      ~/.balrc.scm (potentially including code to load data from a de-
	      fault file).

       bal -f myaccounts.btar
	      load the file myaccounts.btar from the current directory.

       bal -s v
	      quits  and  exists  after  displaying  version  number  (without
	      prompting to save data).

       bal aa displays	prompts  to   add   new   account   after   evaluating
	      ~/.balrc.scm and then exits (prompting to save)

       bal t  displays	 prompts  to  add  new	transaction  after  evaluating
	      ~/.balrc.scm and then exits (prompting to save)

       bal -s la
	      displays current account balances and quits without prompting to

       bal -f myaccounts.btar -l myscript.scm -s
	      Runs a script, presumably to modify myaccounts.btar, and exists.
	      bal can be run noninteractively in this way.

       Please report as an issue to

       Zach Flynn <>

       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				bal(1)
You can’t perform that action at this time.