beancount: Double-Entry Accounting from Text Input

Contents

Description

A double-entry bookkeeping computer language, that lets you define financial transaction records in a text file, read them into memory, and generate a variety of output reports from a web interface. This project

Project Status

Beancount v2 is now the only beancount as of summer 2013. It's a full rewrite, stable and I'm using only this version now, it is maintained, and I have 7-8 years worth of my personal data relying on it and use it every week or two. It works.

Dependencies

For users:

For developers:

Installation

Development Installation

If you just want to try it out without installing, build the extension in-place like this:

python3 setup.py build_ext -i

Then add the clone's path to the PYTHONPATH variable:

export PYTHONPATH=..../beancount/src/python

You should be able to run the executables under ..../beancount/bin

Setup Installation

If you want to install this in your Python installation, try this:

sudo python3 setup.py install

Or, equivalently:

sudo pip3 setup.py install

These commands should build the extension module and install Beancount in your Python library path.

Download

You can obtain the source code from a Mercurial repository, found at:

http://hg.furius.ca/public/beancount/

Download it like this:

hg clone --insecure http://hg.furius.ca/public/beancount/

(Use the --insecure flag because I sometimes have a self-signed SSL certificate on my server.)

This is the authoritative location for the latest version. I don't use github--I roll my own Mercurial server. github clones are probably out of date, clone from the URL above.

Click here for download instructions.

Documentation

I have yet to write full documentation, but basically, there are two main programs that you should care about:

bean-check: Checks for errors in a Beancount input file. bean-web: Starts a local web server so you can browse a Beancount ledger.

All the other are toy tools.

Check out the examples for now in order to get a sense of how this works. There is also a cheatsheet under doc/cheatsheet.org.

Author

Martin Blais <blais@furius.ca>