Skip to main content

Yet another Plaid CLI.

Project description

Yet Another Plaid CLI

A CLI for exporting Plaid API requests to plain text for importing into accounting/budgeting software (e.g, GnuCash)

Features

  • Exports the following Plaid API requests to plain text
  • Supports financial institutions that require OAuth authentication with Plaid

Prerequisites

Plaid developer credentials

[ ] TODO explain how to get Plaid developer credentials

Dependencies

  • Python 3.12: Minimum necessary version of Python to run yapcli
  • pipx: Streamlines installation and commandline use

Quick start

Install from PyPI

pipx install yapcli
yapcli --help

Usage

Configure Plaid credentials

Use the config commands to create and manage your yapcli .env file:

# Show loaded .env paths and default directories
yapcli config paths

# Interactive setup (prompts for core values)
yapcli config init

# Set/update a single key
yapcli config set PLAID_CLIENT_ID your_client_id
yapcli config set PLAID_ENV sandbox

yapcli loads this default .env file on package import.

Configuration precedence (highest to lowest)

  1. Command-line arguments/options
  2. Environment variables already set in your shell/session
  3. Values defined in the .env file in your CWD
  4. Values defined in the .env file in your config directory

Examples:

  • yapcli --production ... overrides PLAID_ENV from both shell env and .env
  • Exporting PLAID_ENV=sandbox in your shell overrides PLAID_ENV in .env
  • .env values are used as defaults when neither CLI options nor shell env provide a value

Link a Plaid account

To link your financial institution and obtain credentials:

yapcli link

This will:

  1. Start a local Flask backend server
  2. Serve the bundled Plaid Link frontend
  3. Open your browser to complete the Plaid Link flow
  4. Save credentials to the default secrets directory (see Default paths below)

Export transactions

yapcli transactions --help

Check balances

yapcli balances --help

Default paths

yapcli resolves default directories using platform directories (unless you override them with command options or environment variables):

  • YAPCLI_DEFAULT_DIRS controls the default location for config, secrets, and logs:
    • CWD: use the current working directory (e.g. ./secrets, ./logs, ./.env)
    • PLATFORMDIRS: use platform-native locations via platformdirs (e.g. ~/.config/yapcli on Linux)
  • PLAID_ENV=sandbox adds a sandbox/ subdirectory for secrets/logs/exports.
  • Export output defaults to the current working directory:
    • ./output (production)
    • ./sandbox/output (sandbox)

Overrides

  • Pass --out-dir on export commands to explicitly choose output location
  • Set PLAID_SECRETS_DIR to override secrets location globally
  • Set YAPCLI_LOG_DIR to override log directory globally
  • Set YAPCLI_OUTPUT_DIR to override the default output directory globally

Development environment

See CONTRIBUTING.md for development workflow.

Project scripts

The CLI entry point is defined in pyproject.toml under [project.scripts] as yapcli = "yapcli.cli.main:main". When installed via pipx or pip, the yapcli command becomes available in your PATH.

Related works

Differences

  • Last updated / activitely updated / archived or depreciated
  • Works with institutions that require OAuth authentication
  • Works with institutions that require MFA authmentication
  • Installs in single command (doesn't require repo download or environment management)

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

yapcli-0.1.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

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

yapcli-0.1.1-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file yapcli-0.1.1.tar.gz.

File metadata

  • Download URL: yapcli-0.1.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yapcli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 eddb0ca95b5a4f7edb3a18879c60883ece5d7ebad02a3197bd9db3f822040557
MD5 cd00c71906571c4b82e1163afef11a1d
BLAKE2b-256 8e90c0ae306698649d9b0a25e0563413ef794cc74ec7851d0c19d6585ade88b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for yapcli-0.1.1.tar.gz:

Publisher: publish.yml on thisIsMikeKane/yapcli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yapcli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yapcli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yapcli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9fdb5bbaa3816cdac5ffc5e828ee837c771b81004f808e6f1aaa4a10b5974e17
MD5 56170552efd8573f800e674951854df7
BLAKE2b-256 60846ea20b56e499a6d6e56422a32d5541f69037e71a09fcf54161653f73e6a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for yapcli-0.1.1-py3-none-any.whl:

Publisher: publish.yml on thisIsMikeKane/yapcli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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