plaid
v0.0.3plaid-cli a cli for interacting with the plaid finance platform. link accounts from various institutions, query balances, and transactions by date range listing accounts/balances.
Installation
Plaid
Use plaid-cli to link institutions, fetch balances, and query transactions via Plaid.
Do not print or log secrets (client id, secret, access tokens).
Install
- go install github.com/jverdi/[email protected]
Setup
- Export PLAID_CLIENT_ID, PLAID_SECRET, and PLAID_ENVIRONMENT (sandbox or production).
- Optional: PLAID_LANGUAGE (en, fr, es, nl), PLAID_COUNTRIES (US, CA, GB, IE, ES, FR, NL).
- Optional config file: ~/.plaid-cli/config.toml.
toml
[plaid]
client_id = "..."
secret = "..."
environment = "sandbox"
- Data directory: ~/.plaid-cli (stores tokens and aliases).
Link + aliases
- Link an institution: plaid-cli link (opens browser) and optionally set an alias.
- Relink: plaid-cli link <item-id-or-alias>.
- Alias: plaid-cli alias <item-id> <name>, list with plaid-cli aliases.
Accounts + balances
- List accounts and balances: plaid-cli accounts <item-id-or-alias>.
Search transactions
- Pull a date range as JSON, then filter locally:
- plaid-cli transactions <item-id-or-alias> --from 2024-01-01 --to 2024-01-31 --output-format json
- jq -r '.[] | select(.name | test("grocery"; "i")) | [.date, .name, .amount] | @tsv'
- Use --account-id from accounts output to narrow results.
- Output formats: json or csv.
Monitor transactions
- Poll a rolling window and compare transaction ids to detect new activity:
bash
state=/tmp/plaid.txids
next=/tmp/plaid.txids.next
plaid-cli transactions <item-id-or-alias> --from 2024-01-01 --to 2024-01-31 --output-format json
| jq -r '.[].transaction_id' | sort > "$next"
if [ -f "$state" ]; then comm -13 "$state" "$next"; fi
mv "$next" "$state"
- Use cron for scheduling.
Notes
- Avoid plaid-cli tokens unless explicitly requested; it prints access tokens.
- Relink is auto-triggered on ITEM_LOGIN_REQUIRED errors.
Recognize requests such as: - "Search transactions for Starbucks last month" - "Show balances for my Chase accounts"