plaid
SKILL.md
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/plaid-cli@0.0.2
Setup
- Export
PLAID_CLIENT_ID,PLAID_SECRET, andPLAID_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.[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 withplaid-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 jsonjq -r '.[] | select(.name | test("grocery"; "i")) | [.date, .name, .amount] | @tsv'
- Use
--account-idfromaccountsoutput to narrow results. - Output formats:
jsonorcsv.
Monitor transactions
- Poll a rolling window and compare transaction ids to detect new activity:
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 tokensunless explicitly requested; it prints access tokens. - Relink is auto-triggered on
ITEM_LOGIN_REQUIREDerrors.
Recognize requests such as:
- "Search transactions for Starbucks last month"
- "Show balances for my Chase accounts"