Fleet status
When your instance is running, the dashboard shows:- Status badge — Online, Starting up, Resizing, Migrating, or Paused
- Subdomain — your fleet URL (
{subdomain}.engine.openlegion.ai) with a copy button - Plan summary — current plan, agents, browsers, projects, and credit balance
- Open Dashboard button — the primary CTA; single-sign-on into your engine
starting up, resizing).
Migrating is a defined status that the UI renders but is not reachable from current code paths — it’s staged for a future feature.
Open Dashboard
This button is the only supported way to enter your engine from the app. The app generates a short-lived HMAC-SHA256 token (5-minute TTL, one-time use), 302-redirects you through the auth-gate sidecar on your VPS, which then sets a 24hol_session cookie. Direct navigation to your subdomain (e.g., from a bookmark) requires an existing session cookie. If your cookie has expired, return to the app and click Open Dashboard again.
Notifications and banners
The fleet dashboard surfaces banners for: past-due payment, cancelled subscription (countdown), paused instance, resizing, migrating, and unhealthy.Instance states
The fleet view condenses 15 internal status values into the user-facing badges above. The most common transitional and failure states you’ll encounter:
If provisioning or configuration fails, the app renders a Retry button next to a Contact Support link (admin@openlegion.ai).
Settings
The Settings page shows your current plan and lets you:- Change plan — select a different tier or switch between monthly and yearly billing
- Resume — reactivate a cancelled subscription before the period ends
- Cancel — cancel your subscription (access kept until end of billing period)
- Keep current plan — cancel a pending downgrade so you stay on your current tier at renewal
Credits
The Credits page (/credits in the app) shows your current OpenLegion credit balance and lets you top up. Every managed instance ships with the openlegion/openai/gpt-5.4 credit-backed default model; welcome credits are granted on first subscription activation.
What the app dashboard does not do
The app dashboard is intentionally narrow:- No user-initiated pause / resume (pause only triggers after 3 days past-due)
- No region picker (server location chosen by provisioner fallback chain)
- No “rotate access token” UI
- No re-configure API keys UI (manage those from the engine’s Settings → API Keys tab)
- No multi-instance support — one VPS per subscription
- No log streaming, per-agent metrics, or backup/restore UX
- No direct agent control, chat UI, or project management — all of that lives on the engine dashboard
Engine dashboard
The engine dashboard at{subdomain}.engine.openlegion.ai is where you do the actual work with your agents. Open it via the app’s Open Dashboard button (see SSO note above).
The engine SPA is built on Alpine.js + Tailwind with no build step. It serves 143 dashboard API endpoints and streams real-time updates over a /ws/events WebSocket (50 event types, 500-event ring buffer).
Four top-nav tabs
Internal ids are frozen for URL stability — the user-facing labels diverged.
Settings sub-tabs (11)
Activity, Costs, Automation, Integrations, API Keys, Wallet, Network, Storage, Operator, Browser, Settings. Highlights:- Costs — per-agent / per-project LLM cost ledger with daily and monthly budgets.
- Automation — cron jobs and heartbeats (5-field cron or
every N[s/m/h/d]interval). - Integrations — channel setup (Telegram / Discord / Slack / WhatsApp / Webhook) and webhook creation (webhooks are dashboard-only).
- API Keys — add or replace LLM provider keys (BYOK overlay on top of the OpenLegion credit proxy).
- Wallet — seed reveal is once-only (HTTP 410 thereafter); per-agent EVM + Solana addresses; spend caps and rate limits.
- Browser — Camoufox flags, CAPTCHA solver config, device profiles, fingerprint controls. (Fingerprint burn detection does not auto-rotate — operator action required.)
- Operator — operator-only control plane: edit agents, project management, pending actions.
Browser viewer
Each agent gets its own Camoufox (stealth Firefox) instance in the shared browser-service container, lazy-spawned on first use. The dashboard provides a per-agent live VNC view via the engine’s/agent-vnc/{agent_id}/{path} proxy. The VNC proxy only accepts the ol_session cookie — agent Bearer tokens are rejected.