# BeanCount: Command-line Double-Entry Accounting

Contents

- Description
- Demo
- Download
- Documentation
- Copyright and License
- Author

# Description

A double-entry accounting system that uses a simple text file format as input. A few Python scripts are used to parse the contents of the file, for example, to serve the contents as a locally running web server. Scripts are provided to convert from OFX files into Ledger input format, and other formats (easily extensible).

Notes:

- The ideas and syntax is entirely inspired by John Wiegley's Ledger, and the syntax is pretty much compatible with it. Beancount's syntax is a subset of Ledger (a little more restrictive), with a few additional directives. You should probably read Ledger's documentation in order to you use Beancount.
- Beancount is a Python version of Ledger, and thus is much slower, but also easier to extend (the code is pure Python).
- Beancount provides a simple web front to view the contents of the database, so you don't have to parse the entire file everytime you want to view a different account (this helps mitigate the fact that parsing is comparatively slow).
- New features can be expected to flow between Ledger and Beancount, as the authors have been in touch and have discussed ways of doing integration. In particular, Ledger is being augmented with the ability to export its parser with a binding for the Python language, so Beancount's parser may eventually use the Ledger parser for speed, and Ledger may eventually leverage Beancount's web front-end.

Important

This code works; as a testimony, I'm using it personally, actively to manage my own finances and my company's finances, and thus I'm running it and its components at the very least a few times montly. If you have any problem using it, please let me know. This software should be in a functional state; this is not abandonware, nor is it prototyping code either. You should be able to use beancount to do "real work" (I do). [Updated on 2009-07]

# Demo

There is a demonstration ledger input file under the examples directory. To run a local web server on the example demo file, cd into `examples` and run the demo scripts.

- Demo Ledger input file
- Demo Output

# Download

You can obtain the Ledger source from Furius' public Mercurial repository, by typing the following command:

    hg clone https://hg.furius.ca/public/beancount

# Documentation

- CHANGES
- TODO

# Copyright and License

Copyright (C) 2007-2008 Martin Blais. All Rights Reserved.

This code is distributed under the GNU General Public License;

# Author

Martin Blais <blais@furius.ca>