Skip to main content

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

  1. 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.

  1. Install

The braavos CLI is available on PyPi and can be installed via pip.

pip install braavos
# or via uv:
uv tool install braavos
  1. 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

braavos-0.2.1.tar.gz (371.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

braavos-0.2.1-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

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

Hashes for braavos-0.2.1.tar.gz
Algorithm Hash digest
SHA256 47614b86a640208b5ddb39e359b3ad41abbd05c523ec5024b07be3bc6eea0691
MD5 0f82542383053c2c97ea73465be66dc7
BLAKE2b-256 3f9027db4f5d1b214ce4e8aa8e3ef2b2de63dbbebdfde3689ff35249d08142ae

See more details on using hashes here.

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

Hashes for braavos-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 07ce0cc0b619049057c07c7109ea4acbc8edab0030f6db63ac4c31354cdc1899
MD5 ac494a8690ff542fd880a7232be2f2a5
BLAKE2b-256 9860853873c3c00ab6e0ada63f8521012807e091f60e845e1057685f672bc596

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page