Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
146 lines (109 sloc) 6.95 KB
Fork me on GitHub

Welcome to Ledger

Ledger is a powerful, double-entry accounting system that is accessed from the UNIX command-line. This may put off some users, as there is no flashy UI, but for those who want unparalleled reporting access to their data, there really is no alternative.

Here are some of the features of Ledger which set it apart from other accounting systems:

  • Ledger never creates or modifies your data. Your entries are kept in a text file that you maintain, and you can rest assured, no automated tool will ever change that data.

  • Ledger is 100% currency-agnostic. You can store multiple currencies in any account, convert between them, or even pay in one currency and receive change in another.

  • Ledger is international. UTF8 is accepted anywhere in data files, Ledger uses ISO format dates, attaches no meaning to the naming of accounts, and can accept data in either US or European decimal formats. It will report currencies back to you following the manner of your own entries.

  • Ledger uses a simple set of base commands which can be extended in countless ways. You can create monthly reports, average reports, check account balances, reconcile accounts, keep track of capital gains on stocks, etc.

Ledger is written by John Wiegley and released under the BSD license. It has also inspired several Ports to other languages. Have a listen to FLOSS Weekly 150: Ledger, recorded 2011/1/26!

Getting started

To get started with Ledger, add entries to a text file in Ledger’s own textual format. Here’s what an entry might look like:

2006/10/15 Exxon
    Expenses:Auto:Gas         $10.00

The amount of data required by Ledger is minimal. It figures out from looking at your data what you mean by it and how you want it reported back to you. Accounts are created as they appear; currencies are created as they’re referenced. Anywhere that a value can be calculated, you can leave it out — such as the balancing $-10.00 in the above entry. Here is a little more about Terminology.

Ledger is a double-entry accounting tool, meaning that all entries must balance. If an entry does not balance, it will cause an error and the report will not be generated. Ledger is always checking the accuracies of your entries at every run; you won’t ever run into problems with “unaccounted” sums in an account.

You use the ledger command line program to see the balance of your accounts, or the history of a particular account

ledger -f your-file.dat balance
ledger -f your-file.dat register Expenses


Ledger 2.6.3 Ledger 3.0 pre Manual, (PDF) Old manual, (PDF) New manual draft, (PDF) ledger (1) man page README README NEWS NEWS LICENSE LICENSE LICENSE-sha1 LICENSE-utfcpp

More docs:


Mail list

The ledger-cli mail list is for the discussion of issues pertaining to Ledger. Please join and contribute! Google Groups also supports RSS, if you prefer that. Or, if you’d rather read your messages over NNTP using a newsreader like Gnus, use the gmane newsgroup.

IRC channel

Usually the fastest way to get your questions answered is to visit us on IRC, where I can usually be found most days. We are on the #ledger channel on . My nick is “johnw”.

Reporting bugs

Please report bugs on Ledger’s Bugzilla.


The Ledger source is available on github.

Several people in the Open Source community have spent time creating Ledger binaries for specific platforms, listed below; if you discover others, please let me know. If you would like to have a binary hosted, please send an e-mail.

Platform Download link

Mac OS X (Snow Leopard) Windows GNU/Linux:   Debian   Ubuntu PPA (development snapshots)   Gentoo   Homebrew   CentOS 5 (64-bit) See below

Installation tips


For CentOS 5 users (64-bit only right now), create the file /etc/yum.repos.d/newartisans.repo with these contents:

name=New Artisans LLC $releasever - $basearch

Once this is done, run yum install ledger.