Same control plane, different products
The remoteagent architecture separates where the brain lives from where the machine lives. The control plane at remoteagent.online holds identity, keys, budgets and traces; the daemon on your machine holds your files, apps and actions. Nothing runs in the dark.
Control plane (the console)
The console is a Sngine-hosted PHP application with a dedicated mona-plugin. It provides:
- Identity & sessions — Sngine accounts, CSRF-protected session auth, optional TOTP/email two-factor.
- Key vault — provider API keys (OpenAI, Anthropic, Google, DeepSeek, OpenRouter) encrypted with AES-256-GCM using a server-side vault secret. Keys never touch devices.
- Device registry — every connected machine with live telemetry (CPU, memory, load, disk, uptime).
- Task queue — a command channel the daemon polls; tasks carry the agent's system prompt and the owner's brain config.
- Run traces & audit log — append-only records of every run, step, token and cost, plus a per-user audit trail of sensitive actions.
- Plans & rate limits — per-account caps on agents, steps and daily runs; per-write rate limiting.
Device daemon (the agent)
The open-source client (apps/desktop in MONAEXPERT/agent) runs on macOS, Linux or WSL2. It holds exactly one secret: your Remote Agent key, in a 0600 file. It dials out via HTTPS — no inbound ports, no public IP needed.
API surface
| Route | Auth | Purpose |
|---|---|---|
/api/v1/mona/* | session + CSRF | dashboard API: agents, keys, tokens, devices, runs, insights, settings, 2FA |
/api/v1/agent/* | Bearer (Remote Agent key) | device API: verify, think (SSE), tasks, runs, steps, stats, activity |
Run lifecycle
- A chat message or queued command creates a task for a device.
- The daemon claims the task and streams steps back: think → tool call → tool result → answer → verify.
- The console records each step with model, tokens and cost, and links it to the run trace.
- You see the whole thing live in the dashboard, Deep Dive and Logs.
Cost & model routing
Every response is price-mapped per model family (exact model → exact price; unknown → flagged estimate). The brain config (auto / cheap / balanced / deep / manual) and per-task complexity profiling decide step budgets and provider preference — simple tasks route to cheap models, complex ones to deep ones.