Pip is an open-source AI money companion that answers one practical question:
How much can I safely spend today?
It calculates Spendable Cash Today from read-only financial data, upcoming cash flow, recurring bills, card payments, and savings pressure. The AI layer explains the result in plain English, but the money math stays in deterministic code that can be inspected, tested, and improved.
This repository is the public source release for Pip's core app and product logic. The hosted business deployment, production provider accounts, billing configuration, and deployment wiring are managed separately.
- Calculates a daily spendable number from account balances, upcoming income, bills, debt payments, and savings goals.
- Uses a chat-first onboarding flow that asks for consent before connecting read-only account data.
- Keeps financial calculations outside the AI model so explanations cannot silently change the math.
- Supports local fake-data mode so contributors can run the app without connecting real accounts.
- Shows how the app handles provider boundaries, auth state, account sync, prompt chips, and AI answer composition.
Pip is built around a narrow trust boundary:
- Read-only by design: Pip does not move money.
- Deterministic money engine: Spendable Cash Today is calculated in code, not generated by an AI model.
- Server-side provider credentials: Plaid, Stripe, Supabase service-role, and model credentials must never be exposed to the browser.
- Fake-data default for public development: You can evaluate the app locally without real bank data.
- Production separation: This repo intentionally excludes private production deploy settings, customer data, and provider accounts.
For more detail, read the architecture guide and security policy.
At a high level:
- The Next.js app handles the user-facing chat and app experience.
- Supabase Auth and Postgres provide identity, app state, and data storage when configured.
- Read-only financial providers normalize account, balance, and transaction data.
- The Pip cash engine calculates Spendable Cash Today.
- The AI layer explains the result and suggests safe next actions.
Use Node 24.
npm install
cp .env.example .env.local
npm run test
npm run buildRun the app in fake-data mode:
PIP_SUPABASE_MODE=off PIP_LOCAL_FAKE_APP_MODE=1 PIP_RATE_LIMIT_SALT=local-only npm run devOpen http://localhost:3000/app.
Useful local onboarding routes:
/app?onboarding=test
/app?onboarding=consent
/app?onboarding=ready
These routes are development-only and are useful for reviewing the paid-onboarding transition, consent prompt, and ready app state without touching real accounts.
npm run test
npm run build
npm run check:db-schema-names
npm audit --audit-level=highSecurity-sensitive changes should also include targeted tests for auth, provider token handling, rate limits, entitlement checks, account deletion, and prompt/agent behavior.
This public repo should include reusable Pip product logic and public documentation only.
Included:
- Pip agent behavior, onboarding logic, prompt chips, and app workflow state.
- Spendable Cash Today calculations, savings-goal logic, account-sync state, provider abstractions, and data-model logic that can be shared safely.
- Tests, migrations, fake fixtures, and public docs needed to understand the product.
Excluded:
- Production secrets, provider settings, customer data, billing configuration, and hosted deployment wiring.
- Private business operations, launch plans, admin tools, blog automation, and internal runbooks.
- Local agent files, planning documents, screenshots, scratch files, or generated attachments.
The public website is spendwithpip.com.
Pip is released under the MIT License.


