Skip to main content

fintl

CI codecov License: MIT Python 3.13+ Ruff uv ty

Financial ETL CLI: parse, normalize, and explore your bank transaction data.

TL;DR

This tool helps you process, visualize and search your balance and transaction information that you have exported from your bank accounts.

Currently supports DKB, Postbank, GLS and Scalable Capital Broker.

Supported file formats: CSV, HTML, and PNG. PNG parsing uses a local ollama / llama-swap instance with a multimodal model — opt-in via fintl.toml (required only for Scalable broker PNG statements; gracefully skipped when not configured).

All your data stays on your machine. No need to trust another entity that is PSD2 certified.

How to install

As a cli tool

uv tool install fintl

As a dependency

From pypi

pip install fintl

or

uv add fintl

From a local repo

git clone https://github.com/eschmidt42/fintl.git
cd fintl
uv sync
uv tool install .

After installation, fintl should be available on your PATH:

which fintl
# e.g. /Users/YOURUSER/.local/bin/fintl

How to use

  1. Configure your ~/.config/petprojects/fintl.toml. For details see here.
  2. Go to your bank account.
  3. Select your service, e.g. Giro.
  4. Export csv file or similar to ~/Downloads, or directly your source dir for your bank / service.
  5. Optionally, if you've stored your file in ~/Downloads, run cd ~/Downloads followed by fintl store (uses your fintl.toml from step 1).
  6. Optionally, if you want to process PNG screenshots via Ollama, start Ollama.
  7. Run the etl via fintl etl (also uses your fintl.toml from step 1).
  8. Upon success visualize / search your data via fintl plot or fintl search.

Please see here and below for more usage details.

Repo structure

  • src/fintl/accounts_etl/ — core ETL logic: schemas, parsers, registry, runner
  • src/fintl/cli/ — CLI entry point and subcommands (etl, store, search, plot)
  • tests/ — tests for packages of this repo

Development

Run tests:

uv run pytest -n auto tests

Type check:

uv run ty check src

Lint, format, type check, test and all the other good stuff:

prek run --all-files

Running extraction integration tests

Tests that require a live llama-swap / ollama service are marked ollama / llama_swap and skipped by default. To run them, set FINTL_OLLAMA_MODEL to the name of a multimodal model you have pulled (e.g. qwen3.6:latest) and pass -m ollama or -m llama_swap:

FINTL_OLLAMA_MODEL=qwen3.6:latest uv run pytest -m ollama tests/
FINTL_LLAMA_SWAP_MODEL=qwen-3.6-27b uv run pytest -m llama_swap tests/

FINTL_OLLAMA_BASE_URL can optionally override the default http://localhost:11434.

FINTL_LLAMA_SWAP_BASE_URL can optionally override the default http://0.0.0.0:8080.

Simulating CLI usage without real financial data

Set the FINTL_CONFIG env var to point at any TOML file instead of ~/.config/petprojects/fintl.toml. A dev-config.toml is included at the repo root and wires all CLI commands to the fixture files under tests/.

To try the CLI commands, run:

mkdir /tmp/fintl-dev

Then you can run one of

rm -fr /tmp/fintl-dev/*
FINTL_CONFIG=dev-config.toml fintl etl
FINTL_CONFIG=dev-config.toml fintl plot
FINTL_CONFIG=dev-config.toml fintl store --from-dir <dir> --yes --copy

Output lands in /tmp/fintl-dev. Edit dev-config.toml locally to change providers, paths, or target directory.

Note: FINTL_CONFIG=dev-config.toml fintl etl is expected to produce one warning, failing to parse Screenshot 2026-03-09 at 14.30.54.png, because it in fact is an insufficient png file to parse the requested information from.

Release

For release steps see here.

Metadata

Release files for fintl 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fintl 0.3.1
File Size Uploaded
fintl-0.3.1.tar.gz 59.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fintl 0.3.1
File Interpreter ABI Platform
fintl-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 167.8 kB

Release files / fintl-0.3.1.tar.gz

Download URL fintl-0.3.1.tar.gz
Size 59.1 kB
Tags Source
SHA-256 checksum
How to use checksums
78d899dfac2b5e13e47ad66ffb6e99c7ca6bb694cd887e99a623c9a9cdc17d53
BLAKE2b-256 checksum
How to use checksums
dea242307d1be93d82ac11a95c695a842bfdff1caa9f47a15afff71a9bf28011
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / fintl-0.3.1-py3-none-any.whl

Download URL fintl-0.3.1-py3-none-any.whl
Size 108.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4edc8f3168780f2a6420f58031e9de2fa9bb3b0cd99608e10fd4f554211a7a58
BLAKE2b-256 checksum
How to use checksums
acd7e0985900f8dbe07fc9816ab3307847e16b96e33813d9a35e8cf4efc50cfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.2

2 release files

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page