PRISM-INSIGHT
These are 13 specialized AI agents that analyze Korean and US stocks in real-time, and this is open source and free to use.
AI translation
Household finances across dollars and shekels.
Translation pending
FinanceGitHub @JNamrowOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Household finance for multi-currency household. Currently only USD and ILS (Plaid + Israeli Banks), self-hosted on Supabase + Vercel.
Taken from the repository README
Loading the full README.
Read the full README ↗Household finance for people whose money lives in multiple countries and currencies.
Peanut is a Monarch-style personal finance app that holds dollars and shekels side by side. Every amount is stored in its own currency and converted at the day's rate only for display.
It is a personal project I use every day. It is free and open source (MIT) and built to be self-hosted on a free Supabase project plus Vercel.
Open the live demo. One click, no sign-up. It is a shared household with made-up data (two people, shekel and dollar accounts, two years of history), so click around and change whatever you like. It resets every couple of hours. Bank connections and uploads are switched off in the demo; run Peanut yourself to use it with your own accounts.
Every screenshot is the live demo household.
| Dashboard | Accounts |
|---|---|
| Transactions | Reports |
|---|---|
| Budget | Recurring |
|---|---|
| Investments | Forecasting |
|---|---|
| Source | What | How |
|---|---|---|
| Plaid | US banks, cards, brokerage (txns, balances, holdings) | /transactions/sync + /investments/holdings/get, access tokens in Supabase Vault |
| RiseUp | Israeli accounts: transactions with RiseUp's Hebrew categories | Official PAT API (input.riseup.co.il/api/external), token expires every 30 days, the UI warns at day 25. No balances endpoint yet (balances stay manual until RiseUp ships it) |
| data.gov.il | Pension/hishtalmut track yields (Gemelnet/Pensianet) | "Anchor + drift": statement balance rolled forward by published monthly yield minus fee, plus deposits |
| Financy (open-finance.ai) | Israeli banks, cards, loans and savings: accounts, balances and transactions with Financy's categories | Official REST API (api.open-finance.ai) with your own client id / secret / user id, stored in Supabase Vault. Banks are linked inside the Financy app; the API needs a paid Financy plan |
| frankfurter.dev | Daily USD/ILS (ECB) | fx_rates table, backfilled to 2019 |
RiseUp and Financy both cover Israeli accounts, so use either or both. RiseUp needs a personal token renewed every 30 days and has no balances; Financy needs a paid plan and returns balances and a year of daily history straight from the bank. Peanut keeps only the API credentials; the bank consent lives with the provider.
supabase/migrations,
in file order (supabase link then supabase db push, or paste each file
into the SQL editor). The first file is the full schema; the later ones add
small pieces on top of it..env.example to .env.local and fill it in. Plaid needs a client id
and secret for the environment you pick; CRON_SECRET is any long random string.pnpm install then pnpm dev.SEED_USERS (and optionally
SEED_SPACE_NAME, SEED_PRIMARY_CURRENCY) in .env.local, then run
node scripts/seed.mjs. It creates the users, the shared space, Monarch-style
categories plus the Israeli ones, Plaid category aliases and FX history, and
prints a first password for each new user.vercel.json schedules the daily
sync at 03:00 UTC; Vercel calls it with Authorization: Bearer $CRON_SECRET.Set DEMO_MODE=1 plus NEXT_PUBLIC_DEMO_EMAIL and NEXT_PUBLIC_DEMO_PASSWORD
on a deployment and it serves only the demo household: /demo signs visitors
in with that account, /login is never offered, unknown URLs land on the
about page, and bank connections, syncing, uploads and password changes are
off. The household is generated by src/lib/demo/seed.ts (same data on every
rebuild, dates relative to today) and rebuilt by the server when the last
rebuild is older than two hours. The demo login is public by design: the
account is a member of the demo household only, and row-level security keeps
it out of everything else. Keep the demo on its own Supabase project unless
you have read the policies yourself.
isIncome decides the sign.kind='transfer' is excluded from cash flow, budget, and reports. No pair matching.(connection_id, external_id) with upserts, so re-syncs are idempotent.peanut_vault_* RPCs (service-role only).GET /api/cron/daily at 03:00 UTC with
Authorization: Bearer $CRON_SECRET (fx → every bank connection: RiseUp,
Plaid, Financy → pensions → snapshots).Peanut is built for one household at a time: one Supabase project per household, every listed user an owner. It has not been reviewed for hosting strangers' data on a shared instance. The only hosted instance is the demo.
MIT. See LICENSE.