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.
Documentation • Releases • Discussions • Issues
Flash KryonOS directly to your supported ESP32 device from your browser. No manual firmware downloading or flashing tools required.
Support KryonOS Hardware Development
Help support KryonOS development by contributing toward the hardware, boards, and resources needed for development, testing, and official board support.
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 |
|---|---|---|---|
|
|
|
|
- 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.aiandSystem.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
Kryon3DandSystem.graphics3d, supporting wireframes, solid shaded polygon meshes, camera controls, lighting vectors, and distance fog. - FastMath Acceleration Engine: Optimized mathematical operations through
FastMathandSystem.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.
| 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.
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
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
| 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 →
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
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
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.
We would like to thank our sponsors for supporting KryonOS and helping us make this project possible.
|
|
Interested in sponsoring KryonOS? Contact us.
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
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.
For sponsorships and technical support, contact us at kryonos@harislab.tech
KryonOS is licensed under the GNU General Public License v3.0.



