ESP-Brookesia is a human-machine interaction development framework designed for AIoT devices.
ESP-Brookesia is a human-machine interaction development framework designed for AIoT devices.
ESP-Brookesia is a full-stack development platform for AIoT and HMI products. It organizes hardware abstraction, service framework, runtimes, GUI, system framework, app components, and AI capabilities as ESP-IDF components so products can compose and reuse platform capabilities as needed.
[!NOTE] Brookesia is a genus of chameleons known for small form factors and strong adaptability. ESP-Brookesia uses this image to emphasize that the framework can adapt to different hardware forms, interaction surfaces, and product systems.
From v0.7, ESP-Brookesia is componentized. Projects are recommended to obtain required components through the component registry. The conventions are:
major.minor version and depend on the same ESP-IDF release.release branch maintains historical stable versions and only fixes bugs and security issues.master branch continuously integrates new features and may contain functionality that has not stabilized yet.| ESP-Brookesia | ESP-IDF | Main changes | Status |
|---|---|---|---|
| master (v0.8) | ESP32-S31: 6.2 | ||
| Others: >= 6.0, = 5.5, = 5.3, [!NOTE] |
PC simulation support is provided by
hal/brookesia_hal_linuxandhal/brookesia_hal_wasmin this repository for Linux host, CI, and WebAssembly/Web demo scenarios.
| Component | Description | Version |
|---|---|---|
| brookesia_service_manager | Service manager providing plugin lifecycle, function routing, event publish/subscribe, and local calls | |
| brookesia_service_helper | Service helper library providing type-safe schemas, helper calls, and unified service access interfaces | |
| brookesia_service_custom | Custom service extension template for product-specific capabilities based on the Brookesia service framework |
| Component | Description | Version |
|---|---|---|
| brookesia_service_http | HTTP service providing HTTP/HTTPS client requests, resource limits, and request lifecycle events | |
| brookesia_service_sntp | SNTP service providing NTP server management, timezone settings, and automatic time synchronization | |
| brookesia_service_wifi | Wi-Fi service providing state-machine management, AP scan, connection management, and SoftAP functionality |
| Component | Description | Version |
|---|---|---|
| brookesia_service_audio | Audio service providing playback, codec, volume control, and playback state management | |
| brookesia_service_video | Video service supporting local capture encoding and compressed stream decoding to pixel formats | |
| brookesia_service_display | Display service wrapping display input, gestures, and display-related system capabilities |
| Component | Description | Version |
|---|---|---|
| brookesia_service_storage | Storage service providing namespace-based key-value storage management | |
| brookesia_service_device | Device service providing app-layer access to device control, status query, and protocol interfaces |
| Component | Description | Version |
|---|---|---|
| brookesia_agent_manager | Agent manager providing AI agent lifecycle, state machine, and unified operation interfaces | |
| brookesia_agent_coze | Coze agent adapter providing Coze API integration, WebSocket communication, and agent management | |
| brookesia_agent_openai | OpenAI agent adapter providing OpenAI API integration and agent management | |
| brookesia_agent_xiaozhi | XiaoZhi agent adapter providing XiaoZhi API integration | |
| brookesia_expression_emote | AI emote and animation management for visual feedback in anthropomorphic interactions |
| Component | Description | Version |
|---|---|---|
| brookesia_emulation_nes | NES emulation service integrating display, audio, storage, and gamepad control |
| Component | Description | Version |
|---|---|---|
| brookesia_gui_interface | GUI interface layer defining JSON UI document model, runtime resources, action binding, and backend contracts | |
| brookesia_gui_lvgl | LVGL backend mapping resolved GUI documents to LVGL objects and handling events, animations, and image resources |
| Component | Description | Version |
|---|---|---|
| brookesia_runtime_manager | Runtime manager for dynamic app packages, runtime backend registration, and app context management | |
| brookesia_runtime_elf | ELF runtime backend | |
| brookesia_runtime_js | JavaScript runtime backend | |
| brookesia_runtime_lua | Lua runtime backend | |
| brookesia_runtime_wasm | WebAssembly runtime backend |
| Component | Description | Version |
|---|---|---|
| brookesia_system_core | System core framework orchestrating app lifecycle, GUI, Runtime, services, storage, and permission boundaries | |
| brookesia_system_super | Standard system for rectangular touch devices with Shell, launcher, overlay, status bar, and built-in resource flow | |
| brookesia_app_files | Files app providing a device-side file browser entry | |
| brookesia_app_settings | Settings app providing device and system configuration entry | |
| brookesia_app_store | App Store component providing local and remote app package entries |
If you would like to contribute to ESP-Brookesia or build on the examples in this repository, you can get the master branch with the following command:
git clone https://github.com/espressif/esp-brookesiaWe currently welc
No open issues yet, or sync has not completed.