mirror of
https://github.com/simonmichael/hledger.git
synced 2024-09-19 18:29:36 +03:00
doc: README cleanup
Updates inspired by some feedback from README reviewer Lars Wirzenius. ("I like that the README starts with an explanation of what the project is all about. I like that the README is short and to the point. I like that the license is stated explicitly. I feel that the README doesn't really present the whole plain text accounting concept very well, though. I realize that linked home page goes into that much more, but it might be worth add a short example of a ledger input file, and a sample output, to the README.")
This commit is contained in:
parent
237587c162
commit
d3ef6df75a
168
README.md
168
README.md
@ -1,44 +1,130 @@
|
|||||||
# hledger project README
|
# hledger
|
||||||
|
## Robust, intuitive plain text accounting
|
||||||
|
[![license](https://img.shields.io/badge/license-GPLv3+-brightgreen.svg)](https://www.gnu.org/licenses/gpl.html)
|
||||||
|
[![on hackage](https://img.shields.io/hackage/v/hledger.svg?label=hackage&colorB=green)](https://hackage.haskell.org/package/hledger)
|
||||||
|
[![](https://repology.org/badge/version-for-repo/stackage_lts/hledger.svg)](https://repology.org/metapackage/hledger)
|
||||||
|
[![](https://repology.org/badge/version-for-repo/stackage_nighly/hledger.svg)](https://repology.org/metapackage/hledger)
|
||||||
|
[![github issues](https://img.shields.io/github/issues/simonmichael/hledger.svg)](http://bugs.hledger.org)
|
||||||
|
|
||||||
## lightweight, portable, dependable accounting tools
|
Welcome! This a brief intro to hledger. For a more detailed version, see the home page: **<https://hledger.org>**
|
||||||
|
|
||||||
hledger is a computer program for easily tracking money, time, or other commodities,
|
hledger is lightweight, cross platform, multi-currency, double-entry accounting software.
|
||||||
on unix, mac and windows (and web-capable mobile devices, to some extent).
|
It lets you track money, investments, cryptocurrencies, invoices, time, inventory and more,
|
||||||
|
in a safe, future-proof plain text data format with full version control and privacy.
|
||||||
It is first a command-line tool, but there are also terminal and
|
|
||||||
web interfaces, and a Haskell library for building your own
|
|
||||||
programs and scripts (hledger is written in Haskell). hledger was
|
|
||||||
inspired by and is largely compatible with Ledger. hledger is free
|
|
||||||
software available under the GNU General Public License v3+.
|
|
||||||
|
|
||||||
hledger aims to help both computer experts and regular folks
|
hledger aims to help both computer experts and regular folks
|
||||||
to gain clarity and control in their finances and time management,
|
gain clarity in their finances and time management.
|
||||||
but currently it is a bit more suited to techies.
|
Though the UIs are basic, hledger can model any accounting situation and provide precise, clear reports.
|
||||||
I use it every day to:
|
It is reliable, quick, and backed by the highly supportive [Plain Text Accounting](https://plaintextaccounting.org) ecosystem.
|
||||||
|
Using it is an excellent way to learn double entry accounting.
|
||||||
|
|
||||||
- track spending and income
|
Compared to [other PTA apps](https://plaintextaccounting.org/#software),
|
||||||
- see time reports by day/week/month/project
|
hledger is actively maintained, with regular releases,
|
||||||
- get accurate numbers for client billing and tax filing
|
and a strong focus on being easy to use and practical for everyday accounting.
|
||||||
- track invoices
|
|
||||||
|
|
||||||
Though limited in features, hledger is lightweight, usable and reliable.
|
More features:
|
||||||
For some, it is a simpler, less distracting, more future-proof alternative to Quicken or GnuCash.
|
- Installs easily on unix, mac or windows
|
||||||
|
- Complete, built-in documentation in multiple formats, beginner videos, tutorials etc.
|
||||||
|
- Multiple UIs: command-line, terminal, web, mobile, editors/IDEs
|
||||||
|
- Good at importing and exporting CSV; also outputs text/HTML/JSON/SQL
|
||||||
|
- A robust, general, well-specified multi-currency accounting engine
|
||||||
|
- Fast, analysing 25k transactions per second on a macbook air m1
|
||||||
|
- Accurate to 255 decimal places
|
||||||
|
- Supports your preferred account names, currencies, number formats
|
||||||
|
- Inspired by and partly compatible with Ledger CLI; interconvertible with Beancount
|
||||||
|
- Scriptable by CLI, HTTP or API, with plenty of examples
|
||||||
|
- Clean Haskell codebase, continually improved since 2007, with $100 regression bounties
|
||||||
|
- Free software licensed under GPLv3+.
|
||||||
|
|
||||||
For more, see the home page: **<https://hledger.org>**
|
## Examples
|
||||||
|
|
||||||
## Sponsorship
|
I use hledger to:
|
||||||
|
- track income and spending, sometimes with budgets
|
||||||
|
- see time reports by day/week/month/project
|
||||||
|
- track reimbursables, invoices and payments
|
||||||
|
- predict cashflow and account balances
|
||||||
|
- get accurate numbers for tax filing
|
||||||
|
- research past events
|
||||||
|
|
||||||
Your support, large or small, helps keep this project strong!\
|
Here's an example of the journal file format:
|
||||||
See also **<https://hledger.org#sponsorship>**.
|
```journal
|
||||||
|
2022-01-01 opening balances as of this date
|
||||||
|
assets:bank:checking $1000
|
||||||
|
assets:bank:savings $2000
|
||||||
|
assets:cash $100
|
||||||
|
liabilities:creditcard $-50
|
||||||
|
equity:opening/closing balances
|
||||||
|
|
||||||
<!-- keep synced with index.md: -->
|
2022-01-15 market
|
||||||
|
expenses:food $50
|
||||||
|
assets:cash $-50
|
||||||
|
|
||||||
Sponsor Simon (project leader):
|
2022-02-01 GOODWORKS CORP
|
||||||
|
assets:bank:checking $1000
|
||||||
|
income:salary $-1000
|
||||||
|
```
|
||||||
|
and some simple reports:
|
||||||
|
```cli
|
||||||
|
$ hledger bs
|
||||||
|
Balance Sheet 2022-02-15
|
||||||
|
|
||||||
|
|| 2022-02-15
|
||||||
|
========================++============
|
||||||
|
Assets ||
|
||||||
|
------------------------++------------
|
||||||
|
assets:bank:checking || $2000
|
||||||
|
assets:bank:savings || $2000
|
||||||
|
assets:cash || $50
|
||||||
|
------------------------++------------
|
||||||
|
|| $4050
|
||||||
|
========================++============
|
||||||
|
Liabilities ||
|
||||||
|
------------------------++------------
|
||||||
|
liabilities:creditcard || $50
|
||||||
|
------------------------++------------
|
||||||
|
|| $50
|
||||||
|
========================++============
|
||||||
|
Net: || $4000
|
||||||
|
```
|
||||||
|
```cli
|
||||||
|
$ hledger is --monthly
|
||||||
|
Income Statement 2022-01-01..2022-02-28
|
||||||
|
|
||||||
|
|| Jan Feb
|
||||||
|
===============++=============
|
||||||
|
Revenues ||
|
||||||
|
---------------++-------------
|
||||||
|
income:salary || 0 $1000
|
||||||
|
---------------++-------------
|
||||||
|
|| 0 $1000
|
||||||
|
===============++=============
|
||||||
|
Expenses ||
|
||||||
|
---------------++-------------
|
||||||
|
expenses:food || $50 0
|
||||||
|
---------------++-------------
|
||||||
|
|| $50 0
|
||||||
|
===============++=============
|
||||||
|
Net: || $-50 $1000
|
||||||
|
```
|
||||||
|
|
||||||
|
More examples: <https://hledger.org/#how-to-get-started>
|
||||||
|
|
||||||
|
## Sponsors
|
||||||
|
|
||||||
|
hledger is brought to you by [Simon Michael](http://joyful.com)
|
||||||
|
and [140+ contributors](CREDITS.html).
|
||||||
|
After enjoying some personal or organisational success with hledger,
|
||||||
|
you might want to become one of the generous sponsors helping to sustain this work.
|
||||||
|
(More info: <https://hledger.org/sponsor.html>)
|
||||||
|
|
||||||
|
<!-- keep synced with sponsor.md: -->
|
||||||
|
|
||||||
|
### Sponsor Simon (project leader)
|
||||||
[![github](https://img.shields.io/badge/Sponsor_on-Github-limegreen "Sponsor the project leader via Github")](https://github.com/sponsors/simonmichael)
|
[![github](https://img.shields.io/badge/Sponsor_on-Github-limegreen "Sponsor the project leader via Github")](https://github.com/sponsors/simonmichael)
|
||||||
[![liberapay](https://img.shields.io/badge/Sponsor_on-Liberapay-limegreen "Sponsor the project leader via Liberapay")](https://liberapay.com/simonmichael)
|
[![liberapay](https://img.shields.io/badge/Sponsor_on-Liberapay-limegreen "Sponsor the project leader via Liberapay")](https://liberapay.com/simonmichael)
|
||||||
[![paypal](https://www.paypal.com/en_US/i/btn/x-click-but04.gif "Give one time or recurringly via Paypal")](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5J33NLXYXCYAY)
|
[![paypal](https://www.paypal.com/en_US/i/btn/x-click-but04.gif "Give one time or recurringly via Paypal")](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5J33NLXYXCYAY)
|
||||||
|
|
||||||
Sponsor the hledger project as an organisation:
|
### Organisations sponsoring hledger
|
||||||
[![OpenCollective](https://opencollective.com/hledger/sponsors/badge.svg)][oc contributors] <!-- wrong count --> \
|
[![OpenCollective](https://opencollective.com/hledger/sponsors/badge.svg)][oc contributors] <!-- wrong count --> \
|
||||||
[![](https://opencollective.com/hledger/sponsor/0/avatar.svg)](https://opencollective.com/hledger/sponsor/0/website)
|
[![](https://opencollective.com/hledger/sponsor/0/avatar.svg)](https://opencollective.com/hledger/sponsor/0/website)
|
||||||
[![](https://opencollective.com/hledger/sponsor/1/avatar.svg)](https://opencollective.com/hledger/sponsor/1/website)
|
[![](https://opencollective.com/hledger/sponsor/1/avatar.svg)](https://opencollective.com/hledger/sponsor/1/website)
|
||||||
@ -51,7 +137,7 @@ Sponsor the hledger project as an organisation:
|
|||||||
[![](https://opencollective.com/hledger/sponsor/8/avatar.svg)](https://opencollective.com/hledger/sponsor/8/website)
|
[![](https://opencollective.com/hledger/sponsor/8/avatar.svg)](https://opencollective.com/hledger/sponsor/8/website)
|
||||||
[![](https://opencollective.com/hledger/sponsor/9/avatar.svg)](https://opencollective.com/hledger/sponsor/9/website)
|
[![](https://opencollective.com/hledger/sponsor/9/avatar.svg)](https://opencollective.com/hledger/sponsor/9/website)
|
||||||
|
|
||||||
Sponsor the hledger project as an individual:
|
### Individuals sponsoring hledger
|
||||||
[![OpenCollective](https://opencollective.com/hledger/backers/badge.svg)][oc contributors] <!-- wrong count --> \
|
[![OpenCollective](https://opencollective.com/hledger/backers/badge.svg)][oc contributors] <!-- wrong count --> \
|
||||||
[![](https://opencollective.com/hledger/backer/0/avatar.svg)](https://opencollective.com/hledger/backer/0/website)
|
[![](https://opencollective.com/hledger/backer/0/avatar.svg)](https://opencollective.com/hledger/backer/0/website)
|
||||||
[![](https://opencollective.com/hledger/backer/1/avatar.svg)](https://opencollective.com/hledger/backer/1/website)
|
[![](https://opencollective.com/hledger/backer/1/avatar.svg)](https://opencollective.com/hledger/backer/1/website)
|
||||||
@ -74,26 +160,18 @@ Sponsor the hledger project as an individual:
|
|||||||
[![](https://opencollective.com/hledger/backer/18/avatar.svg)](https://opencollective.com/hledger/backer/18/website)
|
[![](https://opencollective.com/hledger/backer/18/avatar.svg)](https://opencollective.com/hledger/backer/18/website)
|
||||||
[![](https://opencollective.com/hledger/backer/19/avatar.svg)](https://opencollective.com/hledger/backer/19/website)
|
[![](https://opencollective.com/hledger/backer/19/avatar.svg)](https://opencollective.com/hledger/backer/19/website)
|
||||||
[![](https://opencollective.com/hledger/backer/20/avatar.svg)](https://opencollective.com/hledger/backer/20/website)
|
[![](https://opencollective.com/hledger/backer/20/avatar.svg)](https://opencollective.com/hledger/backer/20/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/21/avatar.svg)](https://opencollective.com/hledger/backer/21/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/22/avatar.svg)](https://opencollective.com/hledger/backer/22/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/23/avatar.svg)](https://opencollective.com/hledger/backer/23/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/24/avatar.svg)](https://opencollective.com/hledger/backer/24/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/25/avatar.svg)](https://opencollective.com/hledger/backer/25/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/26/avatar.svg)](https://opencollective.com/hledger/backer/26/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/27/avatar.svg)](https://opencollective.com/hledger/backer/27/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/28/avatar.svg)](https://opencollective.com/hledger/backer/28/website)
|
||||||
|
[![](https://opencollective.com/hledger/backer/29/avatar.svg)](https://opencollective.com/hledger/backer/29/website)
|
||||||
|
|
||||||
Bounties for specific tasks:
|
### Sponsor specific tasks
|
||||||
[![all bounties](https://img.shields.io/badge/github-All_bountied_issues-30bae8 "all bountied issues, bountysource and otherwise")](https://github.com/simonmichael/hledger/issues?q=label:bounty)
|
[![all bounties](https://img.shields.io/badge/github-All_bountied_issues-30bae8 "all bountied issues, bountysource and otherwise")](https://github.com/simonmichael/hledger/issues?q=label:bounty)
|
||||||
[![bountysource bounties](https://api.bountysource.com/badge/team?team_id=75979&style=bounties_received "issues bountied via bountysource")](https://www.bountysource.com/teams/hledger)
|
[![bountysource bounties](https://api.bountysource.com/badge/team?team_id=75979&style=bounties_received "issues bountied via bountysource")](https://www.bountysource.com/teams/hledger)
|
||||||
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
[![license](https://img.shields.io/badge/license-GPLv3+-brightgreen.svg)](http://www.gnu.org/licenses/gpl.html)
|
|
||||||
[![hledger CI](https://github.com/simonmichael/hledger/workflows/hledger%20CI/badge.svg)](https://github.com/simonmichael/hledger/actions)
|
|
||||||
[![on hackage](https://img.shields.io/hackage/v/hledger.svg?label=hackage&colorB=green)](http://hackage.haskell.org/package/hledger)
|
|
||||||
[![](https://img.shields.io/hackage-deps/v/hledger-lib.svg?label=hledger-lib+bounds)](http://packdeps.haskellers.com/feed?needle=hledger-lib)
|
|
||||||
[![](https://img.shields.io/hackage-deps/v/hledger.svg?label=hledger+bounds)](http://packdeps.haskellers.com/feed?needle=hledger)
|
|
||||||
[![](https://img.shields.io/hackage-deps/v/hledger-ui.svg?label=hledger-ui+bounds)](http://packdeps.haskellers.com/feed?needle=hledger-ui)
|
|
||||||
[![](https://img.shields.io/hackage-deps/v/hledger-web.svg?label=hledger-web+bounds)](http://packdeps.haskellers.com/feed?needle=hledger-web)
|
|
||||||
[![](https://repology.org/badge/version-for-repo/stackage_lts/hledger.svg)](https://repology.org/metapackage/hledger)
|
|
||||||
[![](https://repology.org/badge/version-for-repo/stackage_nighly/hledger.svg)](https://repology.org/metapackage/hledger)
|
|
||||||
[![github issues](https://img.shields.io/github/issues/simonmichael/hledger.svg)](http://bugs.hledger.org)
|
|
||||||
|
|
||||||
|
|
||||||
[oc contributors]: https://opencollective.com/hledger#section-contributors
|
[oc contributors]: https://opencollective.com/hledger#section-contributors
|
||||||
|
Loading…
Reference in New Issue
Block a user