1
0
Files
plaintextaccounting/index.md
2023-11-14 06:06:42 -08:00

51 KiB
Raw Blame History

% Plain Text Accounting portal

<style> body { } .columns { margin-left:0 !important; margin-right:4%; } h1 { text-align:center; margin-top:10%; margin-bottom:5%; text-shadow: 2px 2px 2px white; } h2 { } h3 { font-weight:normal; } h4 { } h5 { font-size:1.2em; } li { margin:revert; } .faq h5 { /* questions */ font-weight:bold; margin-bottom:0; } #intro { font-size:1.2em; } #sitemapheading { font-size:2rem; font-weight:bold; } th, td { border:none; padding-top:0; padding-bottom:0; border-bottom:thin solid #ddd; white-space:nowrap; } </style>

plain text accounting

Plain text accounting (PTA) 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, together with the PTA wiki (wiki.plaintextaccounting.org), collects the PTA community's tools, docs and practices. It is maintained by Simon Michael (hledger project leader, PTA fan) and contributors like you. Join the chat, or send an edit (here's the contributors' README). github{title="send pull requests, bug reports, blog posts, star us, tweet with #plaintextaccounting tag"}

Contents:
News & discussion

\

News & discussion

Chat Matrix or IRC chat log, #plaintextaccounting-space:matrix.org
Mail lists app-specific mail lists
Mastodon #plaintextaccounting
Twitter #plaintextaccounting, #ledgercli, #hledger, #beancount, @LedgerTips
Reddit /r/plaintextaccounting
Hacker News stories, comments
Stack Exchange [ledger-cli], "ledger-cli", [hledger](https://money.stackexchange.com/questions/tagged/hledger?tab=newest), "hledger"


This Week In Hledger https://hledger.org/news.html

Videos

Articles & blog posts

(Last updated 2021)

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009

2006

Docs

Accounting

PTA app official docs

Ledger | hledger | Beancount | Ledger in Go | Tackler | pta

PTA app comparisons

Cheatsheets

Introductory docs

Presentations

PTA Wiki/Cookbook

Software

PTA apps

To do Plain Text Accounting, choose one of the apps below. Generally it's relatively easy to migrate data from one to another.

Project Start Last release Code Committers Stars Mail list, ~size Chat, ~size
 
Popular
Ledger 2003 2023-03 C++ 189 4.6k ledger ~900 irc 60
hledger 2007 2023-06 haskell 162 2.4k hledger ~200 matrix/irc 100
Beancount 2008 2022-02 python 64 2k beancount ~600 irc 20, matrix 40, matrix 7
 
Smaller userbase
Abandon 2013 2019-09 scala 11 162 matrix
Transity 2018 2019-05 purescript 8 571 matrix
Ledger in Go 2013 2022-07 go 8 333
rust_ledger 2019 2020-09 rust 4 90
knut 2020 2022-09 go 3 41
Go Ledger 2016 go 3 37
.Net Ledger 2017 2018-08 C# 1 134 matrix
pacioli 2013 python 1 31
ledg 2021 2021-04 javascript 1 30
Goledger 2019 2020-08 go 1 24
blossom 2020 F# 1 20
Tackler 2017 2022-12 scala 1 8 matrix
pta 2020 2020-09 perl 1
Prudent 2018 js (closed); addons 1 @PrudentLedger
awk-pta 2022 awk 1
 
Inactive
bankroll 2020 2020-08 rust 1 1
acc 2020 rust 1 1
beans 2019 2019 haskell 2 24
monescript 2017 2018-01 javascript 1 12
uledger 2015 python 1 17
ledger.pl 2013 perl 1 6
Penny 2012 2014 haskell
UMM 2009 2010 haskell
sm-Ledger 2007 squeak smalltalk
cl-ledger 2007 common lisp 4 66

Editor plugins

Helpers which make your text editor or IDE more aware of PTA apps and file formats. These often also work well for PTA apps other than the one they are named for.

Atom language-ledger, ledger
Emacs beancount-mode, hledger-mode, ledger-mode
IntelliJ Ledger Plugin
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

Data import/conversion

Additional helper tools complementing the PTA apps, by category.

  • 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

Price fetching

Data generation

  • 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)

Formatting

Reporting

  • 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)

Time logging

  • 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

UI, console

  • 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)

UI, curses

UI, GUI

  • 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)

UI, web

  • 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)

UI, mobile

Library

Utilities

API

  • 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](https://joyful.com) & contributors | Send updates via [github](https://github.com/plaintextaccounting/plaintextaccounting) ([latest changes](https://github.com/plaintextaccounting/plaintextaccounting/commits/master))