Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证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.