braavos
🏦 Data analytics on your bank account data
Features
- A terminal TUI over the Enable Banking API.
- View, filter and sort your transaction history
- Categorize each transaction with custom rules
Setup
- Generate a key and register an application (sandbox to start) at enablebanking.com:
openssl genrsa -out braavos.pem 2048
openssl req -new -x509 -key braavos.pem -out braavos.crt -days 365 -subj "/CN=braavos"
Upload braavos.crt, note the application ID,
and register the default redirect URL (https://enablebanking.com/auth_redirect) - you can then paste the redirected URL back into the CLI.
You can also choose to generate the new key in the browser and download it as a .pem file.
init copies the key into ~/.config/braavos/private_key.pem (mode 0600)
rather than remembering where you left it, so afterwards the original can be archived offline or deleted.
- Install
The braavos CLI is available on PyPi and can be installed via pip.
pip install braavos
# or via uv:
uv tool install braavos
- Get started with the app
braavos init # copies key + app ID into ~/.config/braavos/
braavos connect # bank consent in the browser, paste redirect URL back
braavos sync # pull transactions into the local SQLite cache
braavos # open the TUI
~/.config/braavos/ (mode 0700) then holds your private key and your full
transaction history. Back it up; don't sync it to a shared drive.
Development
Install the development dependencies and run the CLI from source:
uv sync
uv run braavos
Categories
Spending categories live in the local database and are managed in the TUI's Categories tab.
A category doesn't need a rule. One with no keywords is simply never assigned automatically, which is what you want for something you only ever tag by hand.
Keywords match case-insensitively as plain substrings against counterparty and
description; first match wins, everything else lands in Other (which can't be
renamed or deleted). Ruled categories are tried in the order they were created and
listed in that order, so a narrow rule you want to win should be created before a
broad one; editing a rule keeps its place.
Every transaction's category is stored, and saving a rule re-categorises all history immediately.
Overriding a single transaction
Press c (or Enter) on a transaction to pick its category from a list. A category you
chose by hand is shown in yellow and is never touched by rule changes again — pick
— automatic (rules) — to hand it back to the keyword rules.
License
Copyright (c) 2026 by Kamil Marut
braavos is under the terms of the MIT License, following all clarifications stated in the license file.
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 braavos-0.2.1.tar.gz.
File metadata
- Download URL: braavos-0.2.1.tar.gz
- Upload date:
- Size: 371.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47614b86a640208b5ddb39e359b3ad41abbd05c523ec5024b07be3bc6eea0691
|
|
| MD5 |
0f82542383053c2c97ea73465be66dc7
|
|
| BLAKE2b-256 |
3f9027db4f5d1b214ce4e8aa8e3ef2b2de63dbbebdfde3689ff35249d08142ae
|
File details
Details for the file braavos-0.2.1-py3-none-any.whl.
File metadata
- Download URL: braavos-0.2.1-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07ce0cc0b619049057c07c7109ea4acbc8edab0030f6db63ac4c31354cdc1899
|
|
| MD5 |
ac494a8690ff542fd880a7232be2f2a5
|
|
| BLAKE2b-256 |
9860853873c3c00ab6e0ada63f8521012807e091f60e845e1057685f672bc596
|