Penny Pincher

A tiny CLI that lets an agent read your bank account data through Plaid, using a stateless hosted broker and JSON-first commands.

npx penny-pincher auth
npx penny-pincher accounts
npx penny-pincher balances
npx penny-pincher transactions --days 30

How It Works

1. Connect

Run npx penny-pincher auth. Penny Pincher opens Plaid Link in your browser and saves an encrypted token envelope locally.

2. Query

Run commands like balances or transactions. The CLI signs each request and prints JSON for agents and scripts.

3. Stay Local

The backend stores no per-user tokens. It decrypts the local envelope only long enough to call Plaid.

Hosted Backend

Deploy the repository to Vercel and configure these environment variables:

PLAID_CLIENT_ID=your-client-id
PLAID_SECRET=your-secret
PLAID_ENV=sandbox
PLAID_REDIRECT_URI=http://localhost:7777/oauth-return
PENNY_PINCHER_ENCRYPTION_KEY=generated-with-openssl-rand-base64-32
PENNY_PINCHER_TOKEN_KEY_VERSION=v1

Point the CLI at your deployment if you are not using the default endpoint:

export PENNY_PINCHER_API_URL=https://your-vercel-app.vercel.app
npx penny-pincher auth

Commands

penny-pincher auth
penny-pincher accounts
penny-pincher balances
penny-pincher transactions --start 2026-04-01 --end 2026-05-01
penny-pincher identity
penny-pincher numbers
penny-pincher status
penny-pincher logout

Bring Your Own Plaid

Developers can skip the hosted broker and use local Plaid credentials:

export PLAID_CLIENT_ID=your-client-id
export PLAID_SECRET=your-secret
export PLAID_ENV=sandbox
npx penny-pincher auth --direct-plaid

See the GitHub repository for source and publishing instructions.