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.0.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.0-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yapcli-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 f70e1005d65d7a5c85ace999e1c5645769a20a704a0b7a8f7001207485a190ed
MD5 2b6bd98dea321898d245436e238a9b40
BLAKE2b-256 2e888dfaefb195431f522d46ddeeb235b39f6306afc5ba904c117c9287216905

See more details on using hashes here.

Provenance

The following attestation bundles were made for yapcli-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: yapcli-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0e8b392e900ccfa9e221e456575f82b34bfc6aeae0262554d7bb7b76b025cc46
MD5 cc626043844d217d5091042a934e2ea8
BLAKE2b-256 d688a61e42aa582ab700b3264707d4bc607fcf8b97c8be80236975e43d997537

See more details on using hashes here.

Provenance

The following attestation bundles were made for yapcli-0.1.0-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