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.