plaintextaccounting.org
Plain text accounting is a way of doing
bookkeeping and accounting with plain text files and scriptable,
command-line-friendly software, such as Ledger, hledger, or
Beancount.
Welcome! This site collects the PTA community's tools, docs and
practices. It is maintained by Simon Michael (hledger project leader,
PTA fan) and contributors like you. We invite you to join the chat, or make edits to the github
repo.
Page contents:
News & discussion -
Articles & blog posts - Videos - Slideshows
Docs - Accounting - PTA app
docs - Comparisons - Intros - Cheatsheets - Cookbooks
Software - PTA apps - Editor
plugins - Data
import/conversion - Price fetching -
Data generation - Formatting - Reporting -
Time logging - UI,
console - UI, curses - UI, GUI - UI, web - UI, mobile - Library - Utilities - API
See also:
Newcomer
FAQ - What is this - Objections and concerns
Cookbook -
Getting
Started - General usage - Accounting
situations
Syntax quick
reference - Ledger - hledger - Beancount
Site news - 2023-11 wiki merged
into the website - commits
- contributors
- issues
Chat - Matrix
(~100) - all
matrix rooms - IRC (~50)
Mail lists - PTA apps' mail
lists
Reddit - /r/plaintextaccounting
Hacker News - stories
- comments
Mastodon - #plaintextaccounting
- #ledgercli - #hledger - #beancount
Twitter - #plaintextaccounting
- #ledgercli
- #hledger - #beancount - @LedgerTips
Stack Exchange - ledger-cli
tag - ledger-cli
search - hledger
tag - hledger
search
Other - This
Week In Hledger
A partial list, contributions welcome
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2006
PTA apps and additional helper tools, by category:
To do Plain Text Accounting, try one (or more) of the apps below.
Generally it's possible to migrate data between them.
Atom - language-ledger - ledger
Emacs - beancount-mode
- hledger-mode
- ledger-mode
(good for hledger also)
IntelliJ - Ledger
CLI
Nano - scopatz/nanorc
Sublime - sublime-ledger-syntax
TextMate - Ledger.tmbundle
VIM - vim-ledger - vim-beancount -
hledger-vim - cmp-beancount
VS Code - hledger-vscode - ledger
- vscode-beancount
- Ledger
and hledger have CSV
conversion built in. Also:
- bean-identify, bean-extract, bean-file - Beancount built-in
tools
- banks2ledger -
CSV to *ledger converter
- beancount-import web
app/framework for converting various formats to beancount (python)
- beancount-ynab
Import YNAB4 (legacy desktop-based version) into beancount
- beancount-ynab5
Import YNAB5 (cloud-based version) transactions into beancount
- buchhaltung
CSV/FinTS/HBCI/OFX to *ledger conversion/deduplication (haskell)
- Costflow convert one line
message to beancount/*ledger format
- csv2beancount CSV
to beancount converter (clojure)
- CSV2Ledger CSV to
*ledger converter (perl)
- double-entry-generator
Rule-based double-entry bookkeeping importer (from Alipay/WeChat/Huobi
etc. to Beancount)
- fints2ledger
FinTS/HBCI to csv to *ledger or beancount journals (python)
- gcash2ledger.py
GNUCash XML to *ledger converter (python)
- gnucash-to-beancount
GNUCash sqlite to beancount converter (python)
- gnucash2ledger.py
GNUCash sqlite to *ledger converter (python)
- grisbi2Ledger
Grisbi to *ledger converter
- hledger-import-dsl
alternate, programmable CSV converter for hledger
- hledger-to-influxdb
hledger to InfluxDB converter (haskell)
- hledger2beancount
hledger to beancount converter (haskell)
- homebank2ledger
HomeBank to ledger and beancount converter (perl)
- icsvledger
interactive CSV to *ledger converter (python)
- into-ledger
CSV to *ledger converter
- invoice2data
extract data from PDF invoices (python)
- jali
downloader/importer to *ledger (python)
- kmymoney2hledger
KMyMoney to *ledger converter (clojure)
- kmymoney2ledgers
KMyMoney to *ledger/beancount converter (python)
- kmymoney2ledgers.awk
KMyMoney to *ledger/beancount converter (Awk)
- ldgclip import
bank transactions via the clipboard with one click (bash/awk)
- Ledger in Go has
limport, a CSV to *ledger converter
- ledger-autosync
OFX download, OFX to *ledger conversion, deduplication
- ledger-guesser
neural network for generating entries like past ones, can be used with
ledger-autosync (javascript)
- ledger-myexpenses
MyExpenses android app sqlite db to *ledger conversion (python,
2017)
- ledgermyexpenses
sync MyExpenses android app to/from Ledger (bash, 2023)
- ledger-to-beancount
yet another simple ledger to beancount converter (python)
- ledger-tutorials
convert Pete Keen's tutorials to ebook format
- ledger2beancount.py
*ledger to beancount converter
- ledger2beancount/beancount2ledger
the best converter between h/ledger and beancount formats (perl).
- moneymoney-ledger
MoneyMoney export extension for *ledger
- outofit QuickBooks
to *ledger converter
- piecash GNUCash
SQL to *ledger converter (python)
- plaid2qif
Download transactions from plaid as QIF or CSV files
- plaid2text
Plaid API to *ledger/beancount download/conversion
- qb2ledger
QuickBooks General Journal CSV to *ledger converter
- QIFtoLedger
(Bank of America's) QIF to *ledger converter
- reckon smart
interactive/non-interactive CSV to *ledger converter
- slc generates
Ledger accounting entries, works with generic CSV files as well as the
Stripe API
- smart_importer
library for building smarter CSV to beancount/Fava converters
- total_recall CSV
to *ledger converter
- ynab-to-ledger
You Need A Budget (YNAB) to *ledger converter. Handles multiple
currencies, multiple number formats, reconciliation, memos, transfers,
and split transactions
- ynab_to_ledger You
Need A Budget to *ledger converter
- beancount-extract-price
generate prices transactions based on your beancount ledger
(python)
- DepreciateForLedger
generate *ledger depreciation transactions (python)
- hledger-interest
generate *ledger interest entries (haskell)
- ledgerbil
schedule recurring txns, interactive reconcile, date sorting
- LedgerScheduler
move entries from one file to another when they come due (python)
- lotter generate postings
for capital gain/loss (go)
- recurring
generate recurring *ledger entries (python)
- reorder-journal.sh
sort hledger entries, preserving directives/comments at top of file
(bash)
- sassetti adds lisp
macros to ledger files (common lisp)
- budget_report
budget reporting with beancount (python)
- hledger-diff
report differing transactions between two journals (haskell)
- hledger-irr
calculate an account's internal rate of return (superseded by roi) (haskell)
- hledger-sankey
Script + HTML files to plot income next to expense money flows from an
hledger ledger file (shell + javascript)
- hledger-vega
makes configurable vega-lite charts from
hledger (shell)
- hreports customise
hledger reports with templates and PDF output (python)
- ledger-plot
interactive tool for making GNUplot charts from Ledger (python)
- ledger-plots
R package & script to make charts from Ledger (R)
- ludget generate charts
from Ledger (python)
- r-ledger an R
package for reading and reporting on ledger/hledger/beancount files
(R)
- TaxingLots
calculates capital gains for a ledger journal (python)
- org2tc org to
timeclock converter
- on-modify.timetrack.py
taskwarrior hook for timeclock output
- t ledger timeclock
shellscript
- tim time
logging/reporting tool using hledger
- timekeeping-template
time logging/reporting examples/how-to using hledger
- tito time logging
bash scripts that avoid double clock-in
- bean-add
interactive transaction entry tool (python)
- hledger add
interactive transaction entry tool (builtin command)
- ladd
create and edit a new *ledger transaction by fuzzy-matching past
descriptions
- ldgr command
line tool to add/sort/tag ledger files (ruby)
- ledger
xact history-aware transaction generator (builtin command)
- ledgerble
reporting GUI with charts & adjustable reports (Javascript)
- ledgerhelpers
misc. GUI tools + helper library (Python, GTK)
- Prudent integrated journal
editing/importing/reporting GUI for Ledger (Javascript, mac only, closed
source)
- fava web UI for
beancount browsing (python, demo)
- hledger-web
web UI for *ledger browsing, data entry (haskell, demo, Sandstorm
app)
- Paisa web UI or desktop app for
ledger, hledger and beancount (golang, javascript, demo)
- Ledger in Go web UI
for browsing ledger transactions, reports, and porfolios
- Ledger Web
ledger HTML reporting system (ruby, postgres)
- Ledger Web web
UI/API for ledger browsing, data entry (python)
- ledger-analytics
web UI for ledger data analytics (javascript)
- ledger-dashboard web
UI for ledger browsing, data entry (python)
- ledger-pyreport
web UI for standard accounting statements and unrealised gains
(python)
- ledgeraccounting
web UI for hledger: data entry, basic reports and budgets
(javascript)
- ledgible web UI
for ledger browsing, data entry (python)
- n4s
danish-language ERP system (php)
- node-ledger-web
web UI for ledger browsing (javascript)
- WealthPulse web
UI for ledger browsing, price fetching (F#)
- BeanHub web UI for beancount
browsing, data entry with a Git repository (proprietary SaaS; some
components open source)
- gledger Go package
to interface with Ledger (go)
- hledger-lib
library for parsing and generating reports from *ledger files
(haskell)
- hledger-web
the web app includes a JSON API server for *ledger files (haskell)
- ledgerhelpers
extends Ledger's python library (python)
- node-hledger
Node.js API for *ledger files (javascript)
- BeanHub API proprietary
SaaS API for operating on hosted beancount repositories and beanhub-forms
(c) 2016-2023 Simon Michael & contributors |
Send updates via github