Portfolixir is an early-stage, self-hosted portfolio analytics and wealth graph platform built with Elixir, Phoenix, and LiveView.
Portfolixir focuses on transparent, ledger-driven portfolio analysis with a strong read/reporting surface. It is designed to keep financial logic explicit, testable, and auditable.
- Elixir/Phoenix foundation for reliable server-side state and testability.
- Deterministic read models for reports and portfolio insights.
- Clear safety boundaries: no broker execution, no real-money actions, no write-capable AI tooling in MVP direction.
- Early-stage MVP in active development.
- Not production-ready.
- Feature set is evolving through small scoped story cards.
Current merged surface includes:
- Portfolio, account, and transaction management basics.
- Securities workbench and security detail views.
- Classification and fund-allocation workbench pages.
- Read-only report pages (for example fund allocations and payments).
- Import overview and document/factsheet review flows.
Representative routes available in local runs include:
//securities/reports/payments/imports
Near-term direction is to harden portfolio read/reporting capabilities around:
- quote and valuation reliability,
- richer classifications/exposure reporting,
- safer import/reimport flows,
- read-only API/MCP boundaries.
Portfolixir is:
- not financial advice,
- not a broker,
- not a trading/payment/order execution platform,
- not intended for real-money actions in its current state.
MVP direction also excludes write-capable LLM/MCP tools.
- Docker Engine
- Docker Compose plugin (
docker compose)
docker compose up --buildOpen:
Stop and remove local volumes:
docker compose down -vProject quality gates:
mix format
mix testCI also enforces a coverage non-regression floor at 87.8% (ExCoveralls/Cobertura line coverage).
/api/read/* can be protected with an API key.
READ_API_AUTH_ENABLED=trueenables API key checks.READ_API_KEY=<your-key>sets the expected key.- Clients send the key with header
x-api-key.
In production, read API auth is fail-closed by default (READ_API_AUTH_ENABLED defaults to true). Setting READ_API_AUTH_ENABLED=false in production raises at boot. In local dev/test, auth may be left disabled.
Portfolixir includes a read-only MCP tool-definition wrapper over authenticated read API endpoints.
- Module:
Portfolixir.MCP.ReadOnlyTools - Allowed tool paths:
/api/read/portfolio_snapshot/api/read/positions/api/read/transactions/api/read/cash_balances
- Allowed method:
GETonly
No write-capable MCP tools exist. Portfolixir does not expose MCP tools for broker, banking, trading, payment, order, or rebalance actions.
Roadmap execution is tracked through Planka story cards and PR handoffs. Product-level story sources:
- Read
AGENTS.mdbefore making changes. - Keep changes scoped to a single story.
- Keep public artifacts concise and repo-facing.
Additional workflow documentation is maintained in this repository as it is merged on main.
Portfolixir is inspired by Portfolio Performance workflow ideas. It is an independent project and is not affiliated with or endorsed by the Portfolio Performance project.
Support payments help fund ongoing maintenance work. They do not automatically create entitlement to support, features, consulting, SLA, or invoice-based engagement.
This project is licensed under the MIT License. See LICENSE.