fire

Financial Independence, Retire Early

When can I retire?
Now you'll know.

fire is a self-hosted retirement tracker. Your whole net worth, retirement projections, portfolio insights and side-hustle tracking in one dashboard, plus a 16-tool read-only MCP server so Claude can answer questions about it. Your data stays in one JSON file on your machine.

The demo runs entirely in your browser and saves to localStorage.

The full tour

Everything fire does, in 85 seconds.

Narrated deep dives on Projections, Chaos mode, Insights, the Side Hustle Hub, getting your data in, and privacy are rendered from the real app in promo/.

One dashboard

Your whole net worth, live.

Net worth, income, spend rate and FIRE progress sit at the top of every tab. The dashboard puts your retirement growth path, a drill-down asset allocation and your cash and fixed income side by side, with live prices pushed over SSE.

fire dashboard showing net worth, retirement growth path, asset allocation, and cash and fixed income

Everything counts

Yes, even the Malibu.

Savings, brokerage, Roth, CDs with maturity dates, gold and silver by the troy ounce at live spot, ENS names and 0x wallets across eight registered chains, real estate, and the car. Negative equity counts too.

  • Fidelity, Chase, Capital One and eBay CSV import, parsed locally
  • Plaid sync for positions and transactions (self-hosted, and Netlify Functions on the hosted demo)
  • NHTSA VIN decode for vehicles
  • eBay OAuth order sync and side-gig tax tracking
Holdings table listing a high-yield savings account, checking, a Roth IRA, fire-demo-wallet.eth, Gold Eagles and three CDs
Vehicles table with a paid-off 2014 Chevy Malibu

Projections

Stress-test your retire date.

The projection engine grows your portfolio until retirement, then draws it down cash-first. Try bear and bull scenarios, switch between Conservative, Standard, Aggressive and Early Retiree presets, and see when the money would run out.

Retirement growth path chart, base-rate scenario

New Β· Chaos mode

Every plan assumes nothing goes wrong.

Turn on πŸŒͺ️ Chaos, next to Bear and Bull, and fire scatters realistic life events across your projection: a gallbladder surgery, a cat's cancer, a new baby, a promotion, a windfall. Green β–² markers push your net worth up, red β–Ό markers pull it down, and a dashed line shows where you'd be if life went to plan.

  • 37 events across 8 categories, the good ones too: an inherited house, a refinance, a roommate, a windfall
  • Timed like real life: age windows, life-average odds, and sequences (a parent's care β†’ the funeral β†’ the inheritance)
  • Costs that outrun inflation (rent, child and elder care, medical bills) climb faster, using your inflation setting
  • Hover or tap any marker to see what happened, what led to it and what it cost
  • Dashboard and Projections, desktop and phone Β· 🎲 reroll

πŸ›‘οΈ Mitigate the hits. Tick the coverage you have (pet insurance, an HSA, an umbrella policy, a credit freeze…) and Chaos mode shrinks the hits it covers and charges what it costs. Each one shows what it would have saved in your simulated life.

New Β· Make it yours

Your dashboard, your way.

Every tab is built from sections, and each section picks its columns: full width, 2, 3 or 4, or wide on the left, right or center. A card alone in a section fills the row. Hit ✎ Customize and the tab becomes a builder canvas: drag a card (mouse or finger), watch the target light up, and drop it into a cell or onto a new section.

  • Click any card title to collapse it
  • On the Dashboard, οΌ‹ Add widget pins any card from another tab, like CD Ladder or Milestone Predictions
  • Works on every tab; phones get one tidy column
  • Remembered across sessions
Dashboard in Customize mode: a dotted builder canvas with outlined sections, a column-layout picker per section, and drag, move, collapse and remove controls on each card
Add widgets to your Dashboard picker listing cards from the Financial Overview and Expenses tabs
Scenario comparison table showing FIRE age under savings, bear market and inflation scenarios

Scenario comparison

See how a raise, a bear market or an inflation spike moves your FIRE age, side by side.

Portfolio insights cards: equity concentration, single-stock risk and CD maturing soon, next to a rebalancing tool

Insights & rebalancing

Concentration risk, emergency fund runway, CDs maturing soon, tax-loss harvesting alerts and a target-allocation rebalancer.

Side Hustle Hub with an eBay platform fee calculator

Side Hustle Hub

eBay, Etsy and Facebook fee calculators, a sales ledger with eBay OAuth sync, and income that stays out of net worth.

Built for Claude

Ask Claude about your money.

An MCP server ships in the box, and .mcp.json connects it automatically when you open the repo in Claude Code. It exposes 16 tools, all read-only: the smoke test now checks the full registered tool set, while the unit suite also guards against writes.

Add the fire-coach Claude skill and Claude also gets a FIRE playbook (the 4% rule, savings rate, order of operations, taxes, sequence risk, what to do when income stops) and a guide to every tab, so it answers with your numbers and tells you which button to press.

  • fire_status_summary
  • get_net_worth
  • get_net_worth_trend
  • get_accounts
  • get_portfolio
  • get_cds
  • get_expenses
  • get_projection_settings
  • get_side_gig_income
  • get_side_gig_tax_summary
  • get_wallets
  • get_concentration_risk
  • get_diversification_score
  • get_swr_sensitivity
  • simulate_rebalance
  • get_emergency_runway
> how close am I to FIRE?

⏺ fire · fire_status_summary (MCP)
  {
    "fireNumber": 1116000,
    "currentNetWorth": 288278,
    "progressPercent": 25.8,
    "yearsToFire": 13,
    "coastFireReached": false
  }

Your money. Your machine.

Local by default

Everything lives in data/db.json, written atomically. It is read-only toward your real accounts and never initiates a transaction.

Encrypted at rest

Set SYNC_MASTER_KEY for AES-256-GCM encryption of the database, plus optional encrypted Google Drive backups. Drive uses Google OAuth self-hosted and on the hosted deploy, and a backup reports success only after it is read back, decrypted and matched.

Locked down

API-key auth is on by default. The app port binds to loopback only, and Caddy serves HTTPS. CSP headers, SRI-pinned scripts and rate limits are applied to every response.

Up in a minute.

Requires Docker Desktop. Set FIRE_API_KEY in .env (or FIRE_AUTH_DISABLED=true for local-only use), then open http://localhost:3001.

$ git clone https://github.com/nitsuah/fire.git
$ cd fire
$ cp .env.example .env
# edit .env: set FIRE_API_KEY (or FIRE_AUTH_DISABLED=true for local-only use)
$ docker compose up -d