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.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Real time investment portfolio monitoring for free in one static HTML file!
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Live prices for stocks, crypto and commodities in a single static HTML file. No server, no build step, no dependencies, no account. Open index.html and it works.
Most portfolio trackers want one of three things from you: brokerage credentials, a monthly subscription, or an account. The free ones are usually delayed, ad-supported, or quietly harvesting your holdings.Read the full README ↗Live prices for stocks, crypto and commodities in a single static HTML file. No server, no build step, no dependencies, no account. Open index.html and it works.
Most portfolio trackers want one of three things from you: brokerage credentials, a monthly subscription, or an account. The free ones are usually delayed, ad-supported, or quietly harvesting your holdings.
The constraint I set was: a genuinely useful real-time tracker where your positions never leave your browser, using only free data. That rules out a backend (nothing to send data to), which in turn rules out the usual answer to every hard problem below — no server-side caching, no API-key proxying, no rate-limit pooling across users. Everything has to work from a static file on GitHub Pages.
Most of what's interesting here is the consequences of that constraint.
| 11 data sources, automatic failover | Picks whichever source covers the most symbols, then backfills individual missing fields from the others. Seven are keyless and direct-CORS — including Alpaca's crypto snapshots, spot metals, energy perps, and tokenized versions of ~170 large US stocks — so a no-key portfolio of crypto, big-name stocks, metals and energy never depends on the proxy fleet for a price. |
| Real-time streaming | Trade-by-trade stock prices over WebSocket from Alpaca (IEX) and FinnHub, split so a portfolio with both keys streams up to 80 positions; Coinbase Exchange overlay so crypto ticks on a 2-second interval instead of waiting on CoinGecko's free API, which caches most data for 1–5 minutes. |
| Delayed data is labelled | Any price its source serves on a delay — futures, Alpaca's delayed-SIP fallback — carries a superscript D with the reason and the lag, and it clears only when a source positively confirms the price is live. A stale price is never shown as if it were live. |
| Works with zero configuration | No API key required. Keys unlock more columns and streaming, but the app is useful on first open. |
| Everything stays local | localStorage only. Positions, quantities and cost basis never leave the browser; the only things sent out are the ticker symbols needed to fetch prices, to the data providers (and, for Yahoo, public CORS proxies), and, on the official site, one anonymous visit count that carries none of them (see Trust below). |
| 33 data columns | Sortable, reorderable, hideable, with per-symbol notes, price alerts, and multi-portfolio support. |
| Genuinely mobile | The table becomes tap-to-expand cards with inline editing, drag-reorder, and pull-to-refresh — not a squeezed desktop layout. |
1. Download index.html (or clone this repo)
2. Open it in any modern browser — desktop or mobile
3. Type a ticker, share count, and cost basis → + Add
That's it. No install, no npm, no server.
A Welcome Guide opens as a dialog on first launch, and Load Sample Data fills the table with a few well-known positions if you want to see it working before entering your own. Dismiss the guide with its close button, the backdrop, or Esc; re-open it any time from Settings → Show Welcome Guide.
Optional free API keys (Settings panel) unlock the rest: Alpaca adds a real-time trade stream for your 30 largest stock positions, real bid/ask, and a delayed-SIP fallback that covers names IEX alone misses (Alpaca's real-time crypto needs no key and runs for everyone); FinnHub adds a second stream plus P/E, EPS, beta, dividends, earnings dates, and analyst ratings; an FMP key adds a third quote fallback, but only keys issued before September 2025 (FMP retired the endpoint this app uses for newer free plans).
Generate Alpaca keys from a paper-trading account. The Basic market-data plan is identical for paper and live keys, and a paper key can't move real money if it ever leaks from your browser — the keys live in localStorage, readable by any script on the origin.
A key is optional. Without one you still get real-time crypto prices, real-time prices for ~170 large US stocks and ETFs through their Kraken tokens (marked T), and the rest of the stock market through Yahoo, refreshed once a minute. A free Alpaca or FinnHub key is the recommended setup for stocks: it gives every US stock its real price, and adds what no keyless source publishes — P/E, EPS, beta, dividends, earnings dates, analyst ratings, real bid/ask, and WebSocket streaming.
Push to GitHub → Settings → Pages → source main, folder / → visit https://<user>.github.io/<repo>/. It's a static file; there is nothing to configure.
Every refresh runs as three waves, and each wave-1 source paints the moment it lands rather than waiting for its siblings — so every row appears at the speed of its own source, not the slowest one:
This is the beginning of the README. Read the rest at the original. Read the full README ↗