Web dashboard for ghostloop: fleet view, mission control, trace timeline, alarm tray. Talks to a ghostloop.dashboard.create_production_app backend over HTTP/WebSocket.
| Route | Purpose |
|---|---|
/ |
Overview: fleet status, active alarms, episode count |
/fleet |
Fleet: one card per robot, click to drill into details |
/missions |
Missions: submit Mission DAGs to the runtime (visual builder coming) |
/traces |
Traces: episode list from GhostloopStore |
/alarms |
Alarms: active + acked, with one-click acknowledge |
/metrics |
Metrics: Prometheus counters from /metrics |
/settings |
Settings: bearer token for StaticTokenAuth |
- Next.js 15 (App Router + Turbopack)
- React 19 + Tailwind CSS 4
- lucide-react icons, framer-motion animations
- zustand state, clsx/tailwind-merge classname utilities
- TypeScript strict, ESLint + Next config
git clone https://github.com/joemunene-by/ghostloop-ui
cd ghostloop-ui
npm installbackend/ in this repo is a ready-to-deploy FastAPI server. See backend/README.md for the platform-specific deploy guides (Railway, Fly, Render).
Local dev, in two terminals:
# Terminal A (backend)
cd backend
pip install -r requirements.txt
uvicorn server:app --host 0.0.0.0 --port 8000
# Terminal B (UI)
GHOSTLOOP_BACKEND_URL=http://localhost:8000 npm run devOpen http://localhost:3000.
Demo mode: if
GHOSTLOOP_BACKEND_URLis unset (or unreachable),/api/backend/[...path]/route.tsserves fixtures so the deployed Vercel app is interactive without any backend. A "Demo mode" banner explains the swap path.
If your backend is wrapped with StaticTokenAuth (recommended for any non-loopback bind), paste the token into the Settings page. It's stored in localStorage and attached to every request as a Bearer header. Match it to the GHOSTLOOP_DASHBOARD_TOKEN env var on the backend side.
Vercel works out of the box (App Router + Turbopack). Set:
GHOSTLOOP_BACKEND_URL: your backend's public URL (must be HTTPS in production).
Or self-host:
npm run build
GHOSTLOOP_BACKEND_URL=https://api.your-fleet.com npm start- v0.2: visual mission builder (drag-and-drop DAG)
- v0.3: embedded MuJoCo viewer in the robot detail page (WebGL)
- v0.4: live trace timeline (WebSocket subscription to
/ws/v1/stream) - v0.5: counterfactual replay viewer (drop a recorded trace, run it through a different policy)
MIT. See LICENSE.
- ghostloop: the runtime + library
- Live demo on HuggingFace: Gradio control panel for the same backend
- GhostLM: sibling project, the cybersecurity language model whose GhostAgent shape ghostloop borrows