Web Dashboard
Visit http://localhost:8000/dashboard after docker compose up.
┌─────────────────────────────────────────────────────────────────┐
│ 🤖 OpenTrader │ HYPERLIQUID │ testnet │ updated 10:30 │
├──────────────┬──────────────────────────────────────────────────┤
│ AGENTS │ RECENT ORDERS │
│ │ Symbol Dir Entry SL TP │
│ ● COO │ BTC BUY $65,000 $63k -3% $69k +6% │
│ Idle │ │
│ ├──────────────────────────────────────────────────┤
│ ● OPS │ ACTIVITY LOG │
│ Running │ 10:28 OPS Scanning ta_trend — 5 symbols │
│ │ 10:28 OPS Custom check BTC BUY │
│ ● TECH │ 10:29 COO Waiting for boss: BTC BUY │
│ Awaiting │ 10:29 COO Boss CONFIRMED: BTC │
│ confirm │ 10:30 TECH AI confirm BTC — EV=32 conf=9 │
│ │ 10:30 TECH Order OK: BTC entry=$65,000 │
│ ● FIN │ 10:30 FIN Trailing check — 1 position │
│ Idle │ │
├──────────────┴──────────────────────────────────────────────────┤
│ Today: 2 orders │ Win/Loss: 1/1 │ Consecutive losses: 0 │
└─────────────────────────────────────────────────────────────────┘
Zones
| Zone | Content | Refresh |
|---|---|---|
| Agents (sidebar) | Realtime status of 5 agents + dot animation | 3 seconds |
| Recent orders | Table of today’s orders (entry, SL, TP, size) | 30 seconds |
| Activity log | Feed of the 100 most recent events from all agents | 3 seconds |
| Footer | Daily summary: order count, win/loss, consecutive losses | 30 seconds |
Agent status colours
- ⚪
idle— waiting for commands - 🔵
running— currently executing (blue pulse) - 🟡
waiting— awaiting boss YES/NO (yellow pulse) - 🔴
error— issue requires attention
Agents self-report their status
Each time an agent performs a task, it POSTs its status to the dashboard:
curl -s -X POST "http://opentrader-bot:8000/api/agent/ops" \
-H "Content-Type: application/json" \
-d '{"status":"running","action":"Scanning ta_trend — 5 symbols"}'