PERSONAL TOOL · VIBECODING · 2026

Investment Assistant

A private dashboard I built for myself to track multi-market holdings.

USE
Personal · Single user
YEAR
2026
STACK
Flask · SQLite · Alpine.js
DATA
Local-only
Investment Assistant — poster
WHAT IT DOES

What it does.

A private dashboard for tracking multi-market holdings — and seeing whether my decisions agree with the AI's.

01

Cross-market holdings

A-shares, ASX, HK, mainland funds, physical gold — five asset classes, four currencies, one screen.

02

Daily AI advice

One button packages my holdings, indicators (MA, RSI) and filtered news; Claude returns a position-by-position recommendation.

03

Action log + alignment

Every action I take is auto-classified against that day's AI advice: agreed, opposed, partial. Did I beat the model? Now I can tell.

04

Equity curve + calendar

Nightly snapshots build the equity curve. A daily P&L job paints each day green or red on a calendar — the shape of a month at a glance.

DEMO

Try it — synthetic data, real interactions.

The dashboard below mirrors the real app's interactions. Holdings, prices and AI replies are all fabricated for this demo — but the buttons, currency switcher, calendar and live updates work exactly like the original.

invest.aidenyang.me · demo

Investment Assistant demo

Prices updated just now · 1 AUD = 4.72 CNY

Total value
¥ 0
Today · CNY assets
+¥ 0
+0.00%
Today · AUD assets
A$ 0
0.00%
Equity curve · 30 days
CNY + AUD assets, in display currency
CNY assets AUD assets
Holdings
Prices auto-refresh every 4s
Name Qty Price Day Value
AI advice
Click "Generate today's advice"

No advice generated yet for today.

AI alignment · this month
auto-classified
45%
Aligned
22%
Opposed
33%
Skipped

Of 18 trades this month, how many followed the AI's same-day recommendation. Did I beat the model? Track over time.

Action log
Add a trade below
    Bought this month
    ¥ 0
    Sold this month
    ¥ 0
    Today's news
    filtered by my holdings
      THE ARCHITECTURE

      Designed around a boundary.

      My holdings live inside the dashed box — on my laptop, never anywhere else. Cloudflare guards the entrance; the outside world only ever sends prices in, never reads anything out.

      MY LAPTOP · DATA NEVER LEAVES gate ME PHONE CF Tunnel ACCESS · SSO LOGIN akshare · yfinance · Anthropic EXTERNAL · READ-ONLY PULL Flask 127.0.0.1:5180 api · services · views portfolio.db SQLITE · WAL launchd × 6 SCHEDULED · LOCAL MY DEVICE BOUNDARY EXTERNAL PULL
      TIP

      Tap a node

      Click on any block in the diagram to see what it does and why I picked it.

      Back to all works