Firefly Reports
Generate email reports using Firefly's API. There is a wiki which will have more information.
Firefly
Firefly is a free and open source personal finance manager. Firefly Reports adds the ability to get email reports to help keep track of your spending.
Quickstart
To install, you can use pipx:
$ pipx install firefly_reports
or use uv:
$ uv tool install firefly_reports
If using pip, I would suggest using a virtual environment.
After installing, you can use --help to get the inputs:
Usage: firefly_reports [OPTIONS] CONFIG_FILE
Options:
--start_date [%Y-%m-%d]
--end_date [%Y-%m-%d]
--help Show this message and exit.
By default the start date will be a week from when the program is run and the end date will be the day of the program is run.
Copy example_config.toml to your PC and update the following:
[email]
server = "smtp.gmail.com"
port = 587
starttls = true # Use STARTTLS
authentication = true # Login with username and password
user = "your_email_address@gmail.com"
password = "password"
from = "your_email_address@gmail.com"
to = ["email1@example.com","email2@example.com"]
[firefly]
url = "http://firefly_instance:8085"
access_token = "your_api_access_token_key"
I verified that using Gmail works but haven't checked other email providers. Look at Firefly's documentation to get your access token.
Reports
Currently only one report is supported. This report will include the following:
- Categories (income and expenses).
- Total amount spent between the start and end dates.
- Total amount earned between the start and end dates.
- Total amount spent so far for the calendar year.
- Total amount earned so far for the calendar year.
Development
The recommended way is to use uv:
$ git clone git@github.com:cetyler/firefly_reports.git
$ uv venv --python 3.13
Using Python 3.13
Creating virtualenv at: .venv
Activate with: source .venv/bin/activate
$ source .venv/bin/activate
$ uv sync --dev
Release files for firefly_reports 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| firefly_reports-0.5.1.tar.gz | 42.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| firefly_reports-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.1 kB
Release files / firefly_reports-0.5.1.tar.gz
| Download URL | firefly_reports-0.5.1.tar.gz |
|---|---|
| Size | 42.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19418a83e389343eb08d982421fafdd65b39b5786584776661d44bd0bb324d47
|
|
BLAKE2b-256 checksum How to use checksums |
38a8ef1b6f5aa1b5a95f88789998a1ceb1ce76ef9f87bed415b57ac6784d580d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / firefly_reports-0.5.1-py3-none-any.whl
| Download URL | firefly_reports-0.5.1-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ab8eb8a3f41f60b349071fa7bf496df2693d09bb07c76950bbacac6e1f001abd
|
|
BLAKE2b-256 checksum How to use checksums |
f29f0dc31e55212c6b1cd44d19da3f8ae8ecac9dc5d53fb75a903fd2d04f7adb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|