| name | sf-portfolio |
| description | One-screen account view across StrategyFactory — exchanges, cached USDT balances, bots (with status), and open positions per exchange. Use when the user asks "where do I stand / show my portfolio / what bots are running / what's my balance / what positions are open / portfolio snapshot". Read-only. |
sf-portfolio
The dashboard. One command, four data sources merged:
GET /exchanges — what's connected
GET /exchanges/balances — USDT cached balances (10-min cache)
GET /bots — every bot with normalized status (ACTIVE/PAUSED/DRAFT/DISABLED)
GET /positions — live open positions per exchange
When to use
- "Show my portfolio"
- "What bots are running where?"
- "Balance across all exchanges"
- "Open positions snapshot"
How to run
python sf-portfolio/portfolio.py [--json]
Output
Three blocks: exchanges + balances, bots grouped by exchange, open
positions grouped by exchange. Balances mark cached and checkedAt;
positions are always live (not cached server-side).
Notes
- Balances are cached 10 minutes server-side; force-refresh by calling
POST /exchanges/balances/cache/clear (use --clear-cache).
- This view never returns API keys, secrets, or passphrases.