Nucleus

Welcome to Nucleus 2.5

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.

Migrating an existing app? Let an AI agent do it

Paste one prompt into your coding agent (Claude Code, Cursor, Codex, …) — it scans your app, asks the right questions, and migrates it to Nucleus phase by phase with verification checkpoints. Zero install: the whole playbook lives at one URL. See Migrate with an AI agent.

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, TextureView for external GPU frames, and GPU render context for in-process renderers.
  • 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.5

  • Spell check. The OS spell engine in Compose text fields — Hunspell, NSSpellChecker, Windows Spell Checking — with suggestions in the context menu. See Spell check.
  • Native context menus. One flag swaps the Compose menu for the platform's: NSMenu, Fluent, Adwaita, or Breeze. See Context menus.
  • Overlay windows. Click-through, always-on-bottom, and all-workspaces flags for watermarks and desktop widgets. See Overlay windows.
  • Compose over native views. The NativeView overlay slot now draws in the window's own scene on all three platforms. See Overlay Compose content.
  • Compose 1.12 is required from this line on. See Compatibility.

Full list: Changelog.

Talk with us

The Nucleus channel is #nucleus on the official Kotlin Slack. Use it for questions, design discussion, and bug reports.

If you are not on the Kotlin Slack yet, request an invite, then open #nucleus.

What's next