Skip to content

Dashboard โ€‹

OpenSpider includes a real-time web dashboard built with React and Vite, served directly by the Express server on port 4001.

Accessing the Dashboard โ€‹

bash
openspider dashboard

Or navigate to http://localhost:4001 in your browser.

Version Badge โ€‹

The dashboard displays the current OpenSpider version (e.g. v2.2.0) next to the logo in the sidebar. The version is fetched live from the /api/health endpoint and reflects what's in package.json.

Theme Toggle ๐ŸŽจ โ€‹

The sidebar includes a 3-way theme toggle at the bottom:

ModeIconBehavior
Lightโ˜€๏ธLight backgrounds, dark text
Dark๐ŸŒ™Dark backgrounds, light text (default)
Auto๐Ÿ’ปFollows your OS prefers-color-scheme setting

The selected theme is persisted in localStorage and applied instantly via CSS custom properties.

Health Status Indicator ๐Ÿ’š โ€‹

A real-time health indicator at the bottom of the sidebar shows system health at a glance:

StatusColorMeaning
๐ŸŸข HealthyGreenAll systems operational
๐ŸŸก DegradedAmberSome components unavailable (e.g. WhatsApp disconnected)
๐Ÿ”ด UnreachableRedServer not responding

Hover over the health indicator to see detailed component status:

  • WhatsApp connection status
  • LLM provider name
  • Server status
  • Memory usage (MB)
  • Uptime duration

The indicator auto-polls /api/health every 30 seconds.

Dashboard Tabs โ€‹

Agent Chat ๐Ÿ’ฌ โ€‹

A full chat interface for communicating directly with your agents.

Features:

  • Send messages and see agent responses in real-time via WebSocket
  • File attachments โ€” Click the ๐Ÿ“Ž paperclip to attach images, documents, or any file
  • Input history โ€” Press โ†‘/โ†“ arrow keys to recall previous messages
  • Agent emoji avatars โ€” Each agent displays its role emoji (๐Ÿง  Manager, โšก Coder, ๐Ÿ”ฎ Researcher)
  • Cron job results โ€” Scheduled task outputs display inline with a โฐ Cron badge
  • Verbose/Non-verbose toggle โ€” Switch between raw logs and clean chat bubbles
  • Messages show which agent responded with timestamps (visible on hover)

Agent Flow ๐Ÿ”€ โ€‹

A live visualization of the Managerโ†’Worker delegation flow using Mermaid-based graphs.

Features:

  • Nodes represent agents with role-specific emojis
  • Instruction labels on edges show what the Manager delegated
  • Result nodes appear after task completion with result snippets
  • Updates in real-time as agents work

System Logs ๐Ÿ“‹ โ€‹

A comprehensive log viewer with filtering, search, and export.

Features:

  • Level filtering โ€” Toggle Trace, Debug, Info, Warn, Error independently
  • Level counts โ€” Each button shows the count (e.g., TRACE 78)
  • Content classification โ€” Logs auto-classified by keywords (error/failed โ†’ Error, warn/โš  โ†’ Warn)
  • Search โ€” Real-time text search across all logs
  • Download โ€” Export filtered logs as a .log file
  • Auto-follow โ€” Checkbox to auto-scroll to newest logs
  • Color-coded โ€” Left border and level badge colored by severity

Agent Workspace ๐Ÿ“ โ€‹

Manage your AI team directly from the UI without touching the core filesystem.

Features:

  • Create Agents โ€” Click "Create Agent" to bootstrap a new agent persona.
  • Rename Agents โ€” Select an agent and edit the name field in the CAPABILITIES tab to gracefully change its display name.
  • Modify Personas โ€” Edit the IDENTITY and SOUL tabs to tweak behavior, vibe, and safety guardrails in real-time.
  • Teach User Context โ€” Update the USER CONTEXT tab to persist your preferences or background so the agent remembers.
  • Manage Skills & Models โ€” Use the CAPABILITIES tab to add/remove tools or switch the underlying LLM processing the agent's thought loop.
  • Instant Persistence โ€” Click Save Changes to immediately sync your UI edits out to the agent's pillar files (IDENTITY.md, SOUL.md, etc.).

Dynamic Skills โš™๏ธ โ€‹

View metadata for available agent skills:

  • browse_web โ€” Web browsing via Playwright
  • schedule_task โ€” Create cron jobs
  • wait_for_user โ€” Pause for user input
  • Custom skills can be added via skill metadata files in skills/

Usage Analytics ๐Ÿ“Š โ€‹

