Nucleus

Welcome to Nucleus 2.3

Nucleus is the production desktop layer for Compose Multiplatform — native OS integration and packaging for Kotlin teams.

Nucleus is the production desktop layer for Compose Multiplatform apps written in Kotlin. Compose draws the UI; Nucleus adds native window decorations, operating-system integration, code signing, installers, and store pipelines. You configure the whole build through a single Gradle DSL, and the runtime runs either as a GraalVM native image or on the JVM.

If you already ship Android or KMP, Nucleus is how the same team ships desktop — without a second stack.

Features

  • One language across platforms. Share Kotlin code with your Android, iOS, and web apps, with Compose UI on top.
  • Native windowing (Tao). Wayland support, multi-touch, pen input, window scaffold, and TextureView for external GPU frames.
  • Two runtimes, one DSL. Run as a GraalVM Native Image, or on the JVM with an AOT cache (JDK 25+).
  • Over 40 OS integration modules. Notifications, system tray, dock menus, dark mode, global hotkeys, and taskbar integration, each added as an opt-in dependency.
  • 18 packaging formats. DMG, PKG, MSI, AppX, DEB, RPM, AppImage, Snap, and Flatpak among them, with code signing, notarization, and differential auto-update.
  • Native design systems. macOS 26, Fluent, and Yaru on Maven Central, plus Jewel and Material adapters in this repo. See toolkits.

To build your first app, follow the quickstart.

What's new in 2.3

  • TextureView. External GPU textures composited in the Compose scene (D3D11 / Metal / DMA-BUF). See TextureView.
  • Differential auto-update. Download only changed blocks via electron-builder block maps. See Auto-update.
  • Notification platform DSL, LocalNucleusApplicationScope, and live isSystemInDarkTheme() under nucleusApplication.
  • GraalVM 25.2 on the innovation channel, exact reachability on the dev loop, orphan project-class detection.

Full list: Changelog.

What's next