Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗cd into itbunx vercel link, then bunx vercel env pullbun installbun run devThen: make changes, preview locally. Commit to a branch for Github PR review (or main, if you're confident). The site autodeploys from main.
Note that this runs against the prod db, so be reasonably careful. We should have supabase backups but it's not well tested. Our dev db is currently out of date.
TODO: Update all this for agentic coding instructions
(note as of Jul 2026: everything below is left as (questionably useful) history)
curl -fsSL https://bun.sh/install | bashbun install(Easier to get started, but you'll be working against real data, so be careful)
# Get environment variables
bunx vercel link
bunx vercel env pull
# Run against remote
bun run dev # Production database
bun run dev:dev # Development database
(Somewhat trickier to set up)
bun run supabase:localbun run setup-local-envbun run sync-data-from-prod. This requires additional keys.bun run dev:localnpx supabase db diff --schema public --file your_migration_namenpx supabase migration new your_migration_name then edit the file npx supabase migration up
bun run gen-types:local
# Link to target environment
npx supabase link --project-ref PROJECT_ID # fkousziwzbnkdkldjper for prod, oucjhqqretizqonyfyqu for dev
# Check what migrations will be applied
npx supabase migration list --linked
# Dry run to see what would happen and confirm its safety
npx supabase migration up --linked --dry-run
# Apply migrations
npx supabase migration up --linked
If you want Google Oauth to work locally, you should provide these values to your .env.development.local
SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID=your-client-id
SUPABASE_AUTH_EXTERNAL_GOOGLE_SECRET=your-secret
Setup for this requires:
http://127.0.0.1:54321/auth/v1/callback as an authorized reidrect URIbunx supabase login
bun run gen-types # From prod
bun run gen-types:dev # From dev
Admin status (access to /admin, adjusting user balances, approving grants,
transferring money between users, editing/restoring projects, etc.) is granted
by a hardcoded allowlist of email addresses — there is no database role or UI
toggle. The single source of truth is the ADMINS array in isAdmin() in
db/profile.ts. To make someone an admin, add their account's email there:
// db/profile.ts
const ADMINS = ['[email protected]', '[email protected]'] // ← add new admins here
The email must match the address on their Manifund/Google account exactly
(it's compared against user.email from Supabase Auth).
After editing, commit and deploy — the change takes effect on the next deploy
(no migration or env change needed). Verify with bun run build.
stripe listen --forward-to localhost:3000/api/stripe-endpoints