Track token usage, API calls, and costs across providers and models.

WhatsApp Security ๐Ÿ”’ โ€‹

Visual interface for managing WhatsApp access controls:

  • DM Allowlist โ€” Add/remove permitted phone numbers
  • Group Allowlist โ€” Add/remove permitted groups
  • Per-group mode toggles โ€” Switch each group between Mention and Listen mode
  • LID Identity Mappings โ€” View pending blocked LIDs and assign phone numbers. When an unknown LID tries to DM, it appears here as a pending amber card. Type the phone number and click "Map" to allow access. Resolved mappings are listed with delete buttons.
  • Voice Settings โ€” Configure ElevenLabs voice responses (see Voice Messages)
  • Email Notification Settings โ€” Configure email recipients:
    • Cron Job Results To โ€” Email address where automated cron job results are delivered
    • Vendor & Friends To โ€” Default email address for outbound emails to vendors/contacts
  • Changes save directly to workspace/whatsapp_config.json and workspace/email_config.json

Cron Jobs โฐ โ€‹

Manage scheduled tasks:

  • View all configured cron jobs with descriptions and intervals
  • Enable/disable individual jobs
  • Manually trigger a job for immediate execution
  • Monitor last run timestamps
  • Override the active LLM Provider and Model on a per-job basis
  • Cron results appear inline in the Agent Chat view

Process Monitor ๐Ÿ–ฅ๏ธ โ€‹

Monitor running system processes and resource usage.

Overview ๐Ÿ“ˆ โ€‹

A high-level summary view of your OpenSpider instance.

Sessions ๐Ÿ“‹ โ€‹

View and manage active agent sessions.

Favicon & PWA Icon โ€‹

The dashboard includes a full favicon suite for crisp display across all platforms:

FileSizeUsed for
favicon-16.png16ร—16Browser tab icon
favicon-32.png32ร—32High-DPI browser tabs
favicon-192.png192ร—192Android home screen
favicon-512.png512ร—512PWA splash screen
apple-touch-icon.png180ร—180iOS home screen bookmark

The browser chrome (address bar on Android/Chrome) uses #0f172a as the theme color, matching the dark navy dashboard background.

TIP

If the favicon doesn't update after redeployment, do a hard refresh: Cmd+Shift+R (Mac) or Ctrl+Shift+R (Windows). Browsers cache favicons aggressively.

Architecture โ€‹

The dashboard is a single-page React application:

ComponentFileDescription
Main Appdashboard/src/App.tsxAll tabs and views (~2450 lines)
WhatsApp Securitydashboard/src/components/WhatsAppSecurity.tsxChannel config + LID mapping UI
Email Settingsdashboard/src/components/EmailSettings.tsxEmail notification config
Voice Settingsdashboard/src/components/VoiceSettings.tsxElevenLabs voice config
Agent Flow Graphdashboard/src/components/AgentFlowGraph.tsxMermaid flow visualization
Usage Viewdashboard/src/components/UsageView.tsxToken usage analytics

Real-time Updates โ€‹

The dashboard connects to the server via WebSocket for:

  • Agent chat messages
  • Agent flow events (task_start, task_complete)
  • System log streaming
  • Chat response notifications (typing indicators)

API Endpoints โ€‹

EndpointMethodDescription
/api/healthGETSystem health, version, uptime, component status
/api/configGETCurrent LLM provider and connection status
/api/chat/historyGETChat message history
/api/agentsGETAgent configurations
/api/skillsGETAvailable skills
/api/usageGETToken usage data
/api/cronGETCron job configurations
/api/processesGETRunning processes
/api/whatsapp/configGETWhatsApp security config
/api/whatsapp/lid-mappingsGETAll LIDโ†’phone mappings
/api/whatsapp/lid-pendingGETUnmapped pending LIDs
/api/whatsapp/lid-mapPOSTAdd a LIDโ†’phone mapping
/api/whatsapp/lid-map/:lidDELETERemove a LID mapping
/api/email/configGETEmail notification settings
/api/email/configPOSTSave email notification settings
/api/voice/configGETVoice response config

Build & Serve โ€‹

In production, the dashboard is pre-built and served as static files:

bash
cd dashboard && npm run build    # Builds to dashboard/dist/

The Express server serves dashboard/dist/ automatically.

In development, run the Vite dev server with hot-reload:

bash
cd dashboard && npm run dev      # Usually http://localhost:5173

Built with ๐Ÿ•ท๏ธ by the OpenSpider team