Questions, pinched.
A first-pass answer sheet for agents, humans, and anyone wondering how Penny-Pincher touches bank data.
What is Penny-Pincher?
Penny-Pincher is an open-source CLI that lets you connect a bank through Plaid and print account data as JSON for scripts or coding agents.
Does Penny-Pincher see my bank password?
No. Bank login happens inside Plaid Link. Penny-Pincher receives a Plaid public token, exchanges it through the broker, and stores a local encrypted token envelope.
Where are credentials stored?
The CLI stores local metadata in ~/.penny-pincer/config.json with restrictive file permissions. Treat that file like a password because it can authorize reads through your linked Plaid item.
What can an agent read?
Today the CLI supports accounts, balances, transactions, identity, account/routing numbers when enabled, status, and logout. Data commands write JSON to stdout.
Why is there a hosted backend?
Plaid secrets must stay server-side. The hosted broker creates link tokens, exchanges public tokens, and calls Plaid without storing per-user access tokens in a database.
Is the backend stateless?
Yes for per-user bank tokens. The backend keeps Plaid app credentials and an encryption key in Vercel environment variables; users keep encrypted token envelopes locally.
Can I self-host it?
Yes. Deploy the repo to Vercel, set your Plaid credentials and Penny-Pincher encryption key, then point the CLI at your broker with PENNY_PINCHER_API_URL.
How do I test without a real bank?
Use Plaid sandbox with penny-pincer auth --env sandbox. Sandbox institutions return fake account, balance, and transaction data.
Can I revoke access?
penny-pincer logout removes the local token envelope. For complete revocation, remove the connected item in Plaid or your bank connection settings.