Wealthfolio
The open-source, private portfolio tracker — investments, net worth, spending, and simulations.
Local-first: your data lives on your device.
Website
·
Discord
·
Twitter
·
Releases
⬇️ Download for macOS · Windows · Linux · 📱 iOS App · 🐳 Docker
Introduction
Wealthfolio is an open-source, private portfolio tracker — investments, net worth, spending, and simulations. All your data is stored locally on your device: no cloud database, no account required, free forever.
For automatic brokerage syncing (30+ institutions, read-only) and encrypted multi-device sync, there's Wealthfolio Connect — an optional subscription that covers the real cost of the brokerage data connections. The app never requires it: manual tracking and CSV import are free, forever.
Visit the website at wealthfolio.app.

✨ Key Features
- 📊 Portfolio Tracking - Track your investments across multiple accounts and asset types
- 📈 Performance Analytics - True time-weighted and money-weighted returns, benchmark comparison, and historical analysis
- 💰 Activity Management - Import and manage all your trading activities
- 🎯 Goal Planning - Set and track financial goals with allocation management
- 🔒 Local Data - All data stored locally with no cloud dependencies
- 🔄 Optional Broker Sync - Auto-sync 30+ brokerages with Wealthfolio Connect (read-only, entirely optional)
- 🧩 Extensible - Powerful addon system for custom functionality
- 🌍 Multi-Currency - Support for multiple currencies with exchange rate management
- 📱 Cross-Platform - Desktop (Windows, macOS, Linux), iOS, and self-hosted Docker/web
Wealthfolio 3.7 requires macOS 12 or newer and iOS/iPadOS 16 or newer. macOS 12 installations should apply current macOS and Safari updates so the system WKWebView meets the Safari 16 browser floor. Windows uses the evergreen WebView2 runtime; Linux and self-hosted installations should keep WebKitGTK or their browser updated.
🧩 Addon System
Wealthfolio features a powerful addon system that allows developers to extend functionality:
- 🔌 Easy Development - TypeScript SDK with full type safety and hot reload
- 🔒 Secure - Comprehensive permission system with user consent
- ⚡ High Performance - Optimized for speed with minimal overhead
- 🎨 UI Integration - Add custom pages, navigation items, and components
- 📡 Real-time Events - Listen to portfolio updates, market sync, and user actions
- 🗄️ Full Data Access - Access to accounts, holdings, activities, and market data
- 🔐 Secrets Management - Secure storage for API keys and sensitive data
- 📦 Private Assets - Package images, fonts, media, configuration, and Wasm for the isolated addon sandbox
Get started building addons: See the Addon Documentation Hub
Documentation for all Activity types, including the required form fields, is available in docs/activities/activity-types.md.
Roadmap
See ROADMAP.md.
📖 Documentation
Core Application
- Activity Types - Complete guide to all supported activity types and their required fields
- Roadmap - Future plans and development roadmap
Architecture
- Adapter System - Compile-time environment detection for Desktop/Web builds
Addon Development
- Addon Documentation Hub - Main entry point for addon development
- Getting Started - Guide to get started with addon development
- API Reference - Complete API documentation with examples
- Architecture - Design patterns and architecture guide
- v3.6 to v3.7 Migration - Packaged assets and compatibility notes
Quick Links
- 💡 Official Addons - Browse maintained addon examples in the official addon repository
- 🧩 Community Addons - Browse addons shared by the community in the community addon directory
- 🛠️ Development Tools - CLI tools for addon development
Getting Started
Prerequisites
Ensure you have the following installed on your machine:
Building from Source
Clone the repository:
git clone https://github.com/wealthfolio/wealthfolio.git cd wealthfolioInstall dependencies using pnpm:
pnpm installSetup environment configuration:
Copy the environment template and configure it for your setup:
cp .env.example .envUpdate the
.envfile with your database path and other configuration as needed:# Database location DATABASE_URL=../db/wealthfolio.dbRun in Development Mode:
Build and run the desktop application using Tauri:
pnpm tauri dev
Addon Development Mode
Addon hot reload servers now start only when you explicitly opt in.
For desktop development with Tauri:
VITE_ENABLE_ADDON_DEV_MODE=true pnpm tauri dev
For browser-only development (Vite only, no Tauri):
pnpm dev:addons
You can also set VITE_ENABLE_ADDON_DEV_MODE=true in your .env file to
persist the setting.
- Build for Production:
Build the application for production:
pnpm tauri build
Web Mode (Browser + REST API server)
Run the web UI with a local Axum server with one command.
Quick Start
Setup environment (optional but recommended):
Copy the example environment file and customize it for your setup:
cp .env.web.example .env.webEdit
.env.webto configure database path, ports, and other settings as needed.Start both backend and Vite dev server:
pnpm run dev:webThe Vite dev server runs at
http://localhost:1420and proxies API calls to the Axum backend server.
Configuration
All configuration is done via environment variables in .env.web.
Server Configuration (WF_* variables):
WF_LISTEN_ADDR- Server bind address (default:0.0.0.0:8088)WF_DB_PATH- SQLite database path or directory (default:./db/app.db)- If a direc
