penny: Extensible double-entry accounting system

[ bsd3, console, finance, library ] [ Propose Tags ]

Penny is a double-entry accounting system. It is inspired by, but incompatible with, John Wiegley's Ledger, which is available at Installing this package with cabal install will install the executable program and the necessary libraries.

Non-features / disadvantages:

Unfortunately running "cabal install" will not install the documentation, so you will need to find the downloaded archive (usually in "$HOME.cabalpackageshackage.haskell.orgpenny") and unpack it to see the documentation. You will want to start by reading the README file, which will point you to additional documentation and how to install it if you wish.

[Skip to Readme]
Versions [faq],,,,,,,,,,
Dependencies action-permutations (==, anonymous-sums (==0.2.*), base (==4.6.*), bytestring (>=, cereal (>=, containers (>=, either (>=3.4.1), matchers (==0.14.*), multiarg (==0.24.*), ofx (==0.4.*), old-locale (>=, parsec (>=3.1.3), penny, prednote (==0.18.*), pretty-show (>=1.5), QuickCheck (>=2.5), rainbow (==0.6.*), random (>=, random-shuffle (==0.0.4), semigroups (>=0.9.2), split (>=0.2.2), text (>=, time (>=, transformers (>= [details]
License BSD-3-Clause
Copyright 2012-2014 Omari Norman.
Author Omari Norman
Category Console, Finance
Home page
Bug tracker
Source repo head: git clone git://
Uploaded by OmariNorman at 2014-02-14T02:23:55Z
Distributions NixOS:
Executables penny-reconcile, penny-reprint, penny-diff, penny-selloff, penny, penny-gibberish
Downloads 6979 total (114 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Successful builds reported [all 1 reports]





Build the penny-gibberish executable


Build the penny executable


Build the penny-selloff executable


Build the penny-diff executable


Build the penny-reprint executable


Build the penny-reconcile executable


turns on some debugging options


enables QuickCheck tests


enables imports that only Cabal makes available


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for penny-

[back to package description]

Welcome to Penny, double-entry accounting.

Penny's web pages are at:

Versions that contain at least one odd number are development versions. They are not posted to Hackage. I try to keep the master branch in compilable shape. However, development versions may not pass all tests, and in particular they may have out of date or incomplete documentation.

Releases consist of code of reasonable quality. All of the groups in their release numbers are even.

Penny is licensed under the MIT license, see the LICENSE file.

To install the latest release, "cabal install penny" should work. To also build test executables, run "cabal install -ftest penny". That will give you two additional executables: penny-test, which when run will test a bunch of QuickCheck properties, and penny-gibberish, which prints a random, but valid, ledger file.

To install the manual pages and the documentation, run "sh install-docs". It will install the manual pages to $PREFIX/share/man and the other documentation to $PREFIX/share/doc/penny. By default $PREFIX is /usr/local; you can change this by editing the install-docs file and changing the "PREFIX" variable.

To remove the manual pages and the documentation, run "sh install-docs remove."

The first thing you will want to look at is the manual page penny-basics(7). Then you will want to examine the starter.pny file in the examples directory, which will show you how to write a ledger file. penny-suite(7) will then direct you to other documentation that may interest you.

Though I do use this program to maintain all my financial records, it is still relatively new and no one but me has tested it. Use at your own risk.


cabal install will take care of all Haskell dependencies for you; however, there are also at least two C libraries you will need to install as Penny depends on other Haskell libraries that use these C libraries. You will need to make sure you have the "development" package installed if you use many Linux distributions; a few distributors, such as Arch, Slackware, and Gentoo, generally don't ship separate "development" packages so that won't apply to you. The C libraries are:

  • pcre - - on Debian GNU/Linux systems this package is called libpcre3-dev

  • curses - on GNU systems this is known as ncurses, Perhaps other, non-GNU curses implementations will work as well; I do not know. On Debian GNU/Linux systems, install libncurses5-dev.

Build Status