A simple CLI tool for personal and small business budgeting.
Project description
MiniBudget
MiniBudget is a tool designed to enable personal and small business budgeting using a plaintext format. It's inspired by beancount and plainbudget.
I wrote the MVP in an evening because:
- Beancount doesn't have a budgeting feature
- Google Sheets seemed far too complex and inefficient for such a simple set of operations
Quickstart
Install with pipx
This is the recommended way to use minibudget. First install pipx if you don't already have it.
Then install. It's best to install the version with [convert] extras.
pipx install "minibudget[convert]" --pip-args "'--pre'"
You should be able to run minibudget from the command line like other CLI tools:
wget https://raw.githubusercontent.com/fdavies93/minibudget/refs/heads/main/budgets/example.budget
minibudget report example.budget
Run from Source
Clone the repo. Poetry is the easiest way to run it.
poetry run minibudget report budgets/example.budget
Now take a look at example.budget to learn more about it.
If you want to use the convert feature then use poetry install -E convert to
get the required packages.
Documentation
Possible Features
Since this is a deliberately simple tool, the preferred way to implement these is as command line options which generate different types of output. A proper TUI in curses or similar would make this into a finance tool from the 80s, which is probably redundant versus a web app.
Pull requests welcome. I may or may not implement these myself when I feel like it.
- Attach notes to budget categories; view them by using a flag
- Comment syntax
- Metadata for specifying period the budget covers, default currency, etc.
- Assertions by allocating to categories with children; check if the budget for a category matches the total of its children (e.g. does discretionary spending match the totals of clothes, dining out, and entertainment?)
- Make formatting and report structure customizable
- Generate cool charts
- Proper multi-currency support (this is probably out of scope for a simple tool like this)
- Implement non-regression and unit testing
- CSV output options, especially for
diff(as table grows large very quickly) - JSON output options, mainly for testing but could be used for integrations
- Convert ledger records to minibudget format
- Convert csvs to minibudget format
Completed Features
- Cool formatting for CLI
- Integrate with beancount via bean-query to import real spending
- Totals for budget categories, not just the top level income / expenses / unassigned
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file minibudget-0.1.2.tar.gz.
File metadata
- Download URL: minibudget-0.1.2.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9eadfbde363ad9ff235a105b97f7355259244c2e4bcd4d9828b984da65b1038d
|
|
| MD5 |
5685e8e922bb2fb54296a0c713e986fc
|
|
| BLAKE2b-256 |
c53a566ece6c91a70df310c8d908eca5e137b3aac5ad09b680f44ea1fd6d4dac
|
File details
Details for the file minibudget-0.1.2-py3-none-any.whl.
File metadata
- Download URL: minibudget-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15c7635795f56f705dd581cc99a08b57d5e50b5c7afd968ed35951b769d6bb7d
|
|
| MD5 |
0ff97d9cff5040f792a841a76d00a817
|
|
| BLAKE2b-256 |
da2f34128e734d6e7d056aae667f65157e7cfca4b808b7199007c6faad4b227d
|