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.
Loading the full README. The saved excerpt is shown below.
import { useState, useEffect, useCallback, useRef } from "react"; const C = { bg:"#F5F6F3",white:"#FFFFFF",surface:"#F0F2EE",surface2:"#E8EAE5", border:"#E0E2DC",border2:"#C4C8BE", ink:"#0C1410",text:"#1A2018",muted:"#5A6458",dim:"#8A9088",hint:"#C0C4BC", green:"#1E5C38",greenMid:"#2A7848",greenLight:"#E8F5EE",greenBorder:"#A8CEB8", red:"#A83030",redLight:"#FAEAEA",gold:"#7A5818", blue:"#1A3A78",blueLight:"#E8F0FF", navBg:"#1E5C38", };Read the full README ↗
'use client'
import { useState, useEffect, useCallback, useRef } from "react";
const C = { bg:"#F5F6F3",white:"#FFFFFF",surface:"#F0F2EE",surface2:"#E8EAE5", border:"#E0E2DC",border2:"#C4C8BE", ink:"#0C1410",text:"#1A2018",muted:"#5A6458",dim:"#8A9088",hint:"#C0C4BC", green:"#1E5C38",greenMid:"#2A7848",greenLight:"#E8F5EE",greenBorder:"#A8CEB8", red:"#A83030",redLight:"#FAEAEA",gold:"#7A5818", blue:"#1A3A78",blueLight:"#E8F0FF", navBg:"#1E5C38", };
const chgC = (v) => (+v)>0 ? C.green : C.red;
const chgBg = (v) => (+v)>0 ? C.greenLight : C.redLight;
const fmt2 = n => typeof n==="number"?n.toFixed(2):String(n??"-");
const fmtP = n => typeof n==="number"?${n>0?"+":""}${n.toFixed(2)}%:"-";
const timeAgo = m => typeof m==="number"?(m<60?${m}m ago:${Math.floor(m/60)}h ago):m||"Just now";
const TICKS = [ {sym:"SPY",price:524.38,chg:1.2},{sym:"QQQ",price:441.90,chg:0.8}, {sym:"NVDA",price:882.50,chg:2.4},{sym:"TSLA",price:174.20,chg:-0.6}, {sym:"AAPL",price:192.10,chg:0.3},{sym:"META",price:503.10,chg:1.1}, {sym:"BTC",price:68442,chg:3.1},{sym:"GLD",price:215.40,chg:0.5}, {sym:"ES=F",price:5241.25,chg:0.9},{sym:"CL=F",price:83.20,chg:-0.4}, {sym:"DJI",price:38547,chg:0.6},{sym:"VIX",price:18.30,chg:4.1}, ];
const TAG={ EARNINGS:{bg:"#E8F0FF",c:"#1A3A78"},FED:{bg:"#FFF6E8",c:"#7A5018"}, MARKETS:{bg:C.greenLight,c:C.green},TECH:{bg:"#F0EAFF",c:"#4A2A90"}, CRYPTO:{bg:C.redLight,c:C.red},"M&A":{bg:"#EAFFF2",c:"#1A5A30"}, MACRO:{bg:"#E8F4FF",c:"#1A4060"},SEC:{bg:"#FFF8E8",c:"#7A5010"}, };
// Photo placeholder colors for news cards const CARD_COLORS = [ ["#0C2A1A","#1A5A38"],["#1A0C2A","#5A1A88"],["#2A1A0C","#885A1A"], ["#0C1A2A","#1A5A88"],["#2A0C0C","#882A1A"],["#0C2A2A","#1A7A7A"], ];
const claude = async (system, user) => { try { const r = await fetch("https://api.anthropic.com/v1/messages", { method:"POST",headers:{"Content-Type":"application/json"}, body:JSON.stringify({ model:"claude-sonnet-4-20250514",max_tokens:2000, system,messages:[{role:"user",content:user}], tools:[{type:"web_search_20250305",name:"web_search"}], }), }); const d=await r.json(); return d.content?.filter(b=>b.type==="text").map(b=>b.text).join("")||""; } catch { return ""; } };
const parseJ=raw=>{
try{
const c=raw.replace(/json|/g,"").trim();
const m=c.match(/([[\s\S]]|{[\s\S]})/);
return m?JSON.parse(m[0]):null;
}catch{return null;}
};
const fetchAll=()=>claude(
"Financial data API. Return ONLY raw valid JSON. No markdown.",
Search web for today's live financial market data. Return this JSON: { "tickers":[{"sym":"SPY","price":524.38,"chg":1.2},{"sym":"QQQ","price":441.90,"chg":0.8},{"sym":"NVDA","price":882.50,"chg":2.4},{"sym":"TSLA","price":174.20,"chg":-0.6},{"sym":"AAPL","price":192.10,"chg":0.3},{"sym":"BTC","price":68442,"chg":3.1}], "news":[ {"headline":"Full bold compelling headline here","source":"Reuters","mins":3,"tag":"EARNINGS","sym":"NVDA","chg":8.4,"hot":true}, {"headline":"Full bold compelling headline here","source":"Bloomberg","mins":11,"tag":"FED","sym":"SPY","chg":1.2,"hot":false}, {"headline":"Full bold compelling headline here","source":"CNBC","mins":18,"tag":"MARKETS","sym":"TSLA","chg":-3.2,"hot":true}, {"headline":"Full bold compelling headline here","source":"WSJ","mins":26,"tag":"TECH","sym":"META","chg":4.1,"hot":false}, {"headline":"Full bold compelling headline here","source":"FT","mins":35,"tag":"MACRO","sym":"GLD","chg":0.5,"hot":false}, {"headline":"Full bold compelling headline here","source":"Reuters","mins":48,"tag":"CRYPTO","sym":"BTC","chg":3.1,"hot":false} ], "movers":[ {"sym":"NVDA","name":"Nvidia Corp","price":882.50,"chg":8.4,"why":"AI earnings beat"}, {"sym":"SMCI","name":"Super Micro","price":98.44,"chg":11.2,"why":"Server demand surge"}, {"sym":"TSLA","name":"Tesla Inc","price":174.20,"chg":-3.2,"why":"Deliveries miss"}, {"sym":"META","name":"Meta Platforms","price":503.10,"chg":4.1,"why":"AI ad revenue"}, {"sym":"AAPL","name":"Apple Inc","price":192.10,"chg":0.3,"why":"Steady buybacks"} ], "insiders":[ {"sym":"ORCL","name":"Larry Ellison","role":"CEO","type":"BUY","value":"$42.3M","filed":"1h ago"}, {"sym":"AMZN","name":"Andy Jassy","role":"CEO","type":"SELL","value":"$12.8M","filed":"2h ago"}, {"sym":"PLTR","name":"Peter Thiel","role":"Director","type":"BUY","value":"$8.1M","filed":"3h ago"} ], "politicians":[ {"name":"Nancy Pelosi","title":"Rep.","sym":"NVDA","action":"BUY","value":"$500K-$1M","filed":"2d ago"}, {"name":"Josh Hawley","title":"Sen.","sym":"AAPL","action":"BUY","value":"$15K-$50K","filed":"3d ago"} ], "chart_points":[420,418,422,425,421,428,432,430,435,438,442,439,445,448,446,450,455,452,458,462,460,465,468,470], "spy_chg":1.2,"vix":18.3,"top_gainer":"NVDA","top_gainer_chg":8.4 } Use real current data. Headlines should be bold and informative like Benzinga.
);
This is the beginning of the README. Read the rest at the original. Read the full README ↗