Skip to main content

An Open Banking CLI

Project description

💲 leggen

A self hosted Open Banking Dashboard, API and CLI for managing bank connections and transactions.

Having your bank data accessible through both CLI and REST API gives you the power to backup, analyze, create reports, and integrate with other applications.

Leggen demo

🛠️ Technologies

Frontend

  • React: Modern web interface with TypeScript
  • Vite: Fast build tool and development server
  • Tailwind CSS: Utility-first CSS framework
  • shadcn/ui: Modern component system built on Radix UI
  • TanStack Query: Powerful data synchronization for React

🔌 API & Backend

📦 Storage

  • SQLite: for storing transactions, simple and easy to use

✨ Features

🎯 Core Banking Features

  • Connect to banks using GoCardless Open Banking API (30+ EU countries)
  • List all connected banks and their connection statuses
  • View balances of all connected accounts
  • List and filter transactions across all accounts
  • Support for both booked and pending transactions

🔄 Data Management

  • Sync all transactions with SQLite database
  • Background sync scheduling with configurable cron expressions
  • Automatic transaction deduplication and status tracking
  • Real-time sync status monitoring

📡 API & Integration

  • REST API: Complete FastAPI backend with comprehensive endpoints
  • CLI Interface: Enhanced command-line tools with new options

🔔 Notifications & Monitoring

  • Discord and Telegram notifications for filtered transactions
  • Configurable transaction filters (case-sensitive/insensitive)
  • Account expiry notifications and status alerts
  • Comprehensive logging and error handling

🚀 Quick Start

Prerequisites

  1. Create a GoCardless account at https://gocardless.com/bank-account-data/
  2. Get your API credentials (key and secret)

Installation

Docker Compose (Recommended)

# Clone the repository
git clone https://github.com/elisiariocouto/leggen.git
cd leggen

# Create your configuration
mkdir -p data && cp config.example.toml data/config.toml
# Edit data/config.toml with your GoCardless credentials

# Start all services
docker compose up -d

# Access the web interface at http://localhost:3000
# API documentation at http://localhost:3000/api/v1/docs

Configuration

Create a configuration file at ./data/config.toml (for Docker) or ~/.config/leggen/config.toml (for local development):

[gocardless]
key = "your-api-key"
secret = "your-secret-key"
url = "https://bankaccountdata.gocardless.com/api/v2"

[database]
sqlite = true

# Optional: Background sync scheduling
[scheduler.sync]
enabled = true
hour = 3      # 3 AM
minute = 0
# cron = "0 3 * * *"  # Alternative: use cron expression

# Optional: Discord notifications
[notifications.discord]
webhook = "https://discord.com/api/webhooks/..."
enabled = true

# Optional: Telegram notifications
[notifications.telegram]
token = "your-bot-token"
chat_id = 12345
enabled = true

# Optional: Transaction filters for notifications
[filters]
case_insensitive = ["salary", "utility"]
case_sensitive = ["SpecificStore"]

📖 Usage

Web Interface

Access the React web interface at http://localhost:3000 after starting the services.

API Service

Visit http://localhost:3000/api/v1/docs for interactive API documentation.

CLI Commands

leggen status              # Check connection status
leggen bank add            # Connect to a new bank
leggen balances            # View account balances
leggen transactions        # List transactions
leggen sync                # Trigger background sync

For more options, run leggen --help or leggen <command> --help.

⚠️ Notes

  • This project is in active development

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

leggen-2026.1.0.tar.gz (52.6 kB view details)

Uploaded Source

Built Distribution

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

leggen-2026.1.0-py3-none-any.whl (72.6 kB view details)

Uploaded Python 3

File details

Details for the file leggen-2026.1.0.tar.gz.

File metadata

  • Download URL: leggen-2026.1.0.tar.gz
  • Upload date:
  • Size: 52.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","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 leggen-2026.1.0.tar.gz
Algorithm Hash digest
SHA256 40f890f8166128c66840a111f8ab0234678e9ae60eed2ae3e0cff56597cb35fd
MD5 95a7d81a4f7b8f2f08ca3af808195014
BLAKE2b-256 cd8f995f11e940d9ceab10fbf89933fcba5f480ca7a85673f43c041dd8f8e074

See more details on using hashes here.

File details

Details for the file leggen-2026.1.0-py3-none-any.whl.

File metadata

  • Download URL: leggen-2026.1.0-py3-none-any.whl
  • Upload date:
  • Size: 72.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","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 leggen-2026.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59e761cc3a0347f2e0b8dba9781db7ca86eb30ca8a94271ecc307e24e5f8f35c
MD5 0c2bb853b12186d24d3087efef3e57ed
BLAKE2b-256 ec4a1a3f01d412d13026a1f584c276984b513fefc5e5fa18808ed437ae3045d2

See more details on using hashes here.

Supported by

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