Open Net Worth
Open Net Worth는 직접 운영하는 오픈소스 개인 AI 자산 비서로, 전체 재무를 하나의 원장에 기록하고 사용자가 제어하는 AI가 관리
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Self-hosted Next.js dashboard for a stock & options portfolio — CSPs, covered calls, LEAPs, spreads, closed-trade P&L, VIX regime, and a pre-market brief. Reads local JSON from the companion Schwab bridge. Private via Tailscale
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A self-hosted Next.js dashboard for tracking a stock & options portfolio — holdings,
open option positions (cash-secured puts, covered calls, LEAPs, spreads), closed-trade
history, P&L, research signals, and market context (VIX, breadth). Read-only: it
displays data, it never places trades.
The app reads its data from local JSON files in data/, which are written by a companion
data bridge. Out of the box — with no data and no bridge — it runs in example mode on a
built-in demo dataset, so you can explore the whole UI immediately.README 전문 보기 ↗A self-hosted Next.js dashboard for tracking a stock & options portfolio — holdings, open option positions (cash-secured puts, covered calls, LEAPs, spreads), closed-trade history, P&L, research signals, and market context (VIX, breadth). Read-only: it displays data, it never places trades.
The app reads its data from local JSON files in data/, which are written by a companion
data bridge. Out of the box — with no data and no bridge — it runs in example mode on a
built-in demo dataset, so you can explore the whole UI immediately.
/api/chart route. Hold any
ticker anywhere in the app for 1.8 seconds to open it theredata/sectors.json (Yahoo Finance — Schwab's API has none);
correct any by hand under its overrides mapnpm install
npm run dev # dev server at http://localhost:3000
The dev server binds 0.0.0.0, so you can also reach it from other devices on your
network at http://<your-machine-ip>:3000.
For a production build:
npm run build
npm run start # serves the optimized build on port 3000
With no data/ files present, every view renders the example dataset — nothing to
configure to look around.
The app loads a portfolio snapshot in this order:
lib/example.tsdata/snapshot.json (and the other data/*.json files)Everything in data/*.json is gitignored — real portfolio data never gets committed.
To feed the dashboard live data, run the companion bridge, which writes those JSON files:
Data bridge:
Schwab_Bridge_Public— a small read-only Python bridge that pulls from a Charles Schwab account and writes thedata/*.jsonthis app reads. Point itsAPP_DATA_DIRat this project'sdata/folder.
Connect your Schwab account right from the app: open Settings → Schwab connection to enter your App Key/Secret (first run) and do the weekly re-login — no CLI needed. The app is write-only toward the bridge: it deposits credentials and the pasted login URL and never reads the bridge's secrets back.
It runs anywhere Node runs, including a Raspberry Pi. A simple pattern is to run
npm run start under a process manager (e.g. a systemd service) so it auto-starts on
boot, with the bridge running alongside it writing fresh data on an interval.
data/*.json snapshot is the single source of truth.githooks/pre-commit (plus a gitleaks
.pre-commit-config.yaml) blocks accidental commits of credential files or secret-looking
values. After cloning, enable it with git config core.hooksPath .githooks.