RisalDash RisalDash

ESP32 · ESP8266 · C++

Beautiful ESP dashboards in a few lines of code

RisalDash brings up a responsive web dashboard in the brand style: widgets on one screen, real-time over WebSocket, offline-first first boot and AI control. Zero front-end code.

Open demo Install
RisalUI dash("Greenhouse");

dash.gauge("Voltage", &volts, 0, 14, "V");
dash.chart("Temp", &temp, "°C").history(30);
dash.toggle("Pump", &pump, setPump);
dash.beginAP("Greenhouse", "12345678");

Why RisalDash

Zero-Waste UI

The linker strips unused widget types — 0 bytes. A type you use adds ~1.3–3.4 KB (its CSS + JS + code).

Offline-first

AP + captive portal + Wi-Fi provisioning. System font, zero external requests — works with no internet.

Real-time WebSocket

Pushes only changed values. Widgets on one live screen, no reloads.

Widgets for everything

30+ controls: metric, gauge, chart, toggle, slider, table, log, d-pad, joystick, map… + presets for 73 sensors.

Multilingual + RTL

EN / RU / AR out of the box. Only chosen languages are compiled in. Full RTL layout.

AI control (MCP)

Every widget is an MCP tool. Claude/Cursor read sensors and flip relays by voice.

Live demo

The actual dashboard

The exact v0.2 UI the ESP serves — live. Swipe up to switch pages; tap the gear for theme, language and accent.

metricgaugechartstatprogressbadgeledtogglesliderbuttonnumberselectradiotextpasswordtimedatecolorlabellogtableimageaigrouptablayout
Open the full demo →

AI control · MCP

Your hardware, as tools for an AI agent

Call enableMCP() and every widget becomes a Model Context Protocol tool — Claude reads your sensors and flips your relays, by chat or voice. Human dashboard and agent interface from the same few lines of C++.

// on the device — one line:
dash.enableMCP("risal_token");

// connect an agent — point the bridge at it:
RISAL_ESP_URL=http://192.168.1.42 \
RISAL_MCP_TOKEN=risal_token \
npx risal-dash-mcp
AI agent
Claude Desktop / Code
risal-dash-mcp
MCP bridge (npx)
Your ESP32
GET /api/mcp/manifest
Bridge & setup →

Install

Arduino IDE

Library Manager → "RisalDash"

PlatformIO

lib_deps =
    RisalDash
    ESP Async WebServer
    AsyncTCP