Next: , Up: Top   [Contents]


1 Introduction

Leas is an interactive, command-line program for managing personal finances. Its goal is to be an extensible tool for helping you keep track of your spending and to aid in making plans. I started Leas to keep track of my own finances. I found most personal finance packages had a long Time-to-Transact: it took time to boot up a GUI application that was not usually running and was outside my normal workflow. This small friction made it harder for me to build the habit of keeping track of my finances. I also found the programs difficult to extend. So I wrote Leas to solve this problem. I have been using it personally since October 2018 so it works for at least one user, but I’m sure it has lots of room for improvement: make suggestions!

Leas is a command-line program, but it is interactive unlike other command-line solutions. When you add a new transaction, Leas prompts you for the information it needs. You don’t have to remember any switches, what your accounts are named, etc. This design decision was made because of my experience trying other command-line solutions. I found it difficult to use solutions that required editing text files or repeatedly entering commands at the shell. I wanted something more interactive. Of course, you may have your own preference.

You can also extend and script Leas to automate different transactions or update the price of stocks, mutual funds, and ETF’s you own. You can do so because Leas’ command prompt is a (Guile) Scheme interpreter. The program’s prompt can execute arbitrary Scheme code (although it is mostly used to execute the pre-written commands included with the system). The one change Leas makes to Scheme’s syntax is that the outer-most expression does not need to be enclosed in parenthesis. This makes it more convenient to enter Leas’ commands which are, under the hood, Scheme functions that take no arguments but instead prompt the user for the data they need. Leas exposes the system it uses to prompt for arguments so you can write your own functions that obtain their arguments in this way.

No knowledge of Scheme or programming in general is needed to use Leas. The package includes all the functions I use personally. In other words, I use it without any programming in Scheme on a day-to-day basis. The only commands I have written that are not included in the main Leas distribution are some commands to fetch the price of various stocks I own.

Leas stores data in human-readable text files. The save files are particularly easy to analyze with statistical or spreadsheet software. The save file is a tar archive of comma-separated data files with data about your various transactions. You can open these files in R or Libreoffice and create charts of your past spending.

The standard Leas commands use a built-in function leas/call. This function lets the user enter the arguments to a given function interactively (it fills the role of interactive in Emacs, if you are familiar with it). These functions are documented in the reference manual to help you construct your own commands.

This manual has two parts. In the first, I describe the basic workflow for using Leas without any programming. This part is more in-depth than the manpage and gives some examples of how to add accounts and make transactions. It includes a tutorial that will help get you up-and-running and a reference of all interactive commands. In the second part, I describe all the Scheme functions exported by Leas. These functions are useful if you write your own Leas extensions.


Next: , Up: Top   [Contents]