# beancount-reds-plugins
A collection of plugins for [Beancount](https://beancount.github.io/), software for
[plain text, double entry bookkeeping](https://plaintextaccounting.org/).
See README.md in individual directories for plugin specific documentation.
## Plugin list:
- __[autoclose_tree](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/autoclose_tree#readme)__:
automatically closes all of an account's descendants when an account is closed.
- __[capital_gains_classifier](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/capital_gains_classifier#readme)__:
rebooks capital gains into separate long and short accounts, and separate gains and
losses accounts
- __[effective_date](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/effective_date#readme)__:
enables per-posting dates (each posting in a transaction can have a different date)
- __[opengroup](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/opengroup#readme)__:
Inserts open statements for sets of accounts based on specifiable rules.
- __[rename_accounts](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/rename_accounts#readme)__:
rename arbitrary accounts on the fly (eg: move Taxes from Expenses to Income when you
temporarily want to view all your Expenses except taxes)
- __[zerosum](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/zerosum#readme)__:
find matching pairs of postings that sum up to zero. Useful in de-duplication, and
tracking things such as reimbursements, rebates, etc.
## Installation
`pip3 install beancount-reds-plugins`
Or to install the bleeding edge version from git:
`pip3 install git+https://github.com/redstreet/beancount_reds_plugins`
## Usage
Invoke and configure a plugin by including it in your beancount source. For example,
invoke the `rename_accounts` plugin like so:
```python
plugin "beancount_reds_plugins.rename_accounts.rename_accounts" "{
'Expenses:Taxes' : 'Income:Taxes',
}"
```
See README.md in individual directories for how to configure each plugin.
### Disabling plugins during the import process
In general, no plugins should run on the source files that are passed to
`smart_importer`. Here's [an article](https://reds-rants.netlify.app/personal-finance/automatically-categorizing-postings/)
that shows how.
In short (this is for `zsh`, adapt to your shell as needed):
```
bean-extract my.import -f <(echo 'plugin "beancount.plugins.auto_accounts"'; cat ${INGEST_ROOT}/../source/*) $file
```
Raw data
{
"_id": null,
"home_page": "https://github.com/redstreet/beancount_reds_plugins",
"name": "beancount-reds-plugins",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "plugins double-entry banking beancount accounting",
"author": "Red Street",
"author_email": "redstreet@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/67/93/48ef31e6c6ed5f09896947a0b40eaf2ad69d15b9a9687b6a94596aa9a249/beancount_reds_plugins-0.4.0.tar.gz",
"platform": null,
"description": "# beancount-reds-plugins\n\nA collection of plugins for [Beancount](https://beancount.github.io/), software for\n[plain text, double entry bookkeeping](https://plaintextaccounting.org/).\nSee README.md in individual directories for plugin specific documentation.\n\n## Plugin list:\n- __[autoclose_tree](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/autoclose_tree#readme)__:\n automatically closes all of an account's descendants when an account is closed.\n- __[capital_gains_classifier](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/capital_gains_classifier#readme)__:\n rebooks capital gains into separate long and short accounts, and separate gains and\n losses accounts\n- __[effective_date](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/effective_date#readme)__:\n enables per-posting dates (each posting in a transaction can have a different date)\n- __[opengroup](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/opengroup#readme)__:\n Inserts open statements for sets of accounts based on specifiable rules.\n- __[rename_accounts](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/rename_accounts#readme)__:\n rename arbitrary accounts on the fly (eg: move Taxes from Expenses to Income when you\n temporarily want to view all your Expenses except taxes)\n- __[zerosum](https://github.com/redstreet/beancount_reds_plugins/tree/master/beancount_reds_plugins/zerosum#readme)__:\n find matching pairs of postings that sum up to zero. Useful in de-duplication, and\n tracking things such as reimbursements, rebates, etc.\n\n## Installation\n`pip3 install beancount-reds-plugins`\n\nOr to install the bleeding edge version from git:\n\n`pip3 install git+https://github.com/redstreet/beancount_reds_plugins`\n\n## Usage\nInvoke and configure a plugin by including it in your beancount source. For example,\ninvoke the `rename_accounts` plugin like so:\n\n```python\nplugin \"beancount_reds_plugins.rename_accounts.rename_accounts\" \"{\n 'Expenses:Taxes' : 'Income:Taxes',\n }\"\n```\nSee README.md in individual directories for how to configure each plugin.\n\n### Disabling plugins during the import process\n\nIn general, no plugins should run on the source files that are passed to\n`smart_importer`. Here's [an article](https://reds-rants.netlify.app/personal-finance/automatically-categorizing-postings/)\nthat shows how.\n\nIn short (this is for `zsh`, adapt to your shell as needed):\n```\nbean-extract my.import -f <(echo 'plugin \"beancount.plugins.auto_accounts\"'; cat ${INGEST_ROOT}/../source/*) $file\n```\n",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "A collection of plugins for Beancount",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/redstreet/beancount_reds_plugins"
},
"split_keywords": [
"plugins",
"double-entry",
"banking",
"beancount",
"accounting"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "55ab307c9b30229f6e75fcad14008e06291d93452b577ebd50412c1f30c0df49",
"md5": "acccf333061bdfdb3e43123296ce3f42",
"sha256": "186d4d625dcd094043b489f942d44b8cb603a2d5710083e0ce2ea56c2dd133fa"
},
"downloads": -1,
"filename": "beancount_reds_plugins-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "acccf333061bdfdb3e43123296ce3f42",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 55169,
"upload_time": "2025-07-14T16:59:40",
"upload_time_iso_8601": "2025-07-14T16:59:40.730241Z",
"url": "https://files.pythonhosted.org/packages/55/ab/307c9b30229f6e75fcad14008e06291d93452b577ebd50412c1f30c0df49/beancount_reds_plugins-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "679348ef31e6c6ed5f09896947a0b40eaf2ad69d15b9a9687b6a94596aa9a249",
"md5": "3c1ecf13de15c39bdd2ac4ed42c63a36",
"sha256": "33ed652d9d08c6c1de472900d92a7695f6b5f864c3ad23812acd68e756ed0565"
},
"downloads": -1,
"filename": "beancount_reds_plugins-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "3c1ecf13de15c39bdd2ac4ed42c63a36",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 53180,
"upload_time": "2025-07-14T16:59:41",
"upload_time_iso_8601": "2025-07-14T16:59:41.569437Z",
"url": "https://files.pythonhosted.org/packages/67/93/48ef31e6c6ed5f09896947a0b40eaf2ad69d15b9a9687b6a94596aa9a249/beancount_reds_plugins-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-14 16:59:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "redstreet",
"github_project": "beancount_reds_plugins",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "beancount",
"specs": [
[
"==",
"2.3.5"
]
]
},
{
"name": "python_dateutil",
"specs": [
[
"==",
"2.8.1"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"70.0.0"
]
]
}
],
"lcname": "beancount-reds-plugins"
}