Developer Haris (GitHub: Haris16-code) has published KryonOS, a GUI operating system with a JavaScript runtime for the ESP32 and ESP32-S3. It is open-source software under the GPL-3.0 license, not a hardware product, so it has no price. Apps are written in JavaScript and installed on a touchscreen board from an app store over Wi-Fi, so the firmware does not need to be reflashed. The repository lists the JavaScript App Runtime at v2.0.0 (API Level 2) and the security architecture at v2.0.1.

What KryonOS does

KryonOS sits between the hardware and small JavaScript programs. A multi-board hardware abstraction layer (HAL) handles touch screens, parallel displays, matrix keyboards and SD cards. Apps run in the embedded Duktape JavaScript engine. The repository lists these components:

  • Duktape JavaScript app runtime
  • Multi-board hardware abstraction layer (HAL)
  • KryonBeam mesh messenger for device-to-device messaging
  • Kryon3D graphics rasterizer
  • Wireless OTA updater with MD5 verification and automatic bootloader rollback
  • Double-buffered graphics with mini-sprite support
  • App store for browsing, downloading and installing JS apps over Wi-Fi
  • File explorer and text editor using LittleFS and SD/SD_MMC
  • AES-256 encrypted credential vaults
  • GPIO, I2C, PWM, hardware crypto and ADC APIs for apps

On September 23, 2026, Hackaday's Jenny List described it as a JavaScript-based OS for the ESP32 with a simple GUI, a graphics library, a built-in JavaScript interpreter, SD card access, a hardware API and an app store. She compared it to the devices that grew out of Badge.Team's SHA2017 conference badge, which offer a similar experience in Python.

The runtime, in detail

CNX Software's September 26 write-up covers the developer constraints. KryonOS uses Duktape 2.x, which supports ECMAScript 5.1 plus some ES6 features. Arrow functions, let/const declarations and ES6 class syntax are not supported, so developers used to modern browser or Node.js JavaScript will have to write in an older style. Each app gets around 90 KB of usable RAM. Garbage collection runs whenever System.delay(ms) is called. Rendering is 16-bit RGB565 with hardware double-buffering. Each app is a folder holding an app.json metadata file and a main.js file. Precompiled .bin images can be flashed with esptool.py, or the OS can be built from source with PlatformIO.

The default ESP32 build splits its SPI buses. An "ILI9341 display controller with XPT2046 resistive touch controller connected via VSPI" handles display and touch, and the microSD card sits on HSPI. The default pinout matches the ESP32 Marauder v4, v6 and v6.1, so that hardware runs KryonOS without rewiring.

Supported boards

The repository splits targets into stable and experimental tiers:

BoardStatusMCUFlash / PSRAMDisplayInput
ESP32-S3 DevKitC-1Default / StableESP32-S316MB Flash, 8MB Octal PSRAMILI9341 240x320 SPIXPT2046 Touch
ESP32 DevKit v1 / WROOM-32StableESP324MB FlashILI9341 240x320 SPIXPT2046 Touch
M5Stack Cardputer v1.1ExperimentalESP32-S3 (Stamp-S3)8MB FlashST7789V2 240x135 SPI56-key matrix keyboard
LilyGO T-HMIExperimentalESP32-S316MB Flash, 8MB Octal PSRAMST7789 240x320 8-bit parallelXPT2046 Touch & SD_MMC
ESP32-CYD-28ExperimentalESP324MB FlashILI9341 240x320 SPIXPT2046 Touch & RGB LED

The repository says the experimental boards "currently lack hands-on physical verification due to unavailable test hardware," and it asks users to report issues and calibration offsets. This applies to the Cheap Yellow Display. Hackaday names the CYD as a board KryonOS runs on, but both the repository and CNX list it as experimental.

CNX lists the supported MCUs as "ESP32 (WROOM-32), ESP32-S2, ESP32-S3, and ESP32-C3." However, the repository's board list includes only ESP32 and ESP32-S3 boards, so owners of ESP32-S2 and ESP32-C3 boards have no listed target.

Release history

Haris posted release announcements in the comments on the Hackaday article. On September 27, 2026, he announced v2.0.0 as released. It added support for the M5Stack Cardputer, CYD and LilyGO T-HMI, an ESP32-S3 DevKitC-1 N16R8 configuration, the Kryon3D 3D engine, wireless OTA updates and an embedded web server with WebSockets. On October 1, 2026, he announced v2.0.1, a security and stability release. It added:

  • TLS certificate validation
  • Encrypted Wi-Fi credentials
  • Filesystem sandboxing for apps
  • Web Manager authentication
  • A Permissions Manager
  • SHA-256 checks on App Store packages

The release also fixed a display-buffer memory leak. Both releases came after the Hackaday and CNX articles, so those write-ups describe the project before the v2.0.1 security changes.

In the CNX comments, a reader suggested the repository was vibe coded. CNX's Jean-Luc Aufranc replied that the project "appears to have been built, at least partially, with AI, supervised by Haris16-code."

What It Means for Makers

KryonOS is aimed at people who already own an ESP32 touchscreen board, especially the ILI9341/XPT2046 type wired to the Marauder pinout. It turns that hardware into a small app-driven computer, so a new firmware isn't needed for each task. The ESP32-S3 DevKitC-1 and ESP32 DevKit v1 / WROOM-32 are the two stable targets.

Owners of a Cardputer v1.1, T-HMI or Cheap Yellow Display can try it, but those targets have not been checked on physical hardware. Expect calibration and driver issues, and report them upstream.

App developers should plan around Duktape's ES5.1-era syntax and the roughly 90 KB memory budget per app. The GPIO, I2C, PWM and ADC APIs give apps access to external hardware. For wiring and pin assignments, use the project's own documentation in the repository. The source code is on GitHub under GPL-3.0. App-store users should know that sandboxing and SHA-256 package checks arrived only in v2.0.1.

Sources