Skip to content
Haris16-codePublic

About

KryonOS is an ESP32 GUI operating system with a JavaScript runtime for apps. It provides a real touch-based interface and allows installing and running JS apps dynamically without reflashing firmware.

Topics

Resources

Contributing

Security policy

Stars

174 stars

Watchers

7 watching

Forks

Repository files navigation

KryonOS

A GUI JavaScript OS for ESP32

An open-source GUI operating system and JavaScript app platform for ESP32 and ESP32-S3, with graphics, hardware APIs, file management, an App Store, and cloud services.

Latest Release GitHub Stars GPL-3.0 license

Documentation • Releases • Discussions • Issues


Web Flasher

Flash KryonOS directly to your supported ESP32 device from your browser. No manual firmware downloading or flashing tools required.

Open KryonOS Web Flasher

Support KryonOS Hardware Development

Help support KryonOS development by contributing toward the hardware, boards, and resources needed for development, testing, and official board support.

Raised $0 Funding Goal $100 Funding Progress 0%

Support KryonOS Development

Funding Progress 0%

Funds will help support KryonOS development and testing, including acquiring development boards and hardware needed for new features, compatibility, and official board support.


KryonOS is an open-source, lightweight, high-performance GUI Operating System and JavaScript App Runtime designed specifically for the ESP32 and ESP32-S3 microcontrollers. It provides a complete desktop-like experience on embedded devices, featuring an integrated JS engine (Duktape) for executing standalone JavaScript applications, double-buffered graphics for smooth 2D/3D rendering, KryonCloud services, on-device AI streaming, an App Store, file management, and direct hardware API access.

LilyGO T-Deck Plus
Tested, Verified, and Stable
Multiple Devices Running KryonOS M5Stack Cardputer v1.1
Experimental
LilyGO T-HMI
Experimental
LilyGO T-Deck Plus Multiple devices running KryonOS M5Stack Cardputer v1.1 LilyGO T-HMI

Features

  • JavaScript App Runtime (API Level 3): Execute interactive, standalone JavaScript applications natively on ESP32 using the optimized Duktape ECMAScript engine, with expanded hardware integration and new JavaScript APIs.
  • LilyGO T-Deck Plus Support: Dedicated hardware profile with support for the ST7789 display, GT911 touch controller, physical keyboard, trackball, MicroSD card, battery monitoring, and peripheral power management.
  • On-Device AI Image Generation Engine: Generate images directly on supported ESP32-S3 devices using the integrated 4.0-million-parameter DCGAN-96 neural image generation model.
  • Complete Bluetooth Subsystem: Comprehensive Bluetooth support with JavaScript APIs for BLE scanning, GATT client and server operations, advertising, and BLE HID keyboard functionality.
  • Global GPS Subsystem: Integrated GPS functionality with JavaScript APIs, location tracking, GPS settings, geodesy calculations, and automatic time synchronization.
  • Native Audio Engine: Built-in MP3 audio playback engine, WAV support, and expanded JavaScript audio APIs for audio-enabled applications and hardware.
  • Advanced Image Rendering: Native PNG, JPEG, and BMP image decoding and rendering, enabling image-based applications, viewers, and graphical interfaces.
  • Secure MicroSD Backup & Disaster Recovery: Complete internal storage backup and restoration with AES-256-CBC encryption, HMAC-SHA256 integrity verification, device-locked protection, and passphrase-protected backups.
  • Expanded Hardware JavaScript APIs: Dedicated JavaScript interfaces for Trackball, Keyboard, Speaker, and Device functionality, enabling applications to interact directly with supported hardware.
  • Advanced Filesystem APIs: Expanded JavaScript file management with binary and chunk-based reading, binary writing, file copying, file statistics, directory removal, and SD card mount detection.
  • Responsive Display Framework: Improved UI architecture with responsive layouts and support for both portrait and landscape display orientations.
  • KryonCloud Services & On-Device AI Integration: Cloud-connected AI capabilities through Kryon.ai and System.ai, including real-time token streaming (SSE), structured JSON extraction, and vision processing.
  • KryonBeam Mesh Messenger: Hardware-to-hardware communication across paired devices with broadcast and direct messaging channels.
  • Kryon3D Graphics Rasterizer: Native 3D graphics functionality through Kryon3D and System.graphics3d, supporting wireframes, solid shaded polygon meshes, camera controls, lighting vectors, and distance fog.
  • FastMath Acceleration Engine: Optimized mathematical operations through FastMath and System.math, including FPU-accelerated trigonometry, pre-computed 360-degree lookup tables, and hardware True Random Number Generation (TRNG).
  • Anti-Rollback Wireless OTA Updater: Secure firmware updates with manifest resolution, streaming 4KB chunk flashing, integrity verification, and automatic bootloader rollback recovery.
  • Rich UI & Graphics Framework: Built-in graphics library with double-buffering, mini-sprite support, and improved rendering performance for responsive, flicker-free interfaces.
  • App Store & Cloud Marketplace: Browse, download, and install JavaScript applications and games dynamically over Wi-Fi, with improved package integrity verification and API compatibility checks.
  • File Management & Multi-Bus Storage: Integrated file explorer and text editor with LittleFS internal storage and external MicroSD/SD_MMC support.
  • Hardware-Backed Security Architecture: Silicon-based cryptographic support, encrypted credential storage, TLS certificate verification, JavaScript runtime sandboxing, application permissions management, and authenticated Web Management.
  • Expanded System Applications & Diagnostics: New built-in applications, development examples, and diagnostic utilities for Bluetooth, GPS, audio, images, filesystems, T-Deck Plus hardware, and JavaScript APIs.

