Overview
Mission Control provides real-time visibility into agent activity through three complementary systems: Activity Feed, Live Sessions, and Log Viewer. Updates arrive via WebSocket (gateway) and Server-Sent Events (database changes) with smart polling fallback.Real-time monitoring requires either a connected gateway (WebSocket) or an active SSE stream. Both pause polling to reduce server load.
Activity Feed
The Activity Feed is a chronological stream of all system events.Accessing the Feed
View Live Stream
Events appear instantly as they occur. A pulsing green indicator shows live status.
Event Types
The feed tracks 9+ event types:- Task Events
- Agent Events
- Communication Events
- System Events
- task_created β New task added
- task_updated β Task status or details changed
- task_deleted β Task removed
- assignment β Task assigned to agent
Activity Card Structure
Each activity displays:- Icon β Color-coded symbol for event type (e.g.,
+for created,~for updated) - Actor β Who triggered the event (agent name or βsystemβ)
- Description β Human-readable event summary
- Entity Details β Task title, agent name, or related object info
- Timestamp β Relative time (β5m agoβ, β2h agoβ)
- Additional Data β Expandable JSON details (click βShow detailsβ)
Filtering
Narrow the feed using filter controls:By Activity Type
By Activity Type
Select from dropdown:
- All Types
- task_created
- agent_status_change
- comment_added
- etc.
By Actor
By Actor
Filter to specific agent or user:
- All Actors
- researcher-01
- system
- admin
By Limit
By Limit
Control result count:
- 25 items
- 50 items (default)
- 100 items
- 200 items
Live vs. Paused Mode
Toggle auto-refresh with the Live/Paused button:- Live π’ β Updates every 30 seconds + instant SSE delivery
- Paused β« β Manual refresh only
When SSE is connected, βLiveβ mode pauses polling and relies entirely on event stream. Notifications arrive within ~50ms.
Live Sessions
Track active agent sessions in real-time (gateway-connected agents only).Session Attributes
| Field | Description |
|---|---|
| Key | Unique session identifier |
| Kind | Session type (e.g., βclawdβ, βagentβ, βcliβ) |
| Age | Time since session started (e.g., β2hβ, β5mβ) |
| Model | LLM model in use (normalized, e.g., βsonnet-4β) |
| Tokens | Usage (e.g., β12.5K/35Kβ) |
| Active | Boolean indicator (active if updated within last hour) |
| Message Count | Number of messages exchanged |
| Cost | Estimated cost in USD |
Viewing Sessions
Sessions appear in the Sessions panel (if gateway is connected) or can be queried via API:Log Viewer
Stream logs from agents and gateway in real-time.Accessing Logs
Log Levels
Debug
Verbose diagnostic messages
Info
Normal operational events
Warn
Potential issues requiring attention
Error
Failures and exceptions
Log Structure
Each log entry includes:Searching Logs
Use the Log Viewer search bar or query via API:WebSocket Connection
Mission Control connects to the OpenClaw gateway via WebSocket.Connection Flow
Challenge-Response Handshake
- Client connects to
ws://gateway:18789 - Server sends
connect.challengewith nonce - Client signs payload with Ed25519 device identity
- Server validates signature and returns device token
Connection Status
View connection state in the header bar:- π’ Connected β Gateway online, receiving events
- π‘ Connecting β Handshake in progress
- π΄ Disconnected β Offline or connection failed
- β οΈ Reconnecting β Attempting reconnection (exponential backoff)
Manual Reconnect
If connection drops:- Check gateway status (is it running?)
- Verify
OPENCLAW_GATEWAY_HOSTandOPENCLAW_GATEWAY_PORTin.env - Click Reconnect in the connection status widget
Server-Sent Events (SSE)
Mission Control uses SSE to stream database change events to all connected clients.Event Types
agent.createdagent.updatedagent.deletedtask.createdtask.updatedtask.deletedcomment.addednotification.created
SSE Connection
Clients automatically connect to/api/events on page load:
Connection Indicator
The SSE connection status appears in the Activity Feed:- π’ SSE Connected β Live event stream active
- π΄ SSE Disconnected β Falling back to polling
Smart Polling
When neither WebSocket nor SSE is available, Mission Control uses intelligent polling:Polling Behavior
- Tab Visible
- WebSocket Connected
- SSE Connected
- Poll every 30 seconds (configurable per component)
- Fire immediate refresh on visibility change
- Reset backoff multiplier
Implementation
Components use theuseSmartPoll hook:
Heartbeat System
Mission Control tracks agent liveness via periodic heartbeats.Agent Heartbeat
Agents send heartbeats every 60-300 seconds (configurable):Automatic Timeout
The background scheduler runs every 5 minutes:- Query agents with
status != 'offline'andlast_seen < threshold - Mark stale agents as offline
- Log activity: βAgent marked offline (no heartbeat for 10m)β
- Create notification for operator
Configure Timeout
Configure Timeout
Adjust in Settings β General:Value in seconds (default: 600 = 10 minutes).
WebSocket Heartbeat
Gateway connections send ping/pong every 30 seconds:- Ping sent β Client sends
{type: "req", method: "ping", id: "ping-1"} - Pong received β Server responds with
{type: "res", id: "ping-1", ok: true} - RTT calculated β Round-trip time displayed in connection status
- Missed pongs β After 3 missed pongs (90s), force reconnect
Notifications
Real-time notifications appear in the Notifications panel:Notification Types
- Info β General system messages
- Warn β Potential issues (e.g., agent offline)
- Error β Critical failures (e.g., deployment failed)
- Heartbeat β Agent liveness alerts
Viewing Notifications
API Access
Performance Metrics
Connection Latency
WebSocket RTT displayed in connection status widget:- < 50ms β Excellent
- 50-100ms β Good
- 100-200ms β Fair
- > 200ms β Check network or gateway load
Event Delivery
- WebSocket β Near-instant (< 10ms after gateway receives event)
- SSE β Fast (< 50ms after database write)
- Polling β Delayed (up to 30s depending on interval)
Troubleshooting
Activity Feed Not Updating
Activity Feed Not Updating
- Check SSE connection status (green indicator)
- Verify browser dev tools for SSE errors
- Confirm
Livemode is enabled - Try clicking Refresh manually
WebSocket Connection Failed
WebSocket Connection Failed
- Verify gateway is running:
ps aux | grep gateway - Check gateway port:
OPENCLAW_GATEWAY_PORTin.env - Test gateway directly:
wscat -c ws://localhost:18789 - Check
allowedOriginsin gatewayopenclaw.json
Logs Not Appearing
Logs Not Appearing
- Confirm gateway is connected (green status)
- Check log level filters (remove any filters)
- Verify agents are sending logs (check gateway logs)
- Try
/api/logsendpoint directly to rule out UI issue
Next Steps
Cost Tracking
Monitor token usage and costs with per-model breakdowns
Background Automation
Configure automated tasks and monitoring rules