External Contributions to Beancount
Martin Blais - Updated: April 2016
Links to codes written by other people that build on top of or that are related to Beancount and/or Ledgerhub.
This document contains only packages that were discussed or have had an announcement sent to the mailing-list. You will be able to find other packages on public indices:
PyPI: You can find a lot of other Beancount-related projects at PyPI.
GitHub: A search for "beancount" as of September 2020 brings up 318 projects.
Books and Articles
https://personalfinancespython.com/ "Managing Personal Finances using Python", a 2020 book on plain-text accounting, and Beancount (Siddhant Goel).
effective_dates: redstreet0 wrote a plugin to book different legs of a transaction to different dates
beancount-plugins: Dave Stephens created a repository to share various of his plugins related to depreciation.
beancount-plugins-zack: Stefano Zacchiroli created this repository to share his plugins. Contains sorting of directives and more.
metadata-spray: Add metadata across entries by regex expression rather than having explicit entries (by Vivek Gani).
Akuukis/beancount_share: A beancount plugin to share expenses among multiple partners within one ledger. This plugin is very powerful and most probably can deal with all of your sharing needs.
autobean.narration (Archimedes Smith): Allows to annotate each posting in a concise way by populating per-posting narration metadata from inline comments.
autobean.sorted: Checks that transactions are in non-descending order in each file. Helps identifying misplaced or misdated directives, by warning on those directives not following a non-descending order by date in the file.
hoostus/beancount-asset-transfer-plugin: A plugin to automatically generate in-kind transfers between two beancount accounts, while preserving the cost basis and acquisition date.
alfred-beancount (Yue Wu): An add-on to the “Alfred” macOS tool to quickly enter transactions in one’s Beancount file. Supports full account names and payees match.
bean-add (Simon Volpert): A Beancount transaction entry assistant.
hoostus/fincen_114 (Justus Pendleton): An FBAR / FinCEN 114 report generator.
hoostus/portfolio-returns (Justus Pendleton): portfolio returns calculator
costflow/syntax (Leplay Li): A product that allows users to keep plain text accounting from their favorite messaging apps. A syntax for converting one-line message to beancount/*ledger format.
Pinto (Sean Leavey): Supercharged command line interface for Beancount. Supports automatic insertions of transactions in ledger file.
reds importers: Simple importers and tools, mostly ofx based and built on top of `ofxparse`. Using ofx (over csv) minimizes data and coding errors, eliminates format breaking changes in csv, allows for automatic imports of balances to generate balance assertions, and imports prices. The goal is to factor out importer code into well maintained common libraries for banks, credit cards, and investment houses, to minimize institution specific code and make writing new importers easy. Look inside the importers/ directory to see a list of institutions supported. More investment, credit card, and banking institutions will be added in the future. Contributions welcome. See this thread for information about a Yodlee importer.
jbms/beancount-import: A tool for semi-automatically importing transactions from external data sources, with support for merging and reconciling imported transactions with each other and with existing transactions in the beancount journal. The UI is web based. (Announcement, link to previous version). By Jeremy Maitin-Shepard.
beansoup: Filippo Tampieri is sharing some of his Beancount importers and auto-completer in this project.
montaropdf/beancount-importers: An importer to extract overtime and vacation from a timesheet format for invoicing customers.
siddhantgoel/beancount-dkb (Siddhant Goel): importer for DKB CSV files.
prabusw/beancount-importer-zerodha: Importer for the Indian broker Zerodha.
swapi/beancount-utils : Another importer for Zerodha.
Dr-Nuke/drnuke-bean (Dr Nuke): An importer for IBKR, based on the flex query (API-like) and one for Swiss PostFinance.
Beanborg (Luciano Fiandesio): Beanborg automatically imports financial transactions from external CSV files into the Beancount bookkeeping system.
https://github.com/siddhantgoel/beancount-ing-diba (PyPI): ING account importer (NL).
plaid2text: Python Scripts to export Plaid transactions and transform them into Ledger or Beancount syntax formatted files.
gnucash-to-beancount: A script from Henrique Bastos to convert a GNUcash SQLite database into an equivalent Beancount input file.
debanjum/gnucash-to-beancount: A fork of the above.
hoostus/beancount-ynab : A converter from YNAB to Beancount.
hoostus/beancount-ynab5 : Same convert for YNAB from the same author, but for the more recent version 5.
ledger2beancount: A script to convert ledger files to beancount. It was developed by Stefano Zacchiroli and Martin Michlmayr.
smart_importer: A smart importer for beancount and fava, with intelligent suggestions for account names. By Johannes Harms.
alensiljak/pta-converters (Alen Šiljak): GnuCash -> Beancount converter (2019).
grostim/Beancount-myTools (Timothee Gros): Personal importer tools of the author for French banks.
hoostus/beancount-price-sources : A Morningstar price fetcher which aggregates multiple exchanges, including non-US ones.
andyjscott/beancount-financequote : Finance::Quote support for bean-price.
grostim/Beancount-myTools/.../iexcloud.py : Price fetcher for iexcloud by Timothee Gros.
xuhcc/beancount-cryptoassets (Kirill Goncharov): Price sources for cryptocurrencies.
xuhcc/beancount-ethereum-importer (Kirill Goncharov): Ethereum transaction importer for Beancount. Includes a script that downloads transactions from Etherscan and an importer for downloaded transactions.
tarioch/beancounttools (Patrick Ruckstuhl): Price sources and importers.
https://gitlab.com/chrisberkhout/pricehist (Chris Berkhout): A command-line tool that can fetch daily historical prices from multiple sources and output them in several formats. Supports some sources for CoinDesk, European Central Bank, Alpha Vantage, CoinMarketCap. The user can request a specific price type such as high, low, open, close or adjusted close. It can also be used through bean-price.
Py3k type annotations: Yuchen Ying is implementing python3 type annotations for Beancount.
bryall/tree-sitter-beancount (Bryan Ryall): A tree-sitter parser for the beancount syntax.
Beancount Documentation (Kirill Goncharov): Official conversion of the Beancount documentation from Google Docs source to Markdown and HTML. This includes most of the Google Docs documents and is maintained in a Beancount org repo here by Kirill Goncharov.
SQL queries for Beancount (Dominik Aumayr): Example SQL queries.
Beancount —— 命令行复式簿记 (Zhuoyun Wei): A tutorial (blog post) in Chinese on how to use Beancount.
Managing my personal finances with Beancount (Alex Johnstone)
Interfaces / Web
fava: A web interface for Beancount (Dominik Aumayr, Jakob Schnitzer): Beancount comes with its own simple web front-end (“bean-web”) intended merely as a thin shell to invoke and display HTML versions of its reports. “Fava” is an alternative web application front-end with more & different features, intended initially as a playground and proof-of-concept to explore a newer, better design for presenting the contents of a Beancount file.
Fava Classy Portfolio (Vivek Gani): Classy Portfolio is an Extension for Fava, a web interface for the Beancount plaintext accounting software. The extension displays a list of different portfolios (e.g. 'taxable' vs. 'retirement'), with breakdowns using 'asset-class' and 'asset-subclass' metadata labels on commodities.
Fava Investor project: Fava_investor aims to be a comprehensive set of reports, analyses, and tools for investments, for Beancount and Fava. It is a collection of modules, with each module offering a Fava plugin, a Beancount library, and a Beancount based CLI (command line interface). Current modules include: Visual, tree structured asset allocation by class, asset allocation by account, tax loss harvester, cash drag analysis.
Fava Miler (RedStreet): Airline miles and rewards points: expiration and value reporting.
Fava Envelope (Brian Ryall): A beancount fava extension to add an envelope budgeting capability to fava and beancount. It is developed as a Fava plugin and CLI.
scauligi/refried (Sunjay Cauligi): An envelope budgeting plugin for Fava, inspired by YNAB: all expense accounts become individual budgeting categories, budgeting is carried out using transactions to these accounts, and the plugin automaticallyapplies a tag to all rebudget transactions so they can easily be filtered out. Provides budget and account views like YNAB.
Mobile/Phone Data Entry
http://costflow.io: Plain Text Accounting in WeChat. "Send a message to our bot in Telegram, Facebook Messenger, Whatsapp, LINE, WeChat, etc. Costflow will transform your message into Beancount / Ledger / hledger format transaction magically. Append the transaction to the file in your Dropbox / Google Drive. With the help of their apps, the file will be synced to your computer."