Supported Hardware

Hardware Target Status Microcontroller Flash & PSRAM Display Driver Input Mechanism
T-Deck Plus Default / Stable ESP32-S3 16MB Flash, 8MB Octal PSRAM ST7789 320x240 SPI Trackball Input, Goodix GT911 Touch
ESP32-S3 DevKitC-1 Stable ESP32-S3 16MB Flash, 8MB Octal PSRAM ILI9341 240x320 SPI XPT2046 Touch
M5Stack Cardputer v1.1 Experimental ESP32-S3 (Stamp-S3) 8MB Flash (Dual OTA) ST7789V2 240x135 SPI 56-Key Physical Matrix Keyboard
LilyGO T-HMI Experimental ESP32-S3 16MB Flash, 8MB Octal PSRAM ST7789 240x320 8-Bit Parallel XPT2046 Touch & SD_MMC

Note on Experimental Boards (M5Stack Cardputer, LilyGO T-HMI): Target boards marked as Experimental are implemented at the driver and HAL level but currently lack hands-on physical verification due to unavailable test hardware. If you test or flash KryonOS on these boards and encounter any issues or calibration offsets, please submit an issue on GitHub. Community feedback and contributions for these devices are strongly encouraged!

ESP32-S3 N16R8 Setup: For wiring schematics, PSRAM configuration, and PlatformIO setup for the default reference board, see the ESP32-S3 N16R8 Guide.

Multi-Board Architecture: For pinout tables and build configurations across all supported boards, see the Hardware Architecture Guide.


How to Flash

Option 1: Using Precompiled Binaries

You can download the latest precompiled firmware .bin files directly from our Releases Page.

Use an ESP32 flasher tool (such as esptool.py or the official ESP Flash Download Tool) to write the binaries:

esptool.py --chip esp32s3 --port COM14 --baud 921600 write_flash -z \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xe000 boot_app0.bin \
  0x10000 firmware.bin

Option 2: Build & Flash via PlatformIO

To compile and flash from source:

# 1. Clone repository
git clone https://github.com/Haris16-code/KryonOS.git
cd KryonOS

# 2. Build & Upload for Default Board (ESP32-S3 DevKitC-1 N16R8)
pio run -e lilygo-t-deck -t upload
  

# Or compile for other boards:
pio run -e esp32-s3-devkitc-1-n16r8 -t upload  # ESP32 S3 N16R8 DevKit
pio run -e m5stack-cardputer -t upload   # M5Stack Cardputer
pio run -e lilygo-t-hmi -t upload        # LilyGO T-HMI

Documentation

Hardware Architecture Hardware configuration and system architecture.
Setup Your KryonCloud Connect your device to access KryonCloud services
App Development Guide Build applications for KryonOS.
JavaScript API Docs APIs available to JavaScript applications.
Kryon3D Engine Docs Developing with the Kryon3D graphics engine.
Changelog Changes, additions, fixes, and breaking changes.
Discussions Community discussions and development topics.

Visit the KryonOS Documentation →

Community

Have a question, found a bug, want to contribute, or want to discuss a new feature? Join the KryonOS community.

GitHub Discussions • Issues • Pull Requests

Discord

Contributing

Contributions are welcome. Before opening a pull request, please review the project documentation and existing architecture.

Areas where contributions are especially useful include:

  • New board support
  • Display and touch drivers
  • Hardware integrations
  • JavaScript APIs
  • JavaScript applications for KryonOS
  • Graphics and 3D engine improvements
  • Bug fixes
  • Documentation
  • Hardware testing and validation

Support KryonOS

KryonOS is an independent, open-source project. Developing an operating system, maintaining multi-board hardware drivers, and building runtime engines requires significant time and physical test equipment.

Due to budget constraints, experimental board ports (Cardputer, T-HMI) cannot yet be bench-tested in person. Your financial support directly funds the acquisition of hardware test boards, displays, sensors, and continuous software development.

→ Support KryonOS Development


Our Sponsors

We would like to thank our sponsors for supporting KryonOS and helping us make this project possible.

Sponsor Name

Interested in sponsoring KryonOS? Contact us.


Stay Updated: Firmware Releases & Development News

Subscribe to official KryonOS development updates to receive email notifications about new releases, newly supported hardware boards, architecture deep dives, and upcoming features:

→ Subscribe to KryonOS Updates


Star the Project

If you like KryonOS or find this project useful, please consider giving our repository a Star on GitHub! Every star boosts project visibility, helps grow the embedded JavaScript community, and motivates ongoing development.

→ Star KryonOS on GitHub


Contact Us

For sponsorships and technical support, contact us at kryonos@harislab.tech


License

KryonOS is licensed under the GNU General Public License v3.0.

About

KryonOS is an ESP32 GUI operating system with a JavaScript runtime for apps. It provides a real touch-based interface and allows installing and running JS apps dynamically without reflashing firmware.

Topics

Resources

Contributing

Security policy

Stars

174 stars

Watchers

7 watching

Forks

Releases

Sponsor this project

Contributors

Languages