> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperwisor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ESP-IDF — Install

> Add the Hyperwisor component to your ESP-IDF project.

The ESP-IDF component is a drop-in IoT client: Wi-Fi provisioning, secure
WebSocket transport, the command runtime, dashboard widgets, NTP, NVS helpers,
and optional OTA + GPIO — all behind one umbrella header.

|         |                                                         |
| ------- | ------------------------------------------------------- |
| Targets | ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-P4 |
| ESP-IDF | `>= 5.5, < 7.0`                                         |
| License | Apache-2.0                                              |
| UI      | framework-agnostic (LVGL / raw / none)                  |

## 1. Add the dependency

<Card title="hyperwisor_esp_idf" icon="github" href="https://github.com/nikolaindustry/hyperwisor_esp_idf">
  Component source and changelog on GitHub.
</Card>

In your project's `main/idf_component.yml`:

```yaml theme={null}
dependencies:
  nikolaindustry/hyperwisor: "^0.1.0"
```

Then reconfigure — the dependency manager pulls `espressif/esp_websocket_client`
and `espressif/cjson` automatically:

```bash theme={null}
idf.py reconfigure
```

## 2. Quick start

```c theme={null}
#include "hyperwisor.h"

void app_main(void)
{
    hyperwisor_init();

    /* First-boot provisioning. On later boots these load from NVS
     * automatically — call only when you need to override. */
    if (!hyperwisor_has_credentials()) {
        hyperwisor_set_credentials("MySSID", "MyPassword",
                                   "my-device-id", "my-user-id");
    }

    hyperwisor_start();   /* spawns the core task */
}
```

The device auto-connects to Wi-Fi, syncs NTP, opens the realtime connection, and
starts accepting cloud commands. With no credentials it falls back to SoftAP
provisioning (`NIKOLAINDUSTRY_Setup-XXXX`, password `0123456789`).

## 3. The umbrella header

`#include "hyperwisor.h"` pulls in everything — core, Wi-Fi, realtime, commands,
NVS, widget, NTP, HTTP, and board port. Optional features (OTA, GPIO, Display)
are included automatically when their Kconfig option is enabled.

<Card title="Next: Configuration" icon="sliders" href="/firmware/esp-idf/configuration">
  Kconfig feature toggles and connection settings.
</Card>
