A comprehensive open-source wealth management tool.
Project description
WealthOS
WealthOS is a modern, privacy‑first portfolio tracker with a fast CLI, a clean web UI (Next.js), and extensible data sources. It focuses on crypto first and stays flexible for other assets.
Highlights
- Clean dashboard with KPIs, allocation, P&L over time, top holdings, and recent activity
- Multi‑account filtering, dark mode, centered responsive layout
- Powerful transactions tables (edit in dialog, batch delete, sort/filter, column visibility)
- Robust API (FastAPI) and CLI (Typer) for full control and automation
- CSV import/export, charts, and PDF reports
Install
- Python 3.11+ required
- Optional for UI: Node.js 18+ (only needed to build/run the Next.js UI)
From PyPI (recommended):
pip install wealth-os- Or with pipx:
pipx install wealth-os(great for a standalone CLI)
From source (developers):
uv syncto install local deps into the virtualenv
Quick Start
- Configure environment
- Copy
.env.exampleto.env - Set
COINMARKETCAP_API_KEY=...and/orCOINDESK_API_KEY=...for price data (optional) - Optionals:
WEALTH_DB_PATH=wealth.db,WEALTH_BASE_CURRENCY=USD
- Initialize the DB
wealth init- Seed demo data (optional):
wealth seed
- Run API + UI
- Production UI:
wealth ui- Force rebuild if needed:
wealth ui --build - Custom ports:
wealth ui --ui-port 4000 --api-port 8002
- Force rebuild if needed:
- Dev UI:
wealth ui --dev
CLI Essentials
- Help:
wealth --help - Accounts:
wealth account add|list|update|remove - Transactions:
wealth tx add|list|update|remove - Prices:
wealth price quote|sync - Portfolio:
wealth portfolio summary|chart - CSV:
wealth import csv .../wealth export csv ... - Reports:
wealth report generate
Web UI Overview
- Dashboard: KPIs, Portfolio Allocation, Realized P&L, Top Holdings by Value, Recent Activity
- Accounts: Grid of accounts; click to open an account view
- Account View: KPIs scoped to that account, allocation, P&L, volume, and a full transactions table
- Transactions: Full DataTable with edit, delete, batch operations, filtering, column visibility
Design
- Centered content on large screens; clean spacing; dark mode toggle in the sidebar
- Accessible controls and meaningful labels (e.g., “Trade Volume (Buy vs Sell)”, “Recent Activity”)
Development
- Run tests:
uv run pytest -q - Lint/typecheck (suggested): ruff/mypy/eslint if you use them locally
Publish to PyPI
Maintainers: steps to cut a release.
- Bump
versioninpyproject.tomland update changelog if applicable - Build artifacts:
python -m pip install --upgrade build twinepython -m build# createsdist/*.tar.gzanddist/*.whltwine check dist/*
- Optional: TestPyPI smoke test
twine upload -r testpypi dist/*pip install -i https://test.pypi.org/simple wealth-os
- Publish to PyPI
twine upload dist/*
After install, the CLI entry point is wealth (or run python -m wealth_os).
Licensing & Contributing
- License: MIT (see LICENSE)
- Contributions welcome — read CONTRIBUTING.md for guidelines
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wealth_os-0.1.2.tar.gz.
File metadata
- Download URL: wealth_os-0.1.2.tar.gz
- Upload date:
- Size: 246.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4c4af76351b584c3798437605562d24d3a5d2ad4fa2571cac59cfea09a80fac
|
|
| MD5 |
b3e9c78769c5326148e0fe856945d095
|
|
| BLAKE2b-256 |
dbbdb32fcfcef04ad787e246b51639363d01430a66810226f4f229d78bae16e5
|
Provenance
The following attestation bundles were made for wealth_os-0.1.2.tar.gz:
Publisher:
publish.yml on dowhiledev/wealth
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wealth_os-0.1.2.tar.gz -
Subject digest:
b4c4af76351b584c3798437605562d24d3a5d2ad4fa2571cac59cfea09a80fac - Sigstore transparency entry: 623114635
- Sigstore integration time:
-
Permalink:
dowhiledev/wealth@7f907ea8083dfd4b41d7997bf25f8cabb24dd629 -
Branch / Tag:
refs/tags/0.1.2 - Owner: https://github.com/dowhiledev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7f907ea8083dfd4b41d7997bf25f8cabb24dd629 -
Trigger Event:
push
-
Statement type:
File details
Details for the file wealth_os-0.1.2-py3-none-any.whl.
File metadata
- Download URL: wealth_os-0.1.2-py3-none-any.whl
- Upload date:
- Size: 199.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d189c1b9d7bd0541737e49da05da1eaa2a2b189ef4329bb82499d90d19ef3c4
|
|
| MD5 |
9e974aa9a5007f7b40bb5d7f8a17fd3e
|
|
| BLAKE2b-256 |
b29cbedc9ffc4976664ca5e5569957b4b38d3cfc4e81e44f36038529c499651e
|
Provenance
The following attestation bundles were made for wealth_os-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on dowhiledev/wealth
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wealth_os-0.1.2-py3-none-any.whl -
Subject digest:
2d189c1b9d7bd0541737e49da05da1eaa2a2b189ef4329bb82499d90d19ef3c4 - Sigstore transparency entry: 623114637
- Sigstore integration time:
-
Permalink:
dowhiledev/wealth@7f907ea8083dfd4b41d7997bf25f8cabb24dd629 -
Branch / Tag:
refs/tags/0.1.2 - Owner: https://github.com/dowhiledev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7f907ea8083dfd4b41d7997bf25f8cabb24dd629 -
Trigger Event:
push
-
Statement type: