029b59093b
CSV rules files can now be read directly, eg you have the option of writing `hledger -f foo.csv.rules CMD`. By default this will read data from foo.csv in the same directory. But you can also specify a different data file with a new `source FILE` rule. This has some convenience features: - If the data file does not exist, it is treated as empty, not an error. - If FILE is a relative path, it is relative to the rules file's directory. If it is just a file name with no path, it is relative to ~/Downloads/. - If FILE is a glob pattern, the most recently modified matched file is used. This helps remove some of the busywork of managing CSV downloads. Most of your financial institutions's default CSV filenames are different and can be recognised by a glob pattern. So you can put a rule like `source Checking1*.csv` in foo-checking.csv.rules, periodically download CSV from Foo's website accepting your browser's defaults, and then run `hledger import checking.csv.rules` to import any new transactions. The next time, if you have done no cleanup, your browser will probably save it as something like Checking1-2.csv, and hledger will still see that because of the * wild card. You can choose whether to delete CSVs after import, or keep them for a while as temporary backups, or archive them somewhere. |
||
---|---|---|
.github | ||
.sandstorm | ||
.vscode/notebooks | ||
bin | ||
checks | ||
doc | ||
docker | ||
docker-static-arm32v7 | ||
examples | ||
hledger | ||
hledger-install | ||
hledger-lib | ||
hledger-ui | ||
hledger-web | ||
tools | ||
.ci | ||
.ctags | ||
.dockerignore | ||
.editorconfig | ||
.ghci | ||
.gitignore | ||
.hlint.yaml | ||
.mailmap | ||
.version | ||
azure-pipelines.yml | ||
bake | ||
bench-ledger.sh | ||
bench.sh | ||
cabal.project | ||
CHANGES.md | ||
dev.hs | ||
dir | ||
Dockerfile | ||
hie-stack.yaml | ||
LICENSE | ||
Makefile | ||
Makefile.helpsys | ||
README.md | ||
Shake.hs | ||
stack8.10.yaml | ||
stack9.0.yaml | ||
stack9.2.yaml | ||
stack9.6.yaml | ||
stack.yaml |
hledger
Robust, intuitive plain text accounting
Welcome! This a brief intro to hledger. For a more detailed version, see the home page: https://hledger.org
hledger is lightweight, cross platform, multi-currency, double-entry accounting software. 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.
hledger aims to help both computer experts and regular folks gain clarity in their finances and time management. Though the UIs are basic, hledger can model any accounting situation and provide precise, clear reports. It is reliable, quick, and backed by the highly supportive Plain Text Accounting ecosystem. Using it is an excellent way to learn double entry accounting.
Compared to other PTA apps, hledger is actively maintained, with regular releases, and a strong focus on being easy to use and practical for everyday accounting.
More features:
- 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+.
Examples
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
Here's an example of the journal file format:
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
2022-01-15 market
expenses:food $50
assets:cash $-50
2022-02-01 GOODWORKS CORP
assets:bank:checking $1000
income:salary $-1000
and some simple reports:
$ 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
$ 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 and screenshots: https://hledger.org/#how-to-get-started
Funding
hledger is brought to you by Simon Michael, 140+ contributors, and the generous financial sponsors below.
After enjoying some personal or organisational success with hledger, you might want to become one of them, to help support this work. It's easy! Please see https://hledger.org/sponsor.html for details.
Organisational sponsors
Individual sponsors
If your logo/avatar needs to be added, let me